Changeset - 1f7b8c73c94a
[Not reviewed]
docs/changelog.rst
Show inline comments
 
.. _changelog:
 

	
 
=========
 
Changelog
 
=========
 

	
 
1.4.4 (**2012-10-08**)
 
----------------------
 

	
 
news
 
++++
 

	
 
- obfuscate db password in logs for engine connection string
 
- #574 Show pull request status also in shortlog (if any)
 
- remember selected tab in my account page
 
- Bumped mercurial version to 2.3.2
 

	
 
fixes
 
+++++
 

	
 
- Add git version detection to warn users that Git used in system is to
 
  old. Ref #588 - also show git version in system details in settings page
 
- fixed files quick filter links
 
- #590 Add GET flag that controls the way the diff are generated, for pull
 
  requests we want to use non-bundle based diffs, That are far better for
 
  doing code reviews. The /compare url still uses bundle compare for full
 
  comparison including the incoming changesets
 
- Fixed #585, checks for status of revision where to strict, and made
 
  opening pull request with those revision impossible due to previously set
 
  status. Checks now are made also for the repository.
 
- fixes #591 git backend was causing encoding errors when handling binary
 
  files - added a test case for VCS lib tests
 

	
 
1.4.3 (**2012-09-28**)
 
----------------------
 

	
 
news
 
++++
rhodecode/__init__.py
Show inline comments
 
@@ -23,13 +23,13 @@
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
import sys
 
import platform
 

	
 
VERSION = (1, 4, 3)
 
VERSION = (1, 4, 4)
 

	
 
try:
 
    from rhodecode.lib import get_current_revision
 
    _rev = get_current_revision(quiet=True)
 
    if _rev and len(VERSION) > 3:
 
        VERSION += ('dev%s' % _rev[0],)
rhodecode/config/environment.py
Show inline comments
 
@@ -15,13 +15,13 @@ import rhodecode.lib.app_globals as app_
 

	
 
from rhodecode.config.routing import make_map
 

	
 
from rhodecode.lib import helpers
 
from rhodecode.lib.auth import set_available_permissions
 
from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config,\
 
    load_rcextensions
 
    load_rcextensions, check_git_version
 
from rhodecode.lib.utils2 import engine_from_config, str2bool
 
from rhodecode.model import init_model
 
from rhodecode.model.scm import ScmModel
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -83,12 +83,15 @@ def load_environment(global_conf, app_co
 
        if not int(os.environ.get('RC_NO_TMP_PATH', 0)):
 
            create_test_env(TESTS_TMP_PATH, config)
 
        # set RC_WHOOSH_TEST_DISABLE=1 to disable whoosh index during tests
 
        if not int(os.environ.get('RC_WHOOSH_TEST_DISABLE', 0)):
 
            create_test_index(TESTS_TMP_PATH, config, True)
 

	
 
    #check git version
 
    check_git_version()
 

	
 
    # MULTIPLE DB configs
 
    # Setup the SQLAlchemy database engine
 
    sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.')
 
    init_model(sa_engine_db1)
 

	
 
    repos_path = make_ui('db').configitems('paths')[0][1]
rhodecode/controllers/admin/settings.py
Show inline comments
 
@@ -38,13 +38,13 @@ from pylons.i18n.translation import _
 
from rhodecode.lib import helpers as h
 
from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator, \
 
    HasPermissionAnyDecorator, NotAnonymous
 
from rhodecode.lib.base import BaseController, render
 
from rhodecode.lib.celerylib import tasks, run_task
 
from rhodecode.lib.utils import repo2db_mapper, invalidate_cache, \
 
    set_rhodecode_config, repo_name_slug
 
    set_rhodecode_config, repo_name_slug, check_git_version
 
from rhodecode.model.db import RhodeCodeUi, Repository, RepoGroup, \
 
    RhodeCodeSetting, PullRequest, PullRequestReviewers
 
from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \
 
    ApplicationUiSettingsForm, ApplicationVisualisationForm
 
from rhodecode.model.scm import ScmModel
 
from rhodecode.model.user import UserModel
 
@@ -65,13 +65,14 @@ class SettingsController(BaseController)
 

	
 
    @LoginRequired()
 
    def __before__(self):
 
        c.admin_user = session.get('admin_user')
 
        c.admin_username = session.get('admin_username')
 
        c.modules = sorted([(p.project_name, p.version)
 
                            for p in pkg_resources.working_set],
 
                            for p in pkg_resources.working_set]
 
                           + [('git', check_git_version())],
 
                           key=lambda k: k[0].lower())
 
        c.py_version = platform.python_version()
 
        c.platform = platform.platform()
 
        super(SettingsController, self).__before__()
 

	
 
    @HasPermissionAllDecorator('hg.admin')
rhodecode/controllers/compare.py
Show inline comments
 
@@ -37,12 +37,13 @@ from rhodecode.lib.base import BaseRepoC
 
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
 
from rhodecode.lib import diffs
 

	
 
from rhodecode.model.db import Repository
 
from rhodecode.model.pull_request import PullRequestModel
 
from webob.exc import HTTPBadRequest
 
from rhodecode.lib.utils2 import str2bool
 

	
 
log = logging.getLogger(__name__)
 

	
 

	
 
class CompareController(BaseRepoController):
 

	
 
@@ -83,17 +84,19 @@ class CompareController(BaseRepoControll
 
    def index(self, org_ref_type, org_ref, other_ref_type, other_ref):
 

	
 
        org_repo = c.rhodecode_db_repo.repo_name
 
        org_ref = (org_ref_type, org_ref)
 
        other_ref = (other_ref_type, other_ref)
 
        other_repo = request.GET.get('repo', org_repo)
 
        bundle_compare = str2bool(request.GET.get('bundle', True))
 

	
 
        c.swap_url = h.url('compare_url', repo_name=other_repo,
 
              org_ref_type=other_ref[0], org_ref=other_ref[1],
 
              other_ref_type=org_ref[0], other_ref=org_ref[1],
 
              repo=org_repo)
 
              repo=org_repo, as_form=request.GET.get('as_form'),
 
              bundle=bundle_compare)
 

	
 
        c.org_repo = org_repo = Repository.get_by_repo_name(org_repo)
 
        c.other_repo = other_repo = Repository.get_by_repo_name(other_repo)
 

	
 
        if c.org_repo is None or c.other_repo is None:
 
            log.error('Could not found repo %s or %s' % (org_repo, other_repo))
 
@@ -104,28 +107,35 @@ class CompareController(BaseRepoControll
 
            raise HTTPNotFound
 
        partial = request.environ.get('HTTP_X_PARTIAL_XHR')
 
        self.__get_cs_or_redirect(rev=org_ref, repo=org_repo, partial=partial)
 
        self.__get_cs_or_redirect(rev=other_ref, repo=other_repo, partial=partial)
 

	
 
        c.cs_ranges, discovery_data = PullRequestModel().get_compare_data(
 
                                       org_repo, org_ref, other_repo, other_ref
 
                                      )
 
                                    org_repo, org_ref, other_repo, other_ref
 
                                    )
 

	
 
        c.statuses = c.rhodecode_db_repo.statuses([x.raw_id for x in
 
                                                   c.cs_ranges])
 
        c.target_repo = c.repo_name
 
        # defines that we need hidden inputs with changesets
 
        c.as_form = request.GET.get('as_form', False)
 
        if partial:
 
            return render('compare/compare_cs.html')
 

	
 
        if not bundle_compare and c.cs_ranges:
 
            # case we want a simple diff without incoming changesets, just
 
            # for review purposes. Make the diff on the forked repo, with
 
            # revision that is common ancestor
 
            other_ref = ('rev', c.cs_ranges[-1].parents[0].raw_id)
 
            other_repo = org_repo
 

	
 
        c.org_ref = org_ref[1]
 
        c.other_ref = other_ref[1]
 
        # diff needs to have swapped org with other to generate proper diff
 

	
 
        _diff = diffs.differ(other_repo, other_ref, org_repo, org_ref,
 
                             discovery_data)
 
                             discovery_data, bundle_compare=bundle_compare)
 
        diff_processor = diffs.DiffProcessor(_diff, format='gitdiff')
 
        _parsed = diff_processor.prepare()
 

	
 
        c.files = []
 
        c.changes = {}
 

	
rhodecode/controllers/pullrequests.py
Show inline comments
 
@@ -169,14 +169,15 @@ class PullrequestsController(BaseRepoCon
 
        c.other_repos_info = json.dumps(other_repos_info)
 
        c.review_members = [org_repo.user]
 
        return render('/pullrequests/pullrequest.html')
 

	
 
    @NotAnonymous()
 
    def create(self, repo_name):
 
        repo = RepoModel()._get_repo(repo_name)
 
        try:
 
            _form = PullRequestForm()().to_python(request.POST)
 
            _form = PullRequestForm(repo.repo_id)().to_python(request.POST)
 
        except formencode.Invalid, errors:
 
            log.error(traceback.format_exc())
 
            if errors.error_dict.get('revisions'):
 
                msg = 'Revisions: %s' % errors.error_dict['revisions']
 
            elif errors.error_dict.get('pullrequest_title'):
 
                msg = _('Pull request requires a title with min. 3 chars')
 
@@ -269,12 +270,18 @@ class PullrequestsController(BaseRepoCon
 
        c.org_repo = org_repo
 
        c.other_repo = other_repo
 

	
 
        c.cs_ranges, discovery_data = PullRequestModel().get_compare_data(
 
                                       org_repo, org_ref, other_repo, other_ref
 
                                      )
 
        if c.cs_ranges:
 
            # case we want a simple diff without incoming changesets, just
 
            # for review purposes. Make the diff on the forked repo, with
 
            # revision that is common ancestor
 
            other_ref = ('rev', c.cs_ranges[-1].parents[0].raw_id)
 
            other_repo = org_repo
 

	
 
        c.statuses = org_repo.statuses([x.raw_id for x in c.cs_ranges])
 
        # defines that we need hidden inputs with changesets
 
        c.as_form = request.GET.get('as_form', False)
 

	
 
        c.org_ref = org_ref[1]
rhodecode/controllers/shortlog.py
Show inline comments
 
@@ -50,12 +50,14 @@ class ShortlogController(BaseRepoControl
 

	
 
        def url_generator(**kw):
 
            return url('shortlog_home', repo_name=repo_name, size=size, **kw)
 

	
 
        c.repo_changesets = RepoPage(c.rhodecode_repo, page=p,
 
                                    items_per_page=size, url=url_generator)
 
        page_revisions = [x.raw_id for x in list(c.repo_changesets)]
 
        c.statuses = c.rhodecode_db_repo.statuses(page_revisions)
 

	
 
        if not c.repo_changesets:
 
            return redirect(url('summary_home', repo_name=repo_name))
 

	
 
        c.shortlog_data = render('shortlog/shortlog_data.html')
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
rhodecode/controllers/summary.py
Show inline comments
 
@@ -75,12 +75,14 @@ class SummaryController(BaseRepoControll
 

	
 
        def url_generator(**kw):
 
            return url('shortlog_home', repo_name=repo_name, size=10, **kw)
 

	
 
        c.repo_changesets = RepoPage(c.rhodecode_repo, page=1,
 
                                     items_per_page=10, url=url_generator)
 
        page_revisions = [x.raw_id for x in list(c.repo_changesets)]
 
        c.statuses = c.rhodecode_db_repo.statuses(page_revisions)
 

	
 
        if self.rhodecode_user.username == 'default':
 
            # for default(anonymous) user we don't need to pass credentials
 
            username = ''
 
            password = ''
 
        else:
rhodecode/i18n/fr/LC_MESSAGES/rhodecode.mo
Show inline comments
 
binary diff not shown
rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -4,64 +4,68 @@
 
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
 
#
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.1.5\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-09-02 20:30+0200\n"
 
"PO-Revision-Date: 2012-06-05 20:07+0100\n"
 
"POT-Creation-Date: 2012-10-02 11:23+0200\n"
 
"PO-Revision-Date: 2012-10-02 11:32+0100\n"
 
"Last-Translator: Vincent Duvert <vincent@duvert.net>\n"
 
"Language-Team: fr <LL@li.org>\n"
 
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 

	
 
#: rhodecode/controllers/changelog.py:94
 
#: rhodecode/controllers/changelog.py:95
 
msgid "All Branches"
 
msgstr "Toutes les branches"
 

	
 
#: rhodecode/controllers/changeset.py:83
 
msgid "show white space"
 
msgstr "afficher les espaces et tabulations"
 

	
 
#: rhodecode/controllers/changeset.py:90 rhodecode/controllers/changeset.py:97
 
msgstr "Afficher les espaces et tabulations"
 

	
 
#: rhodecode/controllers/changeset.py:90
 
#: rhodecode/controllers/changeset.py:97
 
msgid "ignore white space"
 
msgstr "ignorer les espaces et tabulations"
 
msgstr "Ignorer les espaces et tabulations"
 

	
 
#: rhodecode/controllers/changeset.py:157
 
#, python-format
 
msgid "%s line context"
 
msgstr "afficher %s lignes de contexte"
 
msgstr "Afficher %s lignes de contexte"
 

	
 
#: rhodecode/controllers/changeset.py:333
 
#: rhodecode/controllers/changeset.py:348 rhodecode/lib/diffs.py:70
 
#: rhodecode/controllers/changeset.py:348
 
#: rhodecode/lib/diffs.py:71
 
msgid "binary file"
 
msgstr "fichier binaire"
 

	
 
#: rhodecode/controllers/changeset.py:408
 
msgid ""
 
"Changing status on a changeset associated witha closed pull request is "
 
"not allowed"
 
msgstr ""
 

	
 
#: rhodecode/controllers/compare.py:69
 
#, fuzzy
 
msgstr "Fichier binaire"
 

	
 
#: rhodecode/controllers/changeset.py:381
 
#: rhodecode/controllers/pullrequests.py:376
 
#, python-format
 
msgid "Status change -> %s"
 
msgstr "Changement de statut -> %s"
 

	
 
#: rhodecode/controllers/changeset.py:412
 
msgid "Changing status on a changeset associated witha closed pull request is not allowed"
 
msgstr "Le changement de statut d’un changeset associé à une pull request fermée n’est pas autorisé."
 

	
 
#: rhodecode/controllers/compare.py:72
 
#: rhodecode/controllers/pullrequests.py:114
 
msgid "There are no changesets yet"
 
msgstr "Il n’y a aucun changement pour le moment"
 

	
 
#: rhodecode/controllers/error.py:69
 
msgid "Home page"
 
msgstr "Accueil"
 

	
 
#: rhodecode/controllers/error.py:98
 
msgid "The request could not be understood by the server due to malformed syntax."
 
msgstr ""
 
"Le serveur n’a pas pu interpréter la requête à cause d’une erreur de "
 
"syntaxe"
 
msgstr "Le serveur n’a pas pu interpréter la requête à cause d’une erreur de syntaxe"
 

	
 
#: rhodecode/controllers/error.py:101
 
msgid "Unauthorized access to resource"
 
msgstr "Accès interdit à cet ressource"
 

	
 
#: rhodecode/controllers/error.py:103
 
@@ -70,63 +74,66 @@ msgstr "Vous n’avez pas la permission de voir cette page"
 

	
 
#: rhodecode/controllers/error.py:105
 
msgid "The resource could not be found"
 
msgstr "Ressource introuvable"
 

	
 
#: rhodecode/controllers/error.py:107
 
msgid ""
 
"The server encountered an unexpected condition which prevented it from "
 
"fulfilling the request."
 
msgstr ""
 
"La requête n’a pu être traitée en raison d’une erreur survenue sur le "
 
"serveur."
 
msgid "The server encountered an unexpected condition which prevented it from fulfilling the request."
 
msgstr "La requête n’a pu être traitée en raison d’une erreur survenue sur le serveur."
 

	
 
#: rhodecode/controllers/feed.py:49
 
#, python-format
 
msgid "Changes on %s repository"
 
msgstr "Changements sur le dépôt %s"
 

	
 
#: rhodecode/controllers/feed.py:50
 
#, python-format
 
msgid "%s %s feed"
 
msgstr "Flux %s de %s"
 

	
 
#: rhodecode/controllers/feed.py:75
 
#: rhodecode/controllers/feed.py:67
 
#: rhodecode/templates/changeset/changeset.html:119
 
msgid "Changeset was too big and was cut off..."
 
msgstr "Cet ensemble de changements était trop important et a été découpé…"
 

	
 
#: rhodecode/controllers/feed.py:81
 
msgid "commited on"
 
msgstr "a commité, le"
 

	
 
#: rhodecode/controllers/files.py:84
 
#, fuzzy
 
msgid "click here to add new file"
 
msgstr "Ajouter un fichier"
 
msgstr "Ajouter un nouveau fichier"
 

	
 
#: rhodecode/controllers/files.py:85
 
#, python-format
 
msgid "There are no files yet %s"
 
msgstr "Il n’y a pas encore de fichiers %s"
 

	
 
#: rhodecode/controllers/files.py:239 rhodecode/controllers/files.py:299
 
#: rhodecode/controllers/files.py:239
 
#: rhodecode/controllers/files.py:299
 
#, python-format
 
msgid "This repository is has been locked by %s on %s"
 
msgstr ""
 
msgstr "Ce dépôt a été verrouillé par %s sur %s."
 

	
 
#: rhodecode/controllers/files.py:266
 
#, python-format
 
msgid "Edited %s via RhodeCode"
 
msgstr "%s édité via RhodeCode"
 

	
 
#: rhodecode/controllers/files.py:271
 
msgid "No changes"
 
msgstr "Aucun changement"
 

	
 
#: rhodecode/controllers/files.py:282 rhodecode/controllers/files.py:346
 
#: rhodecode/controllers/files.py:282
 
#: rhodecode/controllers/files.py:346
 
#, python-format
 
msgid "Successfully committed to %s"
 
msgstr "Commit réalisé avec succès sur %s"
 

	
 
#: rhodecode/controllers/files.py:287 rhodecode/controllers/files.py:352
 
#: rhodecode/controllers/files.py:287
 
#: rhodecode/controllers/files.py:352
 
msgid "Error occurred during commit"
 
msgstr "Une erreur est survenue durant le commit"
 

	
 
#: rhodecode/controllers/files.py:318
 
#, python-format
 
msgid "Added %s via RhodeCode"
 
@@ -160,164 +167,165 @@ msgstr "Type d’archive inconnu"
 
#: rhodecode/controllers/files.py:494
 
#: rhodecode/templates/changeset/changeset_range.html:13
 
#: rhodecode/templates/changeset/changeset_range.html:31
 
msgid "Changesets"
 
msgstr "Changesets"
 

	
 
#: rhodecode/controllers/files.py:495 rhodecode/controllers/pullrequests.py:72
 
#: rhodecode/controllers/summary.py:232 rhodecode/model/scm.py:543
 
#: rhodecode/controllers/files.py:495
 
#: rhodecode/controllers/pullrequests.py:73
 
#: rhodecode/controllers/summary.py:236
 
#: rhodecode/model/scm.py:543
 
msgid "Branches"
 
msgstr "Branches"
 

	
 
#: rhodecode/controllers/files.py:496 rhodecode/controllers/pullrequests.py:76
 
#: rhodecode/controllers/summary.py:233 rhodecode/model/scm.py:554
 
#: rhodecode/controllers/files.py:496
 
#: rhodecode/controllers/pullrequests.py:77
 
#: rhodecode/controllers/summary.py:237
 
#: rhodecode/model/scm.py:554
 
msgid "Tags"
 
msgstr "Tags"
 

	
 
#: rhodecode/controllers/forks.py:73 rhodecode/controllers/admin/repos.py:90
 
#: rhodecode/controllers/forks.py:74
 
#: rhodecode/controllers/admin/repos.py:90
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was created or renamed from "
 
"the filesystem please run the application again in order to rescan "
 
"repositories"
 
msgstr ""
 
"Le dépôt %s n’est pas représenté dans la base de données. Il a "
 
"probablement été créé ou renommé manuellement. Veuillez relancer "
 
"l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/forks.py:133 rhodecode/controllers/settings.py:72
 
msgid "%s repository is not mapped to db perhaps it was created or renamed from the filesystem please run the application again in order to rescan repositories"
 
msgstr "Le dépôt %s n’est pas représenté dans la base de données. Il a probablement été créé ou renommé manuellement. Veuillez relancer l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/forks.py:134
 
#: rhodecode/controllers/settings.py:73
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was created or renamed from "
 
"the file system please run the application again in order to rescan "
 
"repositories"
 
msgstr ""
 
"Le dépôt %s n’est pas représenté dans la base de données. Il a "
 
"probablement été créé ou renommé manuellement. Veuillez relancer "
 
"l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/forks.py:167
 
msgid "%s repository is not mapped to db perhaps it was created or renamed from the file system please run the application again in order to rescan repositories"
 
msgstr "Le dépôt %s n’est pas représenté dans la base de données. Il a probablement été créé ou renommé manuellement. Veuillez relancer l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/forks.py:168
 
#, python-format
 
msgid "forked %s repository as %s"
 
msgstr "dépôt %s forké en tant que %s"
 

	
 
#: rhodecode/controllers/forks.py:181
 
#: rhodecode/controllers/forks.py:182
 
#, python-format
 
msgid "An error occurred during repository forking %s"
 
msgstr "Une erreur est survenue durant le fork du dépôt %s."
 

	
 
#: rhodecode/controllers/journal.py:202 rhodecode/controllers/journal.py:239
 
#, fuzzy
 
#: rhodecode/controllers/journal.py:203
 
#: rhodecode/controllers/journal.py:240
 
msgid "public journal"
 
msgstr "Journal public"
 

	
 
#: rhodecode/controllers/journal.py:206 rhodecode/controllers/journal.py:243
 
#: rhodecode/templates/base/base.html:220
 
#: rhodecode/controllers/journal.py:207
 
#: rhodecode/controllers/journal.py:244
 
#: rhodecode/templates/base/base.html:229
 
msgid "journal"
 
msgstr "Journal"
 

	
 
#: rhodecode/controllers/login.py:143
 
msgid "You have successfully registered into rhodecode"
 
msgstr "Vous vous êtes inscrits avec succès à RhodeCode"
 

	
 
#: rhodecode/controllers/login.py:164
 
msgid "Your password reset link was sent"
 
msgstr "Un lien de rénitialisation de votre mot de passe vous a été envoyé."
 

	
 
#: rhodecode/controllers/login.py:184
 
msgid ""
 
"Your password reset was successful, new password has been sent to your "
 
"email"
 
msgstr ""
 
"Votre mot de passe a été réinitialisé. Votre nouveau mot de passe vous a "
 
"été envoyé par e-mail."
 

	
 
#: rhodecode/controllers/pullrequests.py:74 rhodecode/model/scm.py:549
 
#, fuzzy
 
msgid "Your password reset was successful, new password has been sent to your email"
 
msgstr "Votre mot de passe a été réinitialisé. Votre nouveau mot de passe vous a été envoyé par e-mail."
 

	
 
#: rhodecode/controllers/pullrequests.py:75
 
#: rhodecode/model/scm.py:549
 
msgid "Bookmarks"
 
msgstr "Signets"
 

	
 
#: rhodecode/controllers/pullrequests.py:158
 
#: rhodecode/controllers/pullrequests.py:182
 
msgid "Pull request requires a title with min. 3 chars"
 
msgstr ""
 

	
 
#: rhodecode/controllers/pullrequests.py:160
 
msgid "error during creation of pull request"
 
msgstr "erreur lors de la création de la demande traction"
 

	
 
#: rhodecode/controllers/pullrequests.py:181
 
#, fuzzy
 
msgid "Successfully opened new pull request"
 
msgstr "L’utilisateur a été supprimé avec succès."
 
msgstr "Les requêtes de pull nécessitent un titre d’au moins 3 caractères."
 

	
 
#: rhodecode/controllers/pullrequests.py:184
 
#, fuzzy
 
msgid "error during creation of pull request"
 
msgstr "Une erreur est survenue lors de la création de la requête de pull."
 

	
 
#: rhodecode/controllers/pullrequests.py:205
 
msgid "Successfully opened new pull request"
 
msgstr "La requête de pull a été ouverte avec succès."
 

	
 
#: rhodecode/controllers/pullrequests.py:208
 
msgid "Error occurred during sending pull request"
 
msgstr "Une erreur est survenue durant la création du dépôt %s."
 

	
 
#: rhodecode/controllers/pullrequests.py:217
 
#, fuzzy
 
msgstr "Une erreur est survenue durant l’envoi de la requête de pull."
 

	
 
#: rhodecode/controllers/pullrequests.py:241
 
msgid "Successfully deleted pull request"
 
msgstr "L’utilisateur a été supprimé avec succès."
 

	
 
#: rhodecode/controllers/search.py:131
 
msgstr "La requête de pull a été supprimée avec succès."
 

	
 
#: rhodecode/controllers/search.py:132
 
msgid "Invalid search query. Try quoting it."
 
msgstr "Requête invalide. Essayer de la mettre entre guillemets."
 

	
 
#: rhodecode/controllers/search.py:136
 
#: rhodecode/controllers/search.py:137
 
msgid "There is no index to search in. Please run whoosh indexer"
 
msgstr ""
 
"L’index de recherche n’est pas présent. Veuillez exécuter l’indexeur de "
 
"code Whoosh."
 

	
 
#: rhodecode/controllers/search.py:140
 
msgstr "L’index de recherche n’est pas présent. Veuillez exécuter l’indexeur de code Whoosh."
 

	
 
#: rhodecode/controllers/search.py:141
 
msgid "An error occurred during this search operation"
 
msgstr "Une erreur est survenue durant l’opération de recherche."
 

	
 
#: rhodecode/controllers/settings.py:107
 
#: rhodecode/controllers/settings.py:108
 
#: rhodecode/controllers/admin/repos.py:266
 
#, python-format
 
msgid "Repository %s updated successfully"
 
msgstr "Dépôt %s mis à jour avec succès."
 

	
 
#: rhodecode/controllers/settings.py:125
 
#: rhodecode/controllers/settings.py:126
 
#: rhodecode/controllers/admin/repos.py:284
 
#, python-format
 
msgid "error occurred during update of repository %s"
 
msgstr "Une erreur est survenue lors de la mise à jour du dépôt %s."
 

	
 
#: rhodecode/controllers/settings.py:143
 
#: rhodecode/controllers/settings.py:144
 
#: rhodecode/controllers/admin/repos.py:302
 
#, python-format
 
msgid ""
 
"%s repository is not mapped to db perhaps it was moved or renamed  from "
 
"the filesystem please run the application again in order to rescan "
 
"repositories"
 
msgstr ""
 
"Le dépôt %s n’est pas représenté dans la base de données. Il a "
 
"probablement été déplacé ou renommé manuellement. Veuillez relancer "
 
"l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/settings.py:155
 
msgid "%s repository is not mapped to db perhaps it was moved or renamed  from the filesystem please run the application again in order to rescan repositories"
 
msgstr "Le dépôt %s n’est pas représenté dans la base de données. Il a probablement été déplacé ou renommé manuellement. Veuillez relancer l’application pour rescanner les dépôts."
 

	
 
#: rhodecode/controllers/settings.py:156
 
#: rhodecode/controllers/admin/repos.py:314
 
#, python-format
 
msgid "deleted repository %s"
 
msgstr "Dépôt %s supprimé"
 

	
 
#: rhodecode/controllers/settings.py:159
 
#: rhodecode/controllers/settings.py:160
 
#: rhodecode/controllers/admin/repos.py:324
 
#: rhodecode/controllers/admin/repos.py:330
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr "Erreur pendant la suppression de %s"
 

	
 
#: rhodecode/controllers/summary.py:138
 
#: rhodecode/controllers/settings.py:179
 
#| msgid "unlock"
 
msgid "unlocked"
 
msgstr "déverrouillé"
 

	
 
#: rhodecode/controllers/settings.py:182
 
#| msgid "unlock"
 
msgid "locked"
 
msgstr "verrouillé"
 

	
 
#: rhodecode/controllers/settings.py:184
 
#, python-format
 
#| msgid "forked %s repository as %s"
 
msgid "Repository has been %s"
 
msgstr "Le dépôt a été %s."
 

	
 
#: rhodecode/controllers/settings.py:188
 
#: rhodecode/controllers/admin/repos.py:422
 
msgid "An error occurred during unlocking"
 
msgstr "Une erreur est survenue durant le déverrouillage."
 

	
 
#: rhodecode/controllers/summary.py:140
 
msgid "No data loaded yet"
 
msgstr "Aucune donnée actuellement disponible."
 

	
 
#: rhodecode/controllers/summary.py:142
 
#: rhodecode/controllers/summary.py:144
 
#: rhodecode/templates/summary/summary.html:148
 
msgid "Statistics are disabled for this repository"
 
msgstr "La mise à jour des statistiques est désactivée pour ce dépôt."
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:50
 
msgid "BASE"
 
@@ -403,15 +411,15 @@ msgstr "Écrire"
 
#: rhodecode/templates/admin/users/user_edit.html:122
 
#: rhodecode/templates/admin/users/users.html:9
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:8
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:9
 
#: rhodecode/templates/admin/users_groups/users_groups.html:9
 
#: rhodecode/templates/base/base.html:197
 
#: rhodecode/templates/base/base.html:337
 
#: rhodecode/templates/base/base.html:339
 
#: rhodecode/templates/base/base.html:341
 
#: rhodecode/templates/base/base.html:346
 
#: rhodecode/templates/base/base.html:348
 
#: rhodecode/templates/base/base.html:350
 
msgid "Admin"
 
msgstr "Administration"
 

	
 
#: rhodecode/controllers/admin/permissions.py:65
 
msgid "disabled"
 
msgstr "Désactivé"
 
@@ -469,40 +477,32 @@ msgstr "Impossible de supprimer le dépôt %s : Des forks y sont attachés."
 
#: rhodecode/controllers/admin/repos.py:348
 
msgid "An error occurred during deletion of repository user"
 
msgstr "Une erreur est survenue durant la suppression de l’utilisateur du dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:367
 
msgid "An error occurred during deletion of repository users groups"
 
msgstr ""
 
"Une erreur est survenue durant la suppression du groupe d’utilisateurs de"
 
" ce dépôt."
 
msgstr "Une erreur est survenue durant la suppression du groupe d’utilisateurs de ce dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:385
 
msgid "An error occurred during deletion of repository stats"
 
msgstr "Une erreur est survenue durant la suppression des statistiques du dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:402
 
msgid "An error occurred during cache invalidation"
 
msgstr "Une erreur est survenue durant l’invalidation du cache."
 

	
 
#: rhodecode/controllers/admin/repos.py:422
 
#, fuzzy
 
msgid "An error occurred during unlocking"
 
msgstr "Une erreur est survenue durant cette opération."
 

	
 
#: rhodecode/controllers/admin/repos.py:442
 
msgid "Updated repository visibility in public journal"
 
msgstr "La visibilité du dépôt dans le journal public a été mise à jour."
 

	
 
#: rhodecode/controllers/admin/repos.py:446
 
msgid "An error occurred during setting this repository in public journal"
 
msgstr ""
 
"Une erreur est survenue durant la configuration du journal public pour ce"
 
" dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:451 rhodecode/model/validators.py:299
 
msgstr "Une erreur est survenue durant la configuration du journal public pour ce dépôt."
 

	
 
#: rhodecode/controllers/admin/repos.py:451
 
#: rhodecode/model/validators.py:300
 
msgid "Token mismatch"
 
msgstr "Jeton d’authentification incorrect."
 

	
 
#: rhodecode/controllers/admin/repos.py:464
 
msgid "Pulled from remote location"
 
msgstr "Les changements distants ont été récupérés."
 
@@ -521,124 +521,115 @@ msgid "Marked repo %s as fork of %s"
 
msgstr "Le dépôt %s a été marké comme fork de %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:488
 
msgid "An error occurred during this operation"
 
msgstr "Une erreur est survenue durant cette opération."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:116
 
#: rhodecode/controllers/admin/repos_groups.py:117
 
#, python-format
 
msgid "created repos group %s"
 
msgstr "Le groupe de dépôts %s a été créé."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:129
 
#: rhodecode/controllers/admin/repos_groups.py:130
 
#, python-format
 
msgid "error occurred during creation of repos group %s"
 
msgstr "Une erreur est survenue durant la création du groupe de dépôts %s."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:163
 
#: rhodecode/controllers/admin/repos_groups.py:164
 
#, python-format
 
msgid "updated repos group %s"
 
msgstr "Le groupe de dépôts %s a été mis à jour."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:176
 
#: rhodecode/controllers/admin/repos_groups.py:177
 
#, python-format
 
msgid "error occurred during update of repos group %s"
 
msgstr "Une erreur est survenue durant la mise à jour du groupe de dépôts %s."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:194
 
#: rhodecode/controllers/admin/repos_groups.py:195
 
#, python-format
 
msgid "This group contains %s repositores and cannot be deleted"
 
msgstr "Ce groupe contient %s dépôts et ne peut être supprimé."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:202
 
#: rhodecode/controllers/admin/repos_groups.py:203
 
#, python-format
 
msgid "removed repos group %s"
 
msgstr "Le groupe de dépôts %s a été supprimé."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:208
 
#: rhodecode/controllers/admin/repos_groups.py:209
 
msgid "Cannot delete this group it still contains subgroups"
 
msgstr "Impossible de supprimer ce groupe : Il contient des sous-groupes."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:213
 
#: rhodecode/controllers/admin/repos_groups.py:218
 
#: rhodecode/controllers/admin/repos_groups.py:214
 
#: rhodecode/controllers/admin/repos_groups.py:219
 
#, python-format
 
msgid "error occurred during deletion of repos group %s"
 
msgstr "Une erreur est survenue durant la suppression du groupe de dépôts %s."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:238
 
#: rhodecode/controllers/admin/repos_groups.py:240
 
msgid "An error occurred during deletion of group user"
 
msgstr ""
 
"Une erreur est survenue durant la suppression de l’utilisateur du groupe "
 
"de dépôts."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:258
 
msgstr "Une erreur est survenue durant la suppression de l’utilisateur du groupe de dépôts."
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:261
 
msgid "An error occurred during deletion of group users groups"
 
msgstr ""
 
"Une erreur est survenue durant la suppression du groupe d’utilisateurs du"
 
" groupe de dépôts."
 

	
 
#: rhodecode/controllers/admin/settings.py:121
 
msgstr "Une erreur est survenue durant la suppression du groupe d’utilisateurs du groupe de dépôts."
 

	
 
#: rhodecode/controllers/admin/settings.py:122
 
#, python-format
 
msgid "Repositories successfully rescanned added: %s,removed: %s"
 
msgstr "Après re-scan : %s ajouté(s), %s enlevé(s)"
 

	
 
#: rhodecode/controllers/admin/settings.py:129
 
#: rhodecode/controllers/admin/settings.py:130
 
msgid "Whoosh reindex task scheduled"
 
msgstr "La tâche de réindexation Whoosh a été planifiée."
 

	
 
#: rhodecode/controllers/admin/settings.py:160
 
#: rhodecode/controllers/admin/settings.py:161
 
msgid "Updated application settings"
 
msgstr "Réglages mis à jour"
 

	
 
#: rhodecode/controllers/admin/settings.py:164
 
#: rhodecode/controllers/admin/settings.py:275
 
#: rhodecode/controllers/admin/settings.py:165
 
#: rhodecode/controllers/admin/settings.py:293
 
msgid "error occurred during updating application settings"
 
msgstr "Une erreur est survenue durant la mise à jour des options."
 

	
 
#: rhodecode/controllers/admin/settings.py:200
 
#, fuzzy
 
#: rhodecode/controllers/admin/settings.py:201
 
msgid "Updated visualisation settings"
 
msgstr "Réglages mis à jour"
 

	
 
#: rhodecode/controllers/admin/settings.py:205
 
#, fuzzy
 
msgstr "Réglages d’affichage mis à jour."
 

	
 
#: rhodecode/controllers/admin/settings.py:206
 
msgid "error occurred during updating visualisation settings"
 
msgstr "Une erreur est survenue durant la mise à jour des options."
 

	
 
#: rhodecode/controllers/admin/settings.py:271
 
#, fuzzy
 
msgstr "Une erreur est survenue durant la mise à jour des réglages d’affichages."
 

	
 
#: rhodecode/controllers/admin/settings.py:289
 
msgid "Updated VCS settings"
 
msgstr "Réglages de Mercurial mis à jour"
 

	
 
#: rhodecode/controllers/admin/settings.py:285
 
msgstr "Réglages des gestionnaires de versions mis à jour."
 

	
 
#: rhodecode/controllers/admin/settings.py:303
 
msgid "Added new hook"
 
msgstr "Le nouveau hook a été ajouté."
 

	
 
#: rhodecode/controllers/admin/settings.py:297
 
#: rhodecode/controllers/admin/settings.py:315
 
msgid "Updated hooks"
 
msgstr "Hooks mis à jour"
 

	
 
#: rhodecode/controllers/admin/settings.py:301
 
#: rhodecode/controllers/admin/settings.py:319
 
msgid "error occurred during hook creation"
 
msgstr "Une erreur est survenue durant la création du hook."
 

	
 
#: rhodecode/controllers/admin/settings.py:320
 
#: rhodecode/controllers/admin/settings.py:338
 
msgid "Email task created"
 
msgstr "La tâche d’e-mail a été créée."
 

	
 
#: rhodecode/controllers/admin/settings.py:375
 
#: rhodecode/controllers/admin/settings.py:393
 
msgid "You can't edit this user since it's crucial for entire application"
 
msgstr ""
 
"Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
 
" fonctionnement de l’application."
 

	
 
#: rhodecode/controllers/admin/settings.py:406
 
msgstr "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon fonctionnement de l’application."
 

	
 
#: rhodecode/controllers/admin/settings.py:424
 
msgid "Your account was updated successfully"
 
msgstr "Votre compte a été mis à jour avec succès"
 

	
 
#: rhodecode/controllers/admin/settings.py:421
 
#: rhodecode/controllers/admin/settings.py:439
 
#: rhodecode/controllers/admin/users.py:191
 
#, python-format
 
msgid "error occurred during update of user %s"
 
msgstr "Une erreur est survenue durant la mise à jour de l’utilisateur %s."
 

	
 
#: rhodecode/controllers/admin/users.py:130
 
@@ -673,41 +664,36 @@ msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:271
 
msgid "Revoked 'repository create' permission to user"
 
msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:277
 
#, fuzzy
 
msgid "Granted 'repository fork' permission to user"
 
msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
 
msgstr "La permission de fork de dépôts a été accordée à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:282
 
#, fuzzy
 
msgid "Revoked 'repository fork' permission to user"
 
msgstr "La permission de création de dépôts a été révoquée à l’utilisateur."
 
msgstr "La permission de fork de dépôts a été révoquée à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:288
 
#: rhodecode/controllers/admin/users_groups.py:255
 
#, fuzzy
 
msgid "An error occurred during permissions saving"
 
msgstr "Une erreur est survenue durant cette opération."
 
msgstr "Une erreur est survenue durant l’enregistrement des permissions."
 

	
 
#: rhodecode/controllers/admin/users.py:303
 
#, python-format
 
msgid "Added email %s to user"
 
msgstr ""
 
msgstr "L’e-mail « %s » a été ajouté à l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users.py:309
 
#, fuzzy
 
msgid "An error occurred during email saving"
 
msgstr "Une erreur est survenue durant cette opération."
 
msgstr "Une erreur est survenue durant l’enregistrement de l’e-mail."
 

	
 
#: rhodecode/controllers/admin/users.py:319
 
#, fuzzy
 
msgid "Removed email from user"
 
msgstr "Le groupe de dépôts %s a été supprimé."
 
msgstr "L’e-mail a été enlevé de l’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:84
 
#, python-format
 
msgid "created users group %s"
 
msgstr "Le groupe d’utilisateurs %s a été créé."
 

	
 
@@ -732,349 +718,330 @@ msgstr "Le groupe d’utilisateurs a été supprimé avec succès."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:179
 
msgid "An error occurred during deletion of users group"
 
msgstr "Une erreur est survenue lors de la suppression du groupe d’utilisateurs."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:233
 
#, fuzzy
 
msgid "Granted 'repository create' permission to users group"
 
msgstr "La permission de création de dépôts a été accordée à lutilisateur."
 
msgstr "La permission de création de dépôts a été accordée au groupe dutilisateurs."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:238
 
#, fuzzy
 
msgid "Revoked 'repository create' permission to users group"
 
msgstr "La permission de création de dépôts a été révoquée à lutilisateur."
 
msgstr "La permission de création de dépôts a été révoquée au groupe dutilisateurs."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:244
 
#, fuzzy
 
msgid "Granted 'repository fork' permission to users group"
 
msgstr "La permission de création de dépôts a été accordée à l’utilisateur."
 
msgstr "La permission de fork de dépôts a été accordée au groupe d’utilisateur."
 

	
 
#: rhodecode/controllers/admin/users_groups.py:249
 
#, fuzzy
 
msgid "Revoked 'repository fork' permission to users group"
 
msgstr "La permission de création de dépôts a été révoquée à lutilisateur."
 
msgstr "La permission de fork de dépôts a été révoquée au groupe dutilisateurs."
 

	
 
#: rhodecode/lib/auth.py:499
 
msgid "You need to be a registered user to perform this action"
 
msgstr "Vous devez être un utilisateur enregistré pour effectuer cette action."
 

	
 
#: rhodecode/lib/auth.py:540
 
msgid "You need to be a signed in to view this page"
 
msgstr "Vous devez être connecté pour visualiser cette page."
 

	
 
#: rhodecode/lib/diffs.py:86
 
#: rhodecode/lib/diffs.py:87
 
msgid "Changeset was too big and was cut off, use diff menu to display this diff"
 
msgstr ""
 
"Cet ensemble de changements était trop gros pour être affiché et a été "
 
"découpé, utilisez le menu « Diff » pour afficher les différences."
 

	
 
#: rhodecode/lib/diffs.py:96
 
msgstr "Cet ensemble de changements était trop gros pour être affiché et a été découpé, utilisez le menu « Diff » pour afficher les différences."
 

	
 
#: rhodecode/lib/diffs.py:97
 
msgid "No changes detected"
 
msgstr "Aucun changement détecté."
 

	
 
#: rhodecode/lib/helpers.py:372
 
#: rhodecode/lib/helpers.py:373
 
#, python-format
 
msgid "%a, %d %b %Y %H:%M:%S"
 
msgstr "%d/%m/%Y à %H:%M:%S"
 

	
 
#: rhodecode/lib/helpers.py:484
 
#: rhodecode/lib/helpers.py:485
 
msgid "True"
 
msgstr "Vrai"
 

	
 
#: rhodecode/lib/helpers.py:488
 
#: rhodecode/lib/helpers.py:489
 
msgid "False"
 
msgstr "Faux"
 

	
 
#: rhodecode/lib/helpers.py:532
 
#: rhodecode/lib/helpers.py:533
 
msgid "Changeset not found"
 
msgstr "Ensemble de changements non trouvé"
 

	
 
#: rhodecode/lib/helpers.py:555
 
#: rhodecode/lib/helpers.py:556
 
#, python-format
 
msgid "Show all combined changesets %s->%s"
 
msgstr "Afficher les changements combinés %s->%s"
 

	
 
#: rhodecode/lib/helpers.py:561
 
#: rhodecode/lib/helpers.py:562
 
msgid "compare view"
 
msgstr "vue de comparaison"
 

	
 
#: rhodecode/lib/helpers.py:581
 
#: rhodecode/lib/helpers.py:582
 
msgid "and"
 
msgstr "et"
 

	
 
#: rhodecode/lib/helpers.py:582
 
#: rhodecode/lib/helpers.py:583
 
#, python-format
 
msgid "%s more"
 
msgstr "%s de plus"
 

	
 
#: rhodecode/lib/helpers.py:583 rhodecode/templates/changelog/changelog.html:48
 
#: rhodecode/lib/helpers.py:584
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "revisions"
 
msgstr "révisions"
 

	
 
#: rhodecode/lib/helpers.py:606
 
#: rhodecode/lib/helpers.py:607
 
msgid "fork name "
 
msgstr "Nom du fork"
 

	
 
#: rhodecode/lib/helpers.py:620
 
#: rhodecode/lib/helpers.py:621
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:4
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:12
 
#, python-format
 
msgid "Pull request #%s"
 
msgstr ""
 

	
 
#: rhodecode/lib/helpers.py:626
 
msgstr "Requête de pull nº%s"
 

	
 
#: rhodecode/lib/helpers.py:627
 
msgid "[deleted] repository"
 
msgstr "[a supprimé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:628 rhodecode/lib/helpers.py:638
 
#: rhodecode/lib/helpers.py:629
 
#: rhodecode/lib/helpers.py:639
 
msgid "[created] repository"
 
msgstr "[a créé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:630
 
#: rhodecode/lib/helpers.py:631
 
msgid "[created] repository as fork"
 
msgstr "[a créé] le dépôt en tant que fork"
 

	
 
#: rhodecode/lib/helpers.py:632 rhodecode/lib/helpers.py:640
 
#: rhodecode/lib/helpers.py:633
 
#: rhodecode/lib/helpers.py:641
 
msgid "[forked] repository"
 
msgstr "[a forké] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:634 rhodecode/lib/helpers.py:642
 
#: rhodecode/lib/helpers.py:635
 
#: rhodecode/lib/helpers.py:643
 
msgid "[updated] repository"
 
msgstr "[a mis à jour] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:636
 
#: rhodecode/lib/helpers.py:637
 
msgid "[delete] repository"
 
msgstr "[a supprimé] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:644
 
#: rhodecode/lib/helpers.py:645
 
msgid "[created] user"
 
msgstr "[a créé] l’utilisateur"
 

	
 
#: rhodecode/lib/helpers.py:646
 
#: rhodecode/lib/helpers.py:647
 
msgid "[updated] user"
 
msgstr "[a mis à jour] l’utilisateur"
 

	
 
#: rhodecode/lib/helpers.py:648
 
#: rhodecode/lib/helpers.py:649
 
msgid "[created] users group"
 
msgstr "[a créé] le groupe d’utilisateurs"
 

	
 
#: rhodecode/lib/helpers.py:650
 
#: rhodecode/lib/helpers.py:651
 
msgid "[updated] users group"
 
msgstr "[a mis à jour] le groupe d’utilisateurs"
 

	
 
#: rhodecode/lib/helpers.py:652
 
#: rhodecode/lib/helpers.py:653
 
msgid "[commented] on revision in repository"
 
msgstr "[a commenté] une révision du dépôt"
 

	
 
#: rhodecode/lib/helpers.py:654
 
#, fuzzy
 
#: rhodecode/lib/helpers.py:655
 
msgid "[commented] on pull request for"
 
msgstr "[a commenté] une révision du dépôt"
 

	
 
#: rhodecode/lib/helpers.py:656
 
#, fuzzy
 
msgstr "[a commenté] la requête de pull pour"
 

	
 
#: rhodecode/lib/helpers.py:657
 
msgid "[closed] pull request for"
 
msgstr "[a commenté] une révision du dépôt"
 

	
 
#: rhodecode/lib/helpers.py:658
 
msgstr "[a fermé] la requête de pull de"
 

	
 
#: rhodecode/lib/helpers.py:659
 
msgid "[pushed] into"
 
msgstr "[a pushé] dans"
 

	
 
#: rhodecode/lib/helpers.py:660
 
#: rhodecode/lib/helpers.py:661
 
msgid "[committed via RhodeCode] into repository"
 
msgstr "[a commité via RhodeCode] dans le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:662
 
#: rhodecode/lib/helpers.py:663
 
msgid "[pulled from remote] into repository"
 
msgstr "[a pullé depuis un site distant] dans le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:664
 
#: rhodecode/lib/helpers.py:665
 
msgid "[pulled] from"
 
msgstr "[a pullé] depuis"
 

	
 
#: rhodecode/lib/helpers.py:666
 
#: rhodecode/lib/helpers.py:667
 
msgid "[started following] repository"
 
msgstr "[suit maintenant] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:668
 
#: rhodecode/lib/helpers.py:669
 
msgid "[stopped following] repository"
 
msgstr "[ne suit plus] le dépôt"
 

	
 
#: rhodecode/lib/helpers.py:840
 
#: rhodecode/lib/helpers.py:845
 
#, python-format
 
msgid " and %s more"
 
msgstr "et %s de plus"
 

	
 
#: rhodecode/lib/helpers.py:844
 
#: rhodecode/lib/helpers.py:849
 
msgid "No Files"
 
msgstr "Aucun fichier"
 

	
 
#: rhodecode/lib/utils2.py:335
 
#: rhodecode/lib/utils2.py:352
 
#, python-format
 
msgid "%d year"
 
msgid_plural "%d years"
 
msgstr[0] "%d an"
 
msgstr[1] "%d ans"
 

	
 
#: rhodecode/lib/utils2.py:336
 
#: rhodecode/lib/utils2.py:353
 
#, python-format
 
msgid "%d month"
 
msgid_plural "%d months"
 
msgstr[0] "%d mois"
 
msgstr[1] "%d mois"
 

	
 
#: rhodecode/lib/utils2.py:337
 
#: rhodecode/lib/utils2.py:354
 
#, python-format
 
msgid "%d day"
 
msgid_plural "%d days"
 
msgstr[0] "%d jour"
 
msgstr[1] "%d jours"
 

	
 
#: rhodecode/lib/utils2.py:338
 
#: rhodecode/lib/utils2.py:355
 
#, python-format
 
msgid "%d hour"
 
msgid_plural "%d hours"
 
msgstr[0] "%d heure"
 
msgstr[1] "%d heures"
 

	
 
#: rhodecode/lib/utils2.py:339
 
#: rhodecode/lib/utils2.py:356
 
#, python-format
 
msgid "%d minute"
 
msgid_plural "%d minutes"
 
msgstr[0] "%d minute"
 
msgstr[1] "%d minutes"
 

	
 
#: rhodecode/lib/utils2.py:340
 
#: rhodecode/lib/utils2.py:357
 
#, python-format
 
msgid "%d second"
 
msgid_plural "%d seconds"
 
msgstr[0] "%d seconde"
 
msgstr[1] "%d secondes"
 

	
 
#: rhodecode/lib/utils2.py:355
 
#: rhodecode/lib/utils2.py:372
 
#, python-format
 
msgid "%s ago"
 
msgstr "Il y a %s"
 

	
 
#: rhodecode/lib/utils2.py:357
 
#: rhodecode/lib/utils2.py:374
 
#, python-format
 
msgid "%s and %s ago"
 
msgstr "Il y a %s et %s"
 

	
 
#: rhodecode/lib/utils2.py:360
 
#: rhodecode/lib/utils2.py:377
 
msgid "just now"
 
msgstr "à l’instant"
 

	
 
#: rhodecode/lib/celerylib/tasks.py:269
 
msgid "password reset link"
 
msgstr "Réinitialisation du mot de passe"
 

	
 
#: rhodecode/model/comment.py:110
 
#, python-format
 
msgid "on line %s"
 
msgstr "à la ligne %s"
 

	
 
#: rhodecode/model/comment.py:157
 
#: rhodecode/model/comment.py:173
 
msgid "[Mention]"
 
msgstr "[Mention]"
 

	
 
#: rhodecode/model/db.py:1140
 
#, fuzzy
 
#: rhodecode/model/db.py:1164
 
msgid "Repository no access"
 
msgstr "Dépôts"
 

	
 
#: rhodecode/model/db.py:1141
 
#, fuzzy
 
msgstr "Aucun accès au dépôt"
 

	
 
#: rhodecode/model/db.py:1165
 
msgid "Repository read access"
 
msgstr "Ce dépôt existe déjà"
 

	
 
#: rhodecode/model/db.py:1142
 
#, fuzzy
 
msgstr "Accès en lecture au dépôt"
 

	
 
#: rhodecode/model/db.py:1166
 
msgid "Repository write access"
 
msgstr "Dépôts"
 

	
 
#: rhodecode/model/db.py:1143
 
#, fuzzy
 
msgstr "Accès en écriture au dépôt"
 

	
 
#: rhodecode/model/db.py:1167
 
msgid "Repository admin access"
 
msgstr "Dépôts"
 

	
 
#: rhodecode/model/db.py:1145
 
#, fuzzy
 
msgstr "Accès administrateur au dépôt"
 

	
 
#: rhodecode/model/db.py:1169
 
msgid "Repositories Group no access"
 
msgstr "Groupes de dépôts"
 

	
 
#: rhodecode/model/db.py:1146
 
#, fuzzy
 
msgstr "Aucun accès au groupe de dépôts"
 

	
 
#: rhodecode/model/db.py:1170
 
msgid "Repositories Group read access"
 
msgstr "Groupes de dépôts"
 

	
 
#: rhodecode/model/db.py:1147
 
#, fuzzy
 
msgstr "Accès en lecture au groupe de dépôts"
 

	
 
#: rhodecode/model/db.py:1171
 
msgid "Repositories Group write access"
 
msgstr "Groupes de dépôts"
 

	
 
#: rhodecode/model/db.py:1148
 
#, fuzzy
 
msgstr "Accès en écriture au groupe de dépôts"
 

	
 
#: rhodecode/model/db.py:1172
 
msgid "Repositories Group admin access"
 
msgstr "Groupes de dépôts"
 

	
 
#: rhodecode/model/db.py:1150
 
#, fuzzy
 
msgstr "Accès administrateur au groupe de dépôts"
 

	
 
#: rhodecode/model/db.py:1174
 
msgid "RhodeCode Administrator"
 
msgstr "Administration des utilisateurs"
 

	
 
#: rhodecode/model/db.py:1151
 
#, fuzzy
 
msgstr "Administrateur RhodeCode"
 

	
 
#: rhodecode/model/db.py:1175
 
msgid "Repository creation disabled"
 
msgstr "Création de dépôt"
 

	
 
#: rhodecode/model/db.py:1152
 
#, fuzzy
 
msgstr "Création de dépôt désactivée"
 

	
 
#: rhodecode/model/db.py:1176
 
msgid "Repository creation enabled"
 
msgstr "Création de dépôt"
 

	
 
#: rhodecode/model/db.py:1153
 
#, fuzzy
 
msgstr "Création de dépôt activée"
 

	
 
#: rhodecode/model/db.py:1177
 
msgid "Repository forking disabled"
 
msgstr "Création de dépôt"
 

	
 
#: rhodecode/model/db.py:1154
 
#, fuzzy
 
msgstr "Fork de dépôt désactivé"
 

	
 
#: rhodecode/model/db.py:1178
 
msgid "Repository forking enabled"
 
msgstr "Création de dépôt"
 

	
 
#: rhodecode/model/db.py:1155
 
#, fuzzy
 
msgstr "Fork de dépôt activé"
 

	
 
#: rhodecode/model/db.py:1179
 
msgid "Register disabled"
 
msgstr "Désactivé"
 

	
 
#: rhodecode/model/db.py:1156
 
msgstr "Enregistrement désactivé"
 

	
 
#: rhodecode/model/db.py:1180
 
msgid "Register new user with RhodeCode with manual activation"
 
msgstr ""
 

	
 
#: rhodecode/model/db.py:1159
 
msgstr "Enregistrer un nouvel utilisateur Rhodecode manuellement activé"
 

	
 
#: rhodecode/model/db.py:1183
 
msgid "Register new user with RhodeCode with auto activation"
 
msgstr ""
 

	
 
#: rhodecode/model/db.py:1579
 
msgstr "Enregistrer un nouvel utilisateur Rhodecode auto-activé"
 

	
 
#: rhodecode/model/db.py:1611
 
msgid "Not Reviewed"
 
msgstr ""
 

	
 
#: rhodecode/model/db.py:1580
 
#, fuzzy
 
msgstr "Pas encore relue"
 

	
 
#: rhodecode/model/db.py:1612
 
msgid "Approved"
 
msgstr "Supprimés"
 

	
 
#: rhodecode/model/db.py:1581
 
msgstr "Approuvée "
 

	
 
#: rhodecode/model/db.py:1613
 
msgid "Rejected"
 
msgstr ""
 

	
 
#: rhodecode/model/db.py:1582
 
msgstr "Rejetée"
 

	
 
#: rhodecode/model/db.py:1614
 
msgid "Under Review"
 
msgstr ""
 
msgstr "En cours de relecture"
 

	
 
#: rhodecode/model/forms.py:43
 
msgid "Please enter a login"
 
msgstr "Veuillez entrer un identifiant"
 

	
 
#: rhodecode/model/forms.py:44
 
@@ -1106,202 +1073,179 @@ msgstr "vous a mentioné"
 
#: rhodecode/model/notification.py:223
 
msgid "registered in RhodeCode"
 
msgstr "s’est enregistré sur RhodeCode"
 

	
 
#: rhodecode/model/notification.py:224
 
msgid "opened new pull request"
 
msgstr ""
 
msgstr "a ouvert une nouvelle requête de pull"
 

	
 
#: rhodecode/model/notification.py:225
 
#, fuzzy
 
msgid "commented on pull request"
 
msgstr "a posté un commentaire sur le commit"
 

	
 
#: rhodecode/model/pull_request.py:84
 
msgstr "a commenté sur la requête de pull"
 

	
 
#: rhodecode/model/pull_request.py:89
 
#, python-format
 
msgid "%(user)s wants you to review pull request #%(pr_id)s"
 
msgstr ""
 
msgstr "%(user)s voudrait que vous examiniez sa requête de pull nº%(pr_id)s"
 

	
 
#: rhodecode/model/scm.py:535
 
#, fuzzy
 
msgid "latest tip"
 
msgstr "Dernière connexion"
 
msgstr "Dernier sommet"
 

	
 
#: rhodecode/model/user.py:230
 
msgid "new user registration"
 
msgstr "Nouveau compte utilisateur enregistré"
 

	
 
#: rhodecode/model/user.py:255 rhodecode/model/user.py:277
 
#: rhodecode/model/user.py:255
 
#: rhodecode/model/user.py:277
 
#: rhodecode/model/user.py:299
 
msgid "You can't Edit this user since it's crucial for entire application"
 
msgstr ""
 
"Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon"
 
" fonctionnement de l’application."
 
msgstr "Vous ne pouvez pas éditer cet utilisateur ; il est nécessaire pour le bon fonctionnement de l’application."
 

	
 
#: rhodecode/model/user.py:323
 
msgid "You can't remove this user since it's crucial for entire application"
 
msgstr ""
 
"Vous ne pouvez pas supprimer cet utilisateur ; il est nécessaire pour le "
 
"bon fonctionnement de l’application."
 
msgstr "Vous ne pouvez pas supprimer cet utilisateur ; il est nécessaire pour le bon fonctionnement de l’application."
 

	
 
#: rhodecode/model/user.py:329
 
#, python-format
 
msgid ""
 
"user \"%s\" still owns %s repositories and cannot be removed. Switch "
 
"owners or remove those repositories. %s"
 
msgstr ""
 
"L’utilisateur « %s » possède %s dépôts et ne peut être supprimé. Changez "
 
"les propriétaires de ces dépôts. %s"
 

	
 
#: rhodecode/model/validators.py:35 rhodecode/model/validators.py:36
 
msgid "user \"%s\" still owns %s repositories and cannot be removed. Switch owners or remove those repositories. %s"
 
msgstr "L’utilisateur « %s » possède %s dépôts et ne peut être supprimé. Changez les propriétaires de ces dépôts. %s"
 

	
 
#: rhodecode/model/validators.py:36
 
#: rhodecode/model/validators.py:37
 
msgid "Value cannot be an empty list"
 
msgstr ""
 

	
 
#: rhodecode/model/validators.py:82
 
#, fuzzy, python-format
 
msgstr "Cette valeur ne peut être une liste vide."
 

	
 
#: rhodecode/model/validators.py:83
 
#, python-format
 
msgid "Username \"%(username)s\" already exists"
 
msgstr "Ce nom \"%(username)s\" d’utilisateur existe déjà"
 

	
 
#: rhodecode/model/validators.py:84
 
msgstr "Le nom d’utilisateur « %(username)s » existe déjà."
 

	
 
#: rhodecode/model/validators.py:85
 
#, python-format
 
msgid "Username \"%(username)s\" is forbidden"
 
msgstr ""
 

	
 
#: rhodecode/model/validators.py:86
 
msgid ""
 
"Username may only contain alphanumeric characters underscores, periods or"
 
" dashes and must begin with alphanumeric character"
 
msgstr ""
 
"Le nom d’utilisateur peut contenir uniquement des caractères alpha-"
 
"numériques ainsi que les caractères suivants : « _ . - ». Il doit "
 
"commencer par un caractère alpha-numérique."
 

	
 
#: rhodecode/model/validators.py:114
 
msgstr "Le nom d’utilisateur « %(username)s » n’est pas autorisé"
 

	
 
#: rhodecode/model/validators.py:87
 
msgid "Username may only contain alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character"
 
msgstr "Le nom d’utilisateur peut contenir uniquement des caractères alpha-numériques ainsi que les caractères suivants : « _ . - ». Il doit commencer par un caractère alpha-numérique."
 

	
 
#: rhodecode/model/validators.py:115
 
#, python-format
 
msgid "Username %(username)s is not valid"
 
msgstr "%(username)s Nom d'utilisateur n'est pas valide"
 

	
 
#: rhodecode/model/validators.py:133
 
#, fuzzy
 
msgid "Invalid users group name"
 
msgstr "nom d’utilisateur invalide"
 
msgstr "Le nom d’utilisateur « %(username)s » n’est pas valide."
 

	
 
#: rhodecode/model/validators.py:134
 
msgid "Invalid users group name"
 
msgstr "Nom de groupe d’utilisateurs invalide."
 

	
 
#: rhodecode/model/validators.py:135
 
#, python-format
 
msgid "Users group \"%(usersgroup)s\" already exists"
 
msgstr "Ce groupe \"%(usersgroup)s\" d’utilisateurs existe déjà."
 

	
 
#: rhodecode/model/validators.py:136
 
msgid ""
 
"users group name may only contain  alphanumeric characters underscores, "
 
"periods or dashes and must begin with alphanumeric character"
 
msgstr ""
 
"Le nom de groupe de dépôts peut contenir uniquement des caractères alpha-"
 
"numériques ainsi que les caractères suivants : « _ . - ». Il doit "
 
"commencer par un caractère alpha-numérique."
 

	
 
#: rhodecode/model/validators.py:174
 
msgstr "Le groupe d’utilisateurs « %(usersgroup)s » existe déjà."
 

	
 
#: rhodecode/model/validators.py:137
 
msgid "users group name may only contain  alphanumeric characters underscores, periods or dashes and must begin with alphanumeric character"
 
msgstr "Le nom de groupe d’utilisateurs peut contenir uniquement des caractères alpha-numériques ainsi que les caractères suivants : « _ . - ». Il doit commencer par un caractère alpha-numérique."
 

	
 
#: rhodecode/model/validators.py:175
 
msgid "Cannot assign this group as parent"
 
msgstr "Impossible d’assigner ce groupe en tant que parent."
 

	
 
#: rhodecode/model/validators.py:175
 
#: rhodecode/model/validators.py:176
 
#, python-format
 
msgid "Group \"%(group_name)s\" already exists"
 
msgstr "Ce nom d’utilisateur \"%(group_name)s\" existe déjà"
 

	
 
#: rhodecode/model/validators.py:177
 
msgstr "Le groupe « %(group_name)s » existe déjà."
 

	
 
#: rhodecode/model/validators.py:178
 
#, python-format
 
msgid "Repository with name \"%(group_name)s\" already exists"
 
msgstr "Dépôt avec le nom de \"%(group_name)s\" existe déjà"
 

	
 
#: rhodecode/model/validators.py:235
 
#, fuzzy
 
msgstr "Un dépôt portant le nom « %(group_name)s » existe déjà."
 

	
 
#: rhodecode/model/validators.py:236
 
msgid "Invalid characters (non-ascii) in password"
 
msgstr "Caractères incorrects dans le mot de passe"
 

	
 
#: rhodecode/model/validators.py:250
 
msgstr "Caractères incorrects (non-ASCII) dans le mot de passe."
 

	
 
#: rhodecode/model/validators.py:251
 
msgid "Passwords do not match"
 
msgstr "Les mots de passe ne correspondent pas."
 

	
 
#: rhodecode/model/validators.py:267
 
msgid "invalid password"
 
msgstr "mot de passe invalide"
 

	
 
#: rhodecode/model/validators.py:268
 
msgid "invalid password"
 
msgstr "mot de passe invalide"
 

	
 
#: rhodecode/model/validators.py:269
 
msgid "invalid user name"
 
msgstr "nom d’utilisateur invalide"
 

	
 
#: rhodecode/model/validators.py:269
 
#: rhodecode/model/validators.py:270
 
msgid "Your account is disabled"
 
msgstr "Votre compte est désactivé"
 

	
 
#: rhodecode/model/validators.py:313
 
#: rhodecode/model/validators.py:314
 
#, python-format
 
msgid "Repository name %(repo)s is disallowed"
 
msgstr "Ce nom de dépôt %(repo)s est interdit"
 

	
 
#: rhodecode/model/validators.py:315
 
#, python-format
 
msgid "Repository named %(repo)s already exists"
 
msgstr "Un dépôt portant %(repo)s ce nom existe déjà."
 
msgstr "Le nom de dépôt « %(repo)s » n’est pas autorisé."
 

	
 
#: rhodecode/model/validators.py:316
 
#, python-format
 
msgid "Repository named %(repo)s already exists"
 
msgstr "Un dépôt portant le nom « %(repo)s » existe déjà."
 

	
 
#: rhodecode/model/validators.py:317
 
#, python-format
 
msgid "Repository \"%(repo)s\" already exists in group \"%(group)s\""
 
msgstr "Ce dépôt \"%(repo)s\" existe déjà dans le groupe « \"%(group)s\" »."
 

	
 
#: rhodecode/model/validators.py:318
 
msgstr "Le dépôt « %(repo)s » existe déjà dans le groupe « %(group)s »."
 

	
 
#: rhodecode/model/validators.py:319
 
#, python-format
 
msgid "Repositories group with name \"%(repo)s\" already exists"
 
msgstr "Un dépôt portant \"%(repo)s\" ce nom existe déjà."
 

	
 
#: rhodecode/model/validators.py:431
 
msgid "invalid clone url"
 
msgstr "URL de clonage invalide."
 
msgstr "Un groupe de dépôts portant le nom « %(repo)s » existe déjà."
 

	
 
#: rhodecode/model/validators.py:432
 
#, fuzzy
 
msgid "invalid clone url"
 
msgstr "URL de clonage invalide."
 

	
 
#: rhodecode/model/validators.py:433
 
msgid "Invalid clone url, provide a valid clone http(s)/svn+http(s) url"
 
msgstr ""
 
"URL à cloner invalide. Veuillez fournir une URL valide commençant par "
 
"http(s)."
 

	
 
#: rhodecode/model/validators.py:457
 
#, fuzzy
 
msgstr "URL à cloner invalide. Veuillez fournir une URL valide en http(s) ou svn+http(s)."
 

	
 
#: rhodecode/model/validators.py:458
 
msgid "Fork have to be the same type as parent"
 
msgstr "Le fork doit être du même type que l’original"
 

	
 
#: rhodecode/model/validators.py:478
 
msgstr "Le fork doit être du même type que le parent."
 

	
 
#: rhodecode/model/validators.py:473
 
#| msgid "You don't have permission to view this page"
 
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 groupe."
 

	
 
#: rhodecode/model/validators.py:498
 
msgid "This username or users group name is not valid"
 
msgstr "Ce nom d’utilisateur ou de groupe n’est pas valide."
 

	
 
#: rhodecode/model/validators.py:562
 
#: rhodecode/model/validators.py:582
 
msgid "This is not a valid path"
 
msgstr "Ceci n’est pas un chemin valide"
 

	
 
#: rhodecode/model/validators.py:577
 
#: rhodecode/model/validators.py:597
 
msgid "This e-mail address is already taken"
 
msgstr "Cette adresse e-mail est déjà enregistrée"
 

	
 
#: rhodecode/model/validators.py:597
 
#: rhodecode/model/validators.py:617
 
#, python-format
 
msgid "e-mail \"%(email)s\" does not exist."
 
msgstr "Cette adresse e-mail \"%(email)s\" n’existe pas"
 

	
 
#: rhodecode/model/validators.py:634
 
msgid ""
 
"The LDAP Login attribute of the CN must be specified - this is the name "
 
"of the attribute that is equivalent to \"username\""
 
msgstr ""
 
"L’attribut Login du CN doit être spécifié. Cet attribut correspond au nom"
 
" d’utilisateur."
 

	
 
#: rhodecode/model/validators.py:653
 
msgstr "L’adresse e-mail « %(email)s » n’existe pas"
 

	
 
#: rhodecode/model/validators.py:654
 
msgid "The LDAP Login attribute of the CN must be specified - this is the name of the attribute that is equivalent to \"username\""
 
msgstr "L’attribut Login du CN doit être spécifié. Cet attribut correspond au nom d’utilisateur."
 

	
 
#: rhodecode/model/validators.py:673
 
#, python-format
 
msgid "Revisions %(revs)s are already part of pull request or have set status"
 
msgstr ""
 
msgstr "Les révisions %(revs)s font déjà partie de la requête de pull ou on des statuts définis."
 

	
 
#: rhodecode/templates/index.html:3
 
msgid "Dashboard"
 
msgstr "Tableau de bord"
 

	
 
#: rhodecode/templates/index_base.html:6
 
@@ -1315,13 +1259,13 @@ msgstr "Tableau de bord"
 
#: rhodecode/templates/tags/tags.html:10
 
msgid "quick filter..."
 
msgstr "Filtre rapide…"
 

	
 
#: rhodecode/templates/index_base.html:6
 
#: rhodecode/templates/admin/repos/repos.html:9
 
#: rhodecode/templates/base/base.html:221
 
#: rhodecode/templates/base/base.html:230
 
msgid "repositories"
 
msgstr "Dépôts"
 

	
 
#: rhodecode/templates/index_base.html:13
 
#: rhodecode/templates/index_base.html:15
 
#: rhodecode/templates/admin/repos/repos.html:21
 
@@ -1362,14 +1306,14 @@ msgstr "Groupe de dépôts"
 
#: rhodecode/templates/index_base.html:166
 
#: rhodecode/templates/admin/repos/repo_add_base.html:9
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:70
 
#: rhodecode/templates/admin/users/user_edit.html:192
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:59
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:157
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:193
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:181
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:217
 
#: rhodecode/templates/admin/users/user_edit_my_account_repos.html:6
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:51
 
#: rhodecode/templates/files/files_browser.html:47
 
#: rhodecode/templates/journal/journal.html:59
 
@@ -1386,13 +1330,13 @@ msgstr "Nom"
 
#: rhodecode/templates/index_base.html:72
 
msgid "Last change"
 
msgstr "Dernière modification"
 

	
 
#: rhodecode/templates/index_base.html:73
 
#: rhodecode/templates/index_base.html:171
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:159
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/journal/journal.html:188
 
msgid "Tip"
 
msgstr "Sommet"
 

	
 
#: rhodecode/templates/index_base.html:74
 
#: rhodecode/templates/index_base.html:173
 
@@ -1427,25 +1371,25 @@ msgstr "S’abonner au flux ATOM de %s"
 
msgid "Group Name"
 
msgstr "Nom du groupe"
 

	
 
#: rhodecode/templates/index_base.html:158
 
#: rhodecode/templates/index_base.html:198
 
#: rhodecode/templates/admin/repos/repos.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:179
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:203
 
#: rhodecode/templates/admin/users/users.html:107
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:77
 
#: rhodecode/templates/journal/journal.html:211
 
#: rhodecode/templates/tags/tags.html:60
 
msgid "Click to sort ascending"
 
msgstr "Tri ascendant"
 

	
 
#: rhodecode/templates/index_base.html:159
 
#: rhodecode/templates/index_base.html:199
 
#: rhodecode/templates/admin/repos/repos.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:180
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:204
 
#: rhodecode/templates/admin/users/users.html:108
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:78
 
#: rhodecode/templates/journal/journal.html:212
 
#: rhodecode/templates/tags/tags.html:61
 
msgid "Click to sort descending"
 
@@ -1454,62 +1398,65 @@ msgstr "Tri descendant"
 
#: rhodecode/templates/index_base.html:169
 
msgid "Last Change"
 
msgstr "Dernière modification"
 

	
 
#: rhodecode/templates/index_base.html:200
 
#: rhodecode/templates/admin/repos/repos.html:96
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:181
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:205
 
#: rhodecode/templates/admin/users/users.html:109
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:79
 
#: rhodecode/templates/journal/journal.html:213
 
#: rhodecode/templates/tags/tags.html:62
 
msgid "No records found."
 
msgstr "Aucun élément n’a été trouvé."
 

	
 
#: rhodecode/templates/index_base.html:201
 
#: rhodecode/templates/admin/repos/repos.html:97
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:182
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:206
 
#: rhodecode/templates/admin/users/users.html:110
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:80
 
#: rhodecode/templates/journal/journal.html:214
 
#: rhodecode/templates/tags/tags.html:63
 
msgid "Data error."
 
msgstr "Erreur d’intégrité des données."
 

	
 
#: rhodecode/templates/index_base.html:202
 
#: rhodecode/templates/admin/repos/repos.html:98
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:207
 
#: rhodecode/templates/admin/users/users.html:111
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:81
 
#: rhodecode/templates/journal/journal.html:215
 
#: rhodecode/templates/tags/tags.html:64
 
msgid "Loading..."
 
msgstr "Chargement…"
 

	
 
#: rhodecode/templates/login.html:5 rhodecode/templates/login.html:54
 
#: rhodecode/templates/login.html:5
 
#: rhodecode/templates/login.html:54
 
msgid "Sign In"
 
msgstr "Connexion"
 

	
 
#: rhodecode/templates/login.html:21
 
msgid "Sign In to"
 
msgstr "Connexion à"
 

	
 
#: rhodecode/templates/login.html:31 rhodecode/templates/register.html:20
 
#: rhodecode/templates/login.html:31
 
#: rhodecode/templates/register.html:20
 
#: rhodecode/templates/admin/admin_log.html:5
 
#: rhodecode/templates/admin/users/user_add.html:32
 
#: rhodecode/templates/admin/users/user_edit.html:50
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:26
 
#: rhodecode/templates/base/base.html:83
 
#: rhodecode/templates/summary/summary.html:122
 
msgid "Username"
 
msgstr "Nom d’utilisateur"
 

	
 
#: rhodecode/templates/login.html:40 rhodecode/templates/register.html:29
 
#: rhodecode/templates/login.html:40
 
#: rhodecode/templates/register.html:29
 
#: rhodecode/templates/admin/ldap/ldap.html:46
 
#: rhodecode/templates/admin/users/user_add.html:41
 
#: rhodecode/templates/base/base.html:92
 
msgid "Password"
 
msgstr "Mot de passe"
 

	
 
@@ -1518,13 +1465,14 @@ msgid "Remember me"
 
msgstr "Se souvenir de moi"
 

	
 
#: rhodecode/templates/login.html:60
 
msgid "Forgot your password ?"
 
msgstr "Mot de passe oublié ?"
 

	
 
#: rhodecode/templates/login.html:63 rhodecode/templates/base/base.html:103
 
#: rhodecode/templates/login.html:63
 
#: rhodecode/templates/base/base.html:103
 
msgid "Don't have an account ?"
 
msgstr "Vous n’avez pas de compte ?"
 

	
 
#: rhodecode/templates/password_reset.html:5
 
msgid "Reset your password"
 
msgstr "Mot de passe oublié ?"
 
@@ -1542,13 +1490,14 @@ msgid "Reset my password"
 
msgstr "Réinitialiser mon mot de passe"
 

	
 
#: rhodecode/templates/password_reset.html:31
 
msgid "Password reset link will be send to matching email address"
 
msgstr "Votre nouveau mot de passe sera envoyé à l’adresse correspondante."
 

	
 
#: rhodecode/templates/register.html:5 rhodecode/templates/register.html:74
 
#: rhodecode/templates/register.html:5
 
#: rhodecode/templates/register.html:74
 
msgid "Sign Up"
 
msgstr "Inscription"
 

	
 
#: rhodecode/templates/register.html:11
 
msgid "Sign Up to"
 
msgstr "Inscription à"
 
@@ -1752,24 +1701,23 @@ msgstr "Enregistrer"
 
#: rhodecode/templates/admin/notifications/notifications.html:9
 
msgid "My Notifications"
 
msgstr "Mes notifications"
 

	
 
#: rhodecode/templates/admin/notifications/notifications.html:29
 
msgid "All"
 
msgstr ""
 
msgstr "Tous"
 

	
 
#: rhodecode/templates/admin/notifications/notifications.html:30
 
#, fuzzy
 
msgid "Comments"
 
msgstr "commits"
 
msgstr "Commentaires"
 

	
 
#: rhodecode/templates/admin/notifications/notifications.html:31
 
#: rhodecode/templates/base/base.html:254
 
#: rhodecode/templates/base/base.html:256
 
#: rhodecode/templates/base/base.html:263
 
#: rhodecode/templates/base/base.html:265
 
msgid "Pull requests"
 
msgstr ""
 
msgstr "Requêtes de pull"
 

	
 
#: rhodecode/templates/admin/notifications/notifications.html:35
 
msgid "Mark all read"
 
msgstr "Tout marquer comme lu"
 

	
 
#: rhodecode/templates/admin/notifications/notifications_data.html:39
 
@@ -1808,20 +1756,14 @@ msgstr "Accès anonyme"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:41
 
msgid "Repository permission"
 
msgstr "Permissions du dépôt"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:49
 
msgid ""
 
"All default permissions on each repository will be reset to choosen "
 
"permission, note that all custom default permission on repositories will "
 
"be lost"
 
msgstr ""
 
"Les permissions par défaut de chaque dépôt vont être remplacées par la "
 
"permission choisie. Toutes les permissions par défaut des dépôts seront "
 
"perdues."
 
msgid "All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost"
 
msgstr "Les permissions par défaut de chaque dépôt vont être remplacées par la permission choisie. Toutes les permissions par défaut des dépôts seront perdues."
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:50
 
msgid "overwrite existing settings"
 
msgstr "Écraser les permissions existantes"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:55
 
@@ -1830,18 +1772,17 @@ msgstr "Enregistrement"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:63
 
msgid "Repository creation"
 
msgstr "Création de dépôt"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:71
 
#, fuzzy
 
msgid "Repository forking"
 
msgstr "Création de dépôt"
 
msgstr "Fork de dépôt"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:78
 
#: rhodecode/templates/admin/repos/repo_edit.html:241
 
#: rhodecode/templates/admin/repos/repo_edit.html:255
 
msgid "set"
 
msgstr "Définir"
 

	
 
#: rhodecode/templates/admin/repos/repo_add.html:5
 
#: rhodecode/templates/admin/repos/repo_add_create_repository.html:5
 
msgid "Add repository"
 
@@ -1876,13 +1817,12 @@ msgstr "URL http(s) depuis laquelle le dépôt doit être cloné."
 
#: rhodecode/templates/settings/repo_settings.html:48
 
msgid "Repository group"
 
msgstr "Groupe de dépôt"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:33
 
#: rhodecode/templates/forks/fork.html:54
 
#, fuzzy
 
msgid "Optionaly select a group to put this repository into."
 
msgstr "Sélectionnez un groupe (optionel) dans lequel sera placé le dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:38
 
#: rhodecode/templates/admin/repos/repo_edit.html:58
 
msgid "Type"
 
@@ -1893,42 +1833,35 @@ msgid "Type of repository to create."
 
msgstr "Type de dépôt à créer."
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:47
 
#: rhodecode/templates/admin/repos/repo_edit.html:66
 
#: rhodecode/templates/forks/fork.html:41
 
#: rhodecode/templates/settings/repo_settings.html:57
 
#, fuzzy
 
msgid "Landing revision"
 
msgstr "révision suivante"
 
msgstr "Révision d’arrivée"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:51
 
#: rhodecode/templates/admin/repos/repo_edit.html:70
 
#: rhodecode/templates/forks/fork.html:45
 
#: rhodecode/templates/settings/repo_settings.html:61
 
msgid "Default revision for files page, downloads, whoosh and readme"
 
msgstr ""
 
msgstr "Révision par défaut pour les pages de fichiers, de téléchargements, de recherche et de documentation."
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:60
 
#: rhodecode/templates/admin/repos/repo_edit.html:79
 
#: rhodecode/templates/forks/fork.html:63
 
#: rhodecode/templates/settings/repo_settings.html:70
 
msgid "Keep it short and to the point. Use a README file for longer descriptions."
 
msgstr ""
 
"Gardez cette description précise et concise. Utilisez un fichier README "
 
"pour des descriptions plus détaillées."
 
msgstr "Gardez cette description précise et concise. Utilisez un fichier README pour des descriptions plus détaillées."
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:69
 
#: rhodecode/templates/admin/repos/repo_edit.html:89
 
#: rhodecode/templates/forks/fork.html:72
 
#: rhodecode/templates/settings/repo_settings.html:80
 
msgid ""
 
"Private repositories are only visible to people explicitly added as "
 
"collaborators."
 
msgstr ""
 
"Les dépôts privés sont visibles seulement par les utilisateurs ajoutés "
 
"comme collaborateurs."
 
msgid "Private repositories are only visible to people explicitly added as collaborators."
 
msgstr "Les dépôts privés sont visibles seulement par les utilisateurs ajoutés comme collaborateurs."
 

	
 
#: rhodecode/templates/admin/repos/repo_add_base.html:73
 
msgid "add"
 
msgstr "Ajouter"
 

	
 
#: rhodecode/templates/admin/repos/repo_add_create_repository.html:9
 
@@ -1975,19 +1908,18 @@ msgstr "Activer les téléchargements"
 
#: rhodecode/templates/admin/repos/repo_edit.html:107
 
msgid "Enable download menu on summary page."
 
msgstr "Afficher le menu de téléchargements sur la page du dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:112
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:66
 
#, fuzzy
 
msgid "Enable locking"
 
msgstr "Activer"
 
msgstr "Activer le verrouillage"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:116
 
msgid "Enable lock-by-pulling on repository."
 
msgstr ""
 
msgstr "Activer le verrouillage lors d’un pull sur le dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:126
 
msgid "Change owner of this repository."
 
msgstr "Changer le propriétaire de ce dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:142
 
@@ -1999,13 +1931,13 @@ msgstr "Changer le propriétaire de ce dépôt."
 
#: rhodecode/templates/admin/users/user_edit.html:175
 
#: rhodecode/templates/admin/users/user_edit.html:278
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:136
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
#: rhodecode/templates/pullrequests/pullrequest.html:124
 
#: rhodecode/templates/pullrequests/pullrequest.html:122
 
#: rhodecode/templates/settings/repo_settings.html:94
 
msgid "Reset"
 
msgstr "Réinitialiser"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:152
 
msgid "Administration"
 
@@ -2052,102 +1984,97 @@ msgid "Invalidate repository cache"
 
msgstr "Invalider le cache du dépôt"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:190
 
msgid "Confirm to invalidate repository cache"
 
msgstr "Voulez-vous vraiment invalider le cache du dépôt ?"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:195
 
#: rhodecode/templates/base/base.html:318
 
#: rhodecode/templates/base/base.html:320
 
#: rhodecode/templates/base/base.html:322
 
#: rhodecode/templates/admin/repos/repo_edit.html:193
 
msgid "Manually invalidate cache for this repository. On first access repository will be cached again"
 
msgstr "Invalide manuellement le cache de ce dépôt. Au prochain accès sur ce dépôt, il sera à nouveau mis en cache."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:198
 
msgid "List of cached values"
 
msgstr "Liste des valeurs en cache"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:209
 
#: rhodecode/templates/base/base.html:327
 
#: rhodecode/templates/base/base.html:329
 
#: rhodecode/templates/base/base.html:331
 
msgid "Public journal"
 
msgstr "Journal public"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:201
 
msgid "Remove from public journal"
 
msgstr "Supprimer du journal public"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:203
 
msgid "Add to public journal"
 
msgstr "Ajouter le dépôt au journal public"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:208
 
msgid ""
 
"All actions made on this repository will be accessible to everyone in "
 
"public journal"
 
msgstr ""
 
"Le descriptif des actions réalisées sur ce dépôt sera visible à tous "
 
"depuis le journal public."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:215
 
#, fuzzy
 
msgid "Locking"
 
msgstr "Déverrouiller"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:220
 
msgid "Unlock locked repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:220
 
#, fuzzy
 
msgid "Confirm to unlock repository"
 
msgstr "Voulez-vous vraiment supprimer ce dépôt ?"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:223
 
msgid "lock repo"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:223
 
#, fuzzy
 
msgid "Confirm to lock repository"
 
msgstr "Voulez-vous vraiment supprimer ce dépôt ?"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:224
 
#, fuzzy
 
msgid "Repository is not locked"
 
msgstr "Dépôts"
 
msgid "Remove from public journal"
 
msgstr "Supprimer du journal public"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:217
 
msgid "Add to public journal"
 
msgstr "Ajouter le dépôt au journal public"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:222
 
msgid "All actions made on this repository will be accessible to everyone in public journal"
 
msgstr "Le descriptif des actions réalisées sur ce dépôt sera visible à tous depuis le journal public."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:229
 
msgid "Locking"
 
msgstr "Verrouillage"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:234
 
msgid "Unlock locked repo"
 
msgstr "Déverrouiller le dépôt"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:234
 
msgid "Confirm to unlock repository"
 
msgstr "Veuillez confirmer le déverrouillage de ce dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:237
 
msgid "lock repo"
 
msgstr "Verrouiller le dépôt"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:237
 
msgid "Confirm to lock repository"
 
msgstr "Veuillez confirmer le verrouillage de ce dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:238
 
msgid "Repository is not locked"
 
msgstr "Ce dépôt n’est pas verrouillé."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:243
 
msgid "Force locking on repository. Works only when anonymous access is disabled"
 
msgstr ""
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:236
 
#, fuzzy
 
msgstr "Forcer le verrouillage du dépôt. Ce réglage fonctionne uniquement quand l‘accès anonyme est désactivé."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:250
 
msgid "Set as fork of"
 
msgstr "Indiquer comme fork"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:245
 
#, fuzzy
 
#: rhodecode/templates/admin/repos/repo_edit.html:259
 
msgid "Manually set this repository as a fork of another from the list"
 
msgstr "Permet d’indiquer manuellement que ce dépôt est un fork d’un autre dépôt."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:251
 
msgstr "Marquer ce dépôt comme fork d’un autre dépôt de la liste."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:265
 
#: rhodecode/templates/changeset/changeset_file_comment.html:26
 
msgid "Delete"
 
msgstr "Supprimer"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:255
 
#: rhodecode/templates/admin/repos/repo_edit.html:269
 
msgid "Remove this repository"
 
msgstr "Supprimer ce dépôt"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:255
 
#: rhodecode/templates/admin/repos/repo_edit.html:269
 
#: rhodecode/templates/journal/journal.html:84
 
msgid "Confirm to delete this repository"
 
msgstr "Voulez-vous vraiment supprimer ce dépôt ?"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:259
 
#: rhodecode/templates/admin/repos/repo_edit.html:273
 
msgid ""
 
"This repository will be renamed in a special way in order to be "
 
"unaccesible for RhodeCode and VCS systems.\n"
 
"                         If you need fully delete it from filesystem "
 
"please do it manually"
 
"This repository will be renamed in a special way in order to be unaccesible for RhodeCode and VCS systems.\n"
 
"                         If you need fully delete it from filesystem please do it manually"
 
msgstr ""
 
"Ce dépôt sera renommé de manière à le rendre inaccessible à RhodeCode et "
 
"au système de gestion de versions.\n"
 
"Si vous voulez le supprimer complètement, effectuez la suppression "
 
"manuellement."
 
"Ce dépôt sera renommé de manière à le rendre inaccessible à RhodeCode et au système de gestion de versions.\n"
 
"Si vous voulez le supprimer complètement, effectuez la suppression manuellement. Ce dépôt sera renommé de manière à le rendre inaccessible à RhodeCode et au système de gestion de versions.\n"
 
"Si vous voulez le supprimer complètement, effectuez la suppression manuellement."
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:3
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:3
 
msgid "none"
 
msgstr "Aucune"
 

	
 
@@ -2161,13 +2088,13 @@ msgstr "Lecture"
 
msgid "write"
 
msgstr "Écriture"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:6
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:6
 
#: rhodecode/templates/admin/users/users.html:85
 
#: rhodecode/templates/base/base.html:217
 
#: rhodecode/templates/base/base.html:226
 
msgid "admin"
 
msgstr "Administration"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:7
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:7
 
msgid "member"
 
@@ -2196,30 +2123,62 @@ msgstr "Révoquer"
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:83
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:67
 
msgid "Add another member"
 
msgstr "Ajouter un utilisateur"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:97
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:81
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:87
 
msgid "Failed to remove user"
 
msgstr "Échec de suppression de l’utilisateur"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit_perms.html:112
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:96
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:103
 
msgid "Failed to remove users group"
 
msgstr "Erreur lors de la suppression du groupe d’utilisateurs."
 

	
 
#: rhodecode/templates/admin/repos/repos.html:5
 
msgid "Repositories administration"
 
msgstr "Administration des dépôts"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:8
 
msgid "Groups"
 
msgstr "Groupes"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:12
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:73
 
msgid "apply to children"
 
msgstr "Appliquer aux enfants"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_group_edit_perms.html:74
 
msgid "Set or revoke permission to all children of that group, including repositories and other groups"
 
msgstr "Applique ou révoque les permissions sur tous les éléments de ce groupe, notamment les dépôts et sous-groupes."
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:9
 
#: rhodecode/templates/base/base.html:122
 
#: rhodecode/templates/base/base.html:309
 
#: rhodecode/templates/base/base.html:311
 
#: rhodecode/templates/base/base.html:313
 
#: rhodecode/templates/bookmarks/bookmarks.html:11
 
#: rhodecode/templates/branches/branches.html:10
 
#: rhodecode/templates/changelog/changelog.html:10
 
#: rhodecode/templates/changeset/changeset.html:10
 
#: rhodecode/templates/changeset/changeset_range.html:9
 
#: rhodecode/templates/compare/compare_diff.html:9
 
#: rhodecode/templates/files/file_diff.html:8
 
#: rhodecode/templates/files/files.html:8
 
#: rhodecode/templates/files/files_add.html:15
 
#: rhodecode/templates/files/files_edit.html:15
 
#: rhodecode/templates/followers/followers.html:9
 
#: rhodecode/templates/forks/fork.html:9
 
#: rhodecode/templates/forks/forks.html:9
 
#: rhodecode/templates/pullrequests/pullrequest.html:8
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:8
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:8
 
#: rhodecode/templates/settings/repo_settings.html:9
 
#: rhodecode/templates/shortlog/shortlog.html:10
 
#: rhodecode/templates/summary/summary.html:8
 
#: rhodecode/templates/tags/tags.html:11
 
msgid "Home"
 
msgstr "Accueil"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups.html:13
 
msgid "with"
 
msgstr "comprenant"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:5
 
msgid "Add repos group"
 
msgstr "Créer un groupe de dépôt"
 
@@ -2239,29 +2198,27 @@ msgid "Group parent"
 
msgstr "Parent du groupe"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:58
 
#: rhodecode/templates/admin/users/user_add.html:94
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:49
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:90
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:113
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:117
 
msgid "save"
 
msgstr "Enregistrer"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:5
 
msgid "Edit repos group"
 
msgstr "Éditer le groupe de dépôt"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:12
 
msgid "edit repos group"
 
msgstr "Édition du groupe de dépôt"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:70
 
msgid ""
 
"Enable lock-by-pulling on group. This option will be applied to all other"
 
" groups and repositories inside"
 
msgstr ""
 
msgid "Enable lock-by-pulling on group. This option will be applied to all other groups and repositories inside"
 
msgstr "Activer le verrou lors d’un pull sur le groupe. Cette option sera appliquée à tous les sous-groupes et dépôts de ce groupe."
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:5
 
msgid "Repositories groups administration"
 
msgstr "Administration des groupes de dépôts"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_show.html:22
 
@@ -2328,29 +2285,22 @@ msgstr "Ré-associer et re-scanner les dépôts"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:32
 
msgid "rescan option"
 
msgstr "Option de re-scan"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:38
 
msgid ""
 
"In case a repository was deleted from filesystem and there are leftovers "
 
"in the database check this option to scan obsolete data in database and "
 
"remove it."
 
msgstr ""
 
"Cochez cette option pour supprimer d’éventuelles données obsolètes "
 
"(concernant des dépôts manuellement supprimés) de la base de données."
 
msgid "In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it."
 
msgstr "Cochez cette option pour supprimer d’éventuelles données obsolètes (concernant des dépôts manuellement supprimés) de la base de données."
 

	
 
#: rhodecode/templates/admin/settings/settings.html:39
 
msgid "destroy old data"
 
msgstr "Supprimer les données obsolètes"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:41
 
msgid ""
 
"Rescan repositories location for new repositories. Also deletes obsolete "
 
"if `destroy` flag is checked "
 
msgstr ""
 
msgid "Rescan repositories location for new repositories. Also deletes obsolete if `destroy` flag is checked "
 
msgstr "Rescanner le dossier contenant les dépôts pour en trouver de nouveaux. Supprime égalements les entrées de dépôts obsolètes si « Supprimer les données obsolètes » est coché."
 

	
 
#: rhodecode/templates/admin/settings/settings.html:46
 
msgid "Rescan repositories"
 
msgstr "Re-scanner les dépôts"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:52
 
@@ -2389,58 +2339,50 @@ msgstr "Code GA"
 
#: rhodecode/templates/admin/settings/settings.html:167
 
#: rhodecode/templates/admin/settings/settings.html:257
 
msgid "Save settings"
 
msgstr "Enregister les options"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:119
 
#, fuzzy
 
msgid "Visualisation settings"
 
msgstr "Réglages d’application globaux"
 
msgstr "Réglages d’affichage"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:128
 
#, fuzzy
 
msgid "Icons"
 
msgstr "Options"
 
msgstr "Icônes"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:133
 
msgid "Show public repo icon on repositories"
 
msgstr ""
 
msgstr "Afficher l’icône de dépôt public sur les dépôts"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:137
 
#, fuzzy
 
msgid "Show private repo icon on repositories"
 
msgstr "Dépôt privé"
 
msgstr "Afficher l’icône de dépôt privé sur les dépôts"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:144
 
#, fuzzy
 
msgid "Meta-Tagging"
 
msgstr "Réglages"
 
msgstr "Meta-Tagging"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:149
 
msgid "Stylify recognised metatags:"
 
msgstr ""
 
msgstr "Styliser les méta-tags reconnus :"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:176
 
#, fuzzy
 
msgid "VCS settings"
 
msgstr "Réglages"
 
msgstr "Réglages de gestionnaire de version"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:185
 
msgid "Web"
 
msgstr "Web"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:190
 
#, fuzzy
 
msgid "require ssl for vcs operations"
 
msgstr "SSL requis pour les pushs"
 
msgstr "SSL requis pour les opérations de push/pull"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:192
 
msgid ""
 
"RhodeCode will require SSL for pushing or pulling. If SSL is missing it "
 
"will return HTTP Error 406: Not Acceptable"
 
msgstr ""
 
msgid "RhodeCode will require SSL for pushing or pulling. If SSL is missing it will return HTTP Error 406: Not Acceptable"
 
msgstr "RhodeCode requièrera SSL pour les pushs et pulls. Si le SSL n’est pas utilisé l’erreur HTTP 406 (Non Acceptable) sera renvoyée."
 

	
 
#: rhodecode/templates/admin/settings/settings.html:198
 
msgid "Hooks"
 
msgstr "Hooks"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:203
 
@@ -2461,53 +2403,43 @@ msgstr "Journaliser les commandes de pul
 

	
 
#: rhodecode/templates/admin/settings/settings.html:219
 
msgid "advanced setup"
 
msgstr "Avancé"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:224
 
#, fuzzy
 
msgid "Mercurial Extensions"
 
msgstr "Dépôt Mercurial"
 
msgstr "Extensions Mercurial"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:229
 
msgid "largefiles extensions"
 
msgstr ""
 
msgstr "Extensions largefiles"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:233
 
msgid "hgsubversion extensions"
 
msgstr ""
 
msgstr "Extensions hgsubversion"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:235
 
msgid ""
 
"Requires hgsubversion library installed. Allows clonning from svn remote "
 
"locations"
 
msgstr ""
 
msgid "Requires hgsubversion library installed. Allows clonning from svn remote locations"
 
msgstr "Ceci nécessite l’installation de la bibliothèque hgsubversion. Permet de clôner à partir de dépôts Suversion."
 

	
 
#: rhodecode/templates/admin/settings/settings.html:245
 
msgid "Repositories location"
 
msgstr "Emplacement des dépôts"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:250
 
msgid ""
 
"This a crucial application setting. If you are really sure you need to "
 
"change this, you must restart application in order to make this setting "
 
"take effect. Click this label to unlock."
 
msgstr ""
 
"Ce réglage ne devrait pas être modifié en temps normal. Si vous devez "
 
"vraiment le faire, redémarrer l’application une fois le changement "
 
"effectué. Cliquez sur ce texte pour déverrouiller."
 
msgid "This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock."
 
msgstr "Ce réglage ne devrait pas être modifié en temps normal. Si vous devez vraiment le faire, redémarrer l’application une fois le changement effectué. Cliquez sur ce texte pour déverrouiller."
 

	
 
#: rhodecode/templates/admin/settings/settings.html:251
 
#: rhodecode/templates/base/base.html:218
 
msgid "unlock"
 
msgstr "Déverrouiller"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:252
 
msgid ""
 
"Location where repositories are stored. After changing this value a "
 
"restart, and rescan is required"
 
msgstr ""
 
msgid "Location where repositories are stored. After changing this value a restart, and rescan is required"
 
msgstr "Emplacement de stockage des dépôts. Si cette valeur est changée, Rhodecode devra être redémarré les les dépôts rescannés."
 

	
 
#: rhodecode/templates/admin/settings/settings.html:272
 
msgid "Test Email"
 
msgstr "E-mail de test"
 

	
 
#: rhodecode/templates/admin/settings/settings.html:280
 
@@ -2582,70 +2514,61 @@ msgstr "Nouveau mot de passe"
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:44
 
msgid "New password confirmation"
 
msgstr "Confirmation du nouveau mot de passe"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:147
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:108
 
#, fuzzy
 
msgid "Inherit default permissions"
 
msgstr "Permissions par défaut"
 
msgstr "Utiliser les permissions par défaut"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:152
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:113
 
#, python-format
 
msgid ""
 
"Select to inherit permissions from %s settings. With this selected below "
 
"options does not have any action"
 
msgstr ""
 
msgid "Select to inherit permissions from %s settings. With this selected below options does not have any action"
 
msgstr "Cochez pour utiliser les permissions des les réglages %s. Si cette option est activée, les réglages ci-dessous n’auront pas d’effet."
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:158
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:119
 
msgid "Create repositories"
 
msgstr "Création de dépôts"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:166
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:127
 
#, fuzzy
 
msgid "Fork repositories"
 
msgstr "Dépôts"
 
msgstr "Forker les dépôts"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:186
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:22
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:39
 
#, fuzzy
 
msgid "Nothing here yet"
 
msgstr "Aucune notification pour le moment."
 
msgstr "Rien ici pour le moment"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:193
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:60
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:194
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:218
 
msgid "Permission"
 
msgstr "Permission"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:194
 
#, fuzzy
 
msgid "Edit Permission"
 
msgstr "Permissions du dépôt"
 
msgstr "Éditer"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:243
 
#, fuzzy
 
msgid "Email addresses"
 
msgstr "Adresse e-mail"
 
msgstr "Adresses e-mail"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:256
 
#, fuzzy, python-format
 
#, python-format
 
msgid "Confirm to delete this email: %s"
 
msgstr "Voulez-vous vraiment supprimer l’utilisateur « %s » ?"
 
msgstr "Veuillez confirmer la suppression de l’e-mail : %s"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:270
 
#, fuzzy
 
msgid "New email address"
 
msgstr "Adresse e-mail"
 
msgstr "Nouvelle adrese"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:277
 
#, fuzzy
 
msgid "Add"
 
msgstr "Ajouter"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:5
 
#: rhodecode/templates/base/base.html:124
 
msgid "My account"
 
@@ -2662,44 +2585,41 @@ msgstr "Mes permissions"
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:38
 
#: rhodecode/templates/journal/journal.html:41
 
msgid "My repos"
 
msgstr "Mes dépôts"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:41
 
#, fuzzy
 
msgid "My pull requests"
 
msgstr "a posté un commentaire sur le commit"
 
msgstr "Mes requêtes de pull"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:45
 
#, fuzzy
 
msgid "Add repo"
 
msgstr "ajouter un nouveau"
 
msgstr "Ajouter un dépôt"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:2
 
msgid "Opened by me"
 
msgstr ""
 
msgstr "Ouvertes par moi"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:10
 
#, python-format
 
msgid "Pull request #%s opened on %s"
 
msgstr ""
 
msgstr "Requête de pull nº%s ouverte le %s"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:15
 
#, fuzzy
 
msgid "Confirm to delete this pull request"
 
msgstr "Voulez-vous vraiment supprimer ce dépôt ?"
 
msgstr "Veuillez confirmer la suppression de cette requête de pull."
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:26
 
msgid "I participate in"
 
msgstr ""
 
msgstr "Je participe à"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:33
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:30
 
#, python-format
 
msgid "Pull request #%s opened by %s on %s"
 
msgstr ""
 
msgstr "Requête de pull nº%s ouverte par %s le %s"
 

	
 
#: rhodecode/templates/admin/users/user_edit_my_account_repos.html:7
 
#: rhodecode/templates/bookmarks/bookmarks.html:40
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:9
 
#: rhodecode/templates/branches/branches.html:55
 
#: rhodecode/templates/journal/journal.html:60
 
@@ -2731,26 +2651,25 @@ msgstr "En créer un maintenant"
 

	
 
#: rhodecode/templates/admin/users/users.html:5
 
msgid "Users administration"
 
msgstr "Administration des utilisateurs"
 

	
 
#: rhodecode/templates/admin/users/users.html:9
 
#: rhodecode/templates/base/base.html:223
 
#: rhodecode/templates/base/base.html:232
 
msgid "users"
 
msgstr "Utilisateurs"
 

	
 
#: rhodecode/templates/admin/users/users.html:23
 
msgid "ADD NEW USER"
 
msgstr "NOUVEL UTILISATEUR"
 

	
 
#: rhodecode/templates/admin/users/users.html:77
 
msgid "username"
 
msgstr "Nom d’utilisateur"
 

	
 
#: rhodecode/templates/admin/users/users.html:80
 
#, fuzzy
 
msgid "firstname"
 
msgstr "Prénom"
 

	
 
#: rhodecode/templates/admin/users/users.html:81
 
msgid "lastname"
 
msgstr "Nom de famille"
 
@@ -2762,13 +2681,13 @@ msgstr "Dernière connexion"
 
#: rhodecode/templates/admin/users/users.html:84
 
#: rhodecode/templates/admin/users_groups/users_groups.html:34
 
msgid "active"
 
msgstr "Actif"
 

	
 
#: rhodecode/templates/admin/users/users.html:86
 
#: rhodecode/templates/base/base.html:226
 
#: rhodecode/templates/base/base.html:235
 
msgid "ldap"
 
msgstr "LDAP"
 

	
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:5
 
msgid "Add users group"
 
msgstr "Ajouter un groupe d’utilisateur"
 
@@ -2853,42 +2772,16 @@ msgid "Log In"
 
msgstr "Connexion"
 

	
 
#: rhodecode/templates/base/base.html:118
 
msgid "Inbox"
 
msgstr "Boîte de réception"
 

	
 
#: rhodecode/templates/base/base.html:122
 
#: rhodecode/templates/base/base.html:300
 
#: rhodecode/templates/base/base.html:302
 
#: rhodecode/templates/base/base.html:304
 
#: rhodecode/templates/bookmarks/bookmarks.html:11
 
#: rhodecode/templates/branches/branches.html:10
 
#: rhodecode/templates/changelog/changelog.html:10
 
#: rhodecode/templates/changeset/changeset.html:10
 
#: rhodecode/templates/changeset/changeset_range.html:9
 
#: rhodecode/templates/compare/compare_diff.html:9
 
#: rhodecode/templates/files/file_diff.html:8
 
#: rhodecode/templates/files/files.html:8
 
#: rhodecode/templates/files/files_add.html:15
 
#: rhodecode/templates/files/files_edit.html:15
 
#: rhodecode/templates/followers/followers.html:9
 
#: rhodecode/templates/forks/fork.html:9 rhodecode/templates/forks/forks.html:9
 
#: rhodecode/templates/pullrequests/pullrequest.html:8
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:8
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:8
 
#: rhodecode/templates/settings/repo_settings.html:9
 
#: rhodecode/templates/shortlog/shortlog.html:10
 
#: rhodecode/templates/summary/summary.html:8
 
#: rhodecode/templates/tags/tags.html:11
 
msgid "Home"
 
msgstr "Accueil"
 

	
 
#: rhodecode/templates/base/base.html:123
 
#: rhodecode/templates/base/base.html:309
 
#: rhodecode/templates/base/base.html:311
 
#: rhodecode/templates/base/base.html:313
 
#: rhodecode/templates/base/base.html:318
 
#: rhodecode/templates/base/base.html:320
 
#: rhodecode/templates/base/base.html:322
 
#: rhodecode/templates/journal/journal.html:4
 
#: rhodecode/templates/journal/journal.html:21
 
#: rhodecode/templates/journal/public_journal.html:4
 
msgid "Journal"
 
msgstr "Historique"
 

	
 
@@ -2947,56 +2840,65 @@ msgstr "Fichiers"
 
#: rhodecode/templates/base/base.html:199
 
msgid "Options"
 
msgstr "Options"
 

	
 
#: rhodecode/templates/base/base.html:204
 
#: rhodecode/templates/base/base.html:206
 
#: rhodecode/templates/base/base.html:227
 
msgid "settings"
 
msgstr "Réglages"
 

	
 
#: rhodecode/templates/base/base.html:209
 
#| msgid "Repository creation"
 
msgid "repository settings"
 
msgstr "Réglages de dépôt"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/data_table/_dt_elements.html:80
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "Fork"
 

	
 
#: rhodecode/templates/base/base.html:211
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/base/base.html:212
 
#: rhodecode/templates/changelog/changelog.html:41
 
msgid "Open new pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/base/base.html:213
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/base/base.html:214
 
msgid "search"
 
msgstr "Rechercher"
 

	
 
#: rhodecode/templates/base/base.html:222
 
#: rhodecode/templates/base/base.html:220
 
#| msgid "unlock"
 
msgid "lock"
 
msgstr "Verrouiller"
 

	
 
#: rhodecode/templates/base/base.html:231
 
msgid "repositories groups"
 
msgstr "Groupes de dépôts"
 

	
 
#: rhodecode/templates/base/base.html:224
 
#: rhodecode/templates/base/base.html:233
 
msgid "users groups"
 
msgstr "Groupes d’utilisateurs"
 

	
 
#: rhodecode/templates/base/base.html:225
 
#: rhodecode/templates/base/base.html:234
 
msgid "permissions"
 
msgstr "Permissions"
 

	
 
#: rhodecode/templates/base/base.html:238
 
#: rhodecode/templates/base/base.html:240
 
#: rhodecode/templates/base/base.html:236
 
msgid "settings"
 
msgstr "Réglages"
 

	
 
#: rhodecode/templates/base/base.html:247
 
#: rhodecode/templates/base/base.html:249
 
msgid "Followers"
 
msgstr "Followers"
 

	
 
#: rhodecode/templates/base/base.html:246
 
#: rhodecode/templates/base/base.html:248
 
#: rhodecode/templates/base/base.html:255
 
#: rhodecode/templates/base/base.html:257
 
msgid "Forks"
 
msgstr "Forks"
 

	
 
#: rhodecode/templates/base/base.html:327
 
#: rhodecode/templates/base/base.html:329
 
#: rhodecode/templates/base/base.html:331
 
#: rhodecode/templates/base/base.html:336
 
#: rhodecode/templates/base/base.html:338
 
#: rhodecode/templates/base/base.html:340
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
msgstr "Rechercher"
 

	
 
#: rhodecode/templates/base/root.html:42
 
msgid "add another comment"
 
@@ -3041,22 +2943,20 @@ msgstr "Auteur"
 
#: rhodecode/templates/branches/branches.html:5
 
#, python-format
 
msgid "%s Branches"
 
msgstr "Branches de %s"
 

	
 
#: rhodecode/templates/branches/branches.html:29
 
#, fuzzy
 
msgid "Compare branches"
 
msgstr "Branches"
 
msgstr "Comparer les branches"
 

	
 
#: rhodecode/templates/branches/branches.html:57
 
#: rhodecode/templates/compare/compare_diff.html:5
 
#: rhodecode/templates/compare/compare_diff.html:13
 
#, fuzzy
 
msgid "Compare"
 
msgstr "vue de comparaison"
 
msgstr "Comparer"
 

	
 
#: rhodecode/templates/branches/branches_data.html:6
 
msgid "name"
 
msgstr "Prénom"
 

	
 
#: rhodecode/templates/branches/branches_data.html:7
 
@@ -3071,15 +2971,14 @@ msgstr "Auteur"
 
#: rhodecode/templates/branches/branches_data.html:9
 
#: rhodecode/templates/shortlog/shortlog_data.html:5
 
msgid "revision"
 
msgstr "Révision"
 

	
 
#: rhodecode/templates/branches/branches_data.html:10
 
#, fuzzy
 
msgid "compare"
 
msgstr "vue de comparaison"
 
msgstr "Comparer"
 

	
 
#: rhodecode/templates/changelog/changelog.html:6
 
#, python-format
 
msgid "%s Changelog"
 
msgstr "Historique de %s"
 

	
 
@@ -3087,25 +2986,24 @@ msgstr "Historique de %s"
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] "Affichage de %d révision sur %d"
 
msgstr[1] "Affichage de %d révisions sur %d"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
#: rhodecode/templates/changelog/changelog.html:38
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr ""
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgstr "Comparer le fork avec %s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:38
 
#: rhodecode/templates/forks/forks_data.html:21
 
#, fuzzy
 
msgid "Compare fork"
 
msgstr "vue de comparaison"
 

	
 
#: rhodecode/templates/changelog/changelog.html:46
 
msgstr "Comparer le fork"
 

	
 
#: rhodecode/templates/changelog/changelog.html:47
 
msgid "Show"
 
msgstr "Afficher"
 

	
 
#: rhodecode/templates/changelog/changelog.html:72
 
#: rhodecode/templates/summary/summary.html:364
 
msgid "show more"
 
@@ -3116,19 +3014,19 @@ msgid "Affected number of files, click t
 
msgstr "Nombre de fichiers modifiés, cliquez pour plus de détails"
 

	
 
#: rhodecode/templates/changelog/changelog.html:89
 
#: rhodecode/templates/changeset/changeset.html:38
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
#, fuzzy
 
msgid "Changeset status"
 
msgstr "Changesets"
 
msgstr "Statut du changeset"
 

	
 
#: rhodecode/templates/changelog/changelog.html:92
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
msgid "Click to open associated pull request"
 
msgstr ""
 
msgstr "Cliquez ici pour ouvrir la requête de pull associée."
 

	
 
#: rhodecode/templates/changelog/changelog.html:102
 
#: rhodecode/templates/changeset/changeset.html:78
 
msgid "Parent"
 
msgstr "Parent"
 

	
 
@@ -3230,38 +3128,30 @@ msgstr[1] "(et %d en ligne)"
 

	
 
#: rhodecode/templates/changeset/changeset.html:103
 
#, python-format
 
msgid "%s files affected with %s insertions and %s deletions:"
 
msgstr "%s fichiers affectés avec %s insertions et %s suppressions :"
 

	
 
#: rhodecode/templates/changeset/changeset.html:119
 
msgid "Changeset was too big and was cut off..."
 
msgstr "Cet ensemble de changements était trop important et a été découpé…"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:42
 
msgid "Submitting..."
 
msgstr "Envoi…"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:45
 
msgid "Commenting on line {1}."
 
msgstr "Commentaire sur la ligne {1}."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:46
 
#: rhodecode/templates/changeset/changeset_file_comment.html:121
 
#, python-format
 
msgid "Comments parsed using %s syntax with %s support."
 
msgstr ""
 
"Les commentaires sont analysés avec la syntaxe %s, avec le support de la "
 
"commande %s."
 
msgstr "Les commentaires sont analysés avec la syntaxe %s, avec le support de la commande %s."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:48
 
#: rhodecode/templates/changeset/changeset_file_comment.html:123
 
msgid "Use @username inside this text to send notification to this RhodeCode user"
 
msgstr ""
 
"Utilisez @nomutilisateur dans ce texte pour envoyer une notification à "
 
"l’utilisateur RhodeCode en question."
 
msgstr "Utilisez @nomutilisateur dans ce texte pour envoyer une notification à l’utilisateur RhodeCode en question."
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:59
 
#: rhodecode/templates/changeset/changeset_file_comment.html:138
 
msgid "Comment"
 
msgstr "Commentaire"
 

	
 
@@ -3281,22 +3171,21 @@ msgstr "Se connecter maintenant"
 
#: rhodecode/templates/changeset/changeset_file_comment.html:118
 
msgid "Leave a comment"
 
msgstr "Laisser un commentaire"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:124
 
msgid "Check this to change current status of code-review for this changeset"
 
msgstr ""
 
msgstr "Cochez pour changer le statut de la relecture de code pour ce changeset"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:124
 
#, fuzzy
 
msgid "change status"
 
msgstr "Changesets"
 
msgstr "Modifier le statut"
 

	
 
#: rhodecode/templates/changeset/changeset_file_comment.html:140
 
msgid "Comment and close"
 
msgstr ""
 
msgstr "Commenter et fermer"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:5
 
#, python-format
 
msgid "%s Changesets"
 
msgstr "Changesets de %s"
 

	
 
@@ -3304,33 +3193,31 @@ msgstr "Changesets de %s"
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "Comparaison"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
#: rhodecode/templates/compare/compare_diff.html:41
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:69
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:73
 
msgid "Files affected"
 
msgstr "Fichiers affectés"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "diff"
 
msgstr "Diff"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:27
 
msgid "show inline comments"
 
msgstr "Afficher les commentaires"
 

	
 
#: rhodecode/templates/compare/compare_cs.html:5
 
#, fuzzy
 
msgid "No changesets"
 
msgstr "Dépôt vide"
 
msgstr "Aucun changeset"
 

	
 
#: rhodecode/templates/compare/compare_diff.html:37
 
#, fuzzy
 
msgid "Outgoing changesets"
 
msgstr "Dépôt vide"
 
msgstr "Changesets sortants"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:39
 
#: rhodecode/templates/data_table/_dt_elements.html:41
 
#: rhodecode/templates/data_table/_dt_elements.html:43
 
msgid "Fork"
 
msgstr "Fork"
 
@@ -3385,21 +3272,26 @@ msgstr "Diff de fichier de %s"
 
#: rhodecode/templates/files/file_diff.html:12
 
msgid "File diff"
 
msgstr "Diff de fichier"
 

	
 
#: rhodecode/templates/files/files.html:4
 
#: rhodecode/templates/files/files.html:72
 
#, fuzzy, python-format
 
#, python-format
 
msgid "%s files"
 
msgstr "Fichiers de %s"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:340
 
msgid "files"
 
msgstr "Fichiers"
 

	
 
#: rhodecode/templates/files/files.html:92
 
#: rhodecode/templates/files/files_source.html:124
 
msgid "Selection link"
 
msgstr "Lien vers la sélection"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr "Edition de fichier de %s"
 

	
 
@@ -3468,13 +3360,13 @@ msgstr "Suivre la branche actuelle"
 

	
 
#: rhodecode/templates/files/files_browser.html:27
 
msgid "search file list"
 
msgstr "Rechercher un fichier"
 

	
 
#: rhodecode/templates/files/files_browser.html:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:65
 
#: rhodecode/templates/shortlog/shortlog_data.html:80
 
msgid "add new file"
 
msgstr "Ajouter un fichier"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "Chargement de la liste des fichiers…"
 
@@ -3529,27 +3421,25 @@ msgstr "Édition du fichier"
 

	
 
#: rhodecode/templates/files/files_source.html:2
 
msgid "History"
 
msgstr "Historique"
 

	
 
#: rhodecode/templates/files/files_source.html:9
 
#, fuzzy
 
msgid "diff to revision"
 
msgstr "révision suivante"
 
msgstr "Diff avec la révision"
 

	
 
#: rhodecode/templates/files/files_source.html:10
 
#, fuzzy
 
msgid "show at revision"
 
msgstr "révision suivante"
 
msgstr "Afficher à la révision"
 

	
 
#: rhodecode/templates/files/files_source.html:14
 
#, python-format
 
msgid "%s author"
 
msgid_plural "%s authors"
 
msgstr[0] "%s Auteur"
 
msgstr[1] "%s Auteurs"
 
msgstr[0] "%s auteur"
 
msgstr[1] "%s auteurs"
 

	
 
#: rhodecode/templates/files/files_source.html:36
 
msgid "show source"
 
msgstr "montrer les sources"
 

	
 
#: rhodecode/templates/files/files_source.html:59
 
@@ -3558,16 +3448,12 @@ msgid "Binary file (%s)"
 
msgstr "Fichier binaire (%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:68
 
msgid "File is too big to display"
 
msgstr "Ce fichier est trop gros pour être affiché."
 

	
 
#: rhodecode/templates/files/files_source.html:124
 
msgid "Selection link"
 
msgstr "Lien vers la sélection"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "annotation"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
@@ -3606,21 +3492,21 @@ msgstr "Privé"
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "Copier les permissions"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr ""
 
msgstr "Copier les permissions depuis le dépôt forké"
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "MÀJ après le clonage"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr ""
 
msgstr "Mettre à jour depuis la source après clonage"
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "Forker ce dépôt"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
@@ -3638,36 +3524,33 @@ msgstr "forké"
 

	
 
#: rhodecode/templates/forks/forks_data.html:38
 
msgid "There are no forks yet"
 
msgstr "Il n’y a pas encore de forks."
 

	
 
#: rhodecode/templates/journal/journal.html:13
 
#, fuzzy
 
msgid "ATOM journal feed"
 
msgstr "%s — Flux %s du journal public"
 
msgstr "Flux ATOM du journal"
 

	
 
#: rhodecode/templates/journal/journal.html:14
 
#, fuzzy
 
msgid "RSS journal feed"
 
msgstr "%s — Flux %s du journal public"
 
msgstr "Flux RSS du journal"
 

	
 
#: rhodecode/templates/journal/journal.html:24
 
#: rhodecode/templates/pullrequests/pullrequest.html:27
 
#: rhodecode/templates/pullrequests/pullrequest.html:53
 
msgid "Refresh"
 
msgstr "Rafraîchir"
 

	
 
#: rhodecode/templates/journal/journal.html:27
 
#: rhodecode/templates/journal/public_journal.html:24
 
#, fuzzy
 
msgid "RSS feed"
 
msgstr "Flux %s de %s"
 
msgstr "Flux RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:30
 
#: rhodecode/templates/journal/public_journal.html:27
 
msgid "ATOM feed"
 
msgstr ""
 
msgstr "Flux ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:41
 
msgid "Watched"
 
msgstr "Surveillé"
 

	
 
#: rhodecode/templates/journal/journal.html:46
 
@@ -3688,150 +3571,147 @@ msgstr "Vous ne suivez aucun utilisateur ou dépôt"
 

	
 
#: rhodecode/templates/journal/journal_data.html:47
 
msgid "No entries yet"
 
msgstr "Aucune entrée pour le moment"
 

	
 
#: rhodecode/templates/journal/public_journal.html:13
 
#, fuzzy
 
msgid "ATOM public journal feed"
 
msgstr "%s — Flux %s du journal public"
 
msgstr "Flux ATOM du journal public"
 

	
 
#: rhodecode/templates/journal/public_journal.html:14
 
#, fuzzy
 
msgid "RSS public journal feed"
 
msgstr "%s — Flux %s du journal public"
 
msgstr "Flux RSS du journal public"
 

	
 
#: rhodecode/templates/journal/public_journal.html:21
 
msgid "Public Journal"
 
msgstr "Journal public"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:28
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:52
 
msgid "refresh overview"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
#, fuzzy
 
msgstr "Rafraîchir les informations"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:64
 
msgid "Detailed compare view"
 
msgstr "vue de comparaison"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:82
 
msgstr "Comparaison détaillée"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:68
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:86
 
msgid "Pull request reviewers"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#, fuzzy
 
msgstr "Relecteurs de la requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:77
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:98
 
msgid "owner"
 
msgstr "Propriétaire"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:109
 
#: rhodecode/templates/pullrequests/pullrequest.html:89
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:113
 
msgid "Add reviewer to this pull request."
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
#, fuzzy
 
msgstr "Ajouter un relecteur à cette requête de pull."
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:95
 
msgid "Create new pull request"
 
msgstr "Créer un nouveau fichier"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
msgstr "Nouvelle requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:104
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
#, fuzzy
 
msgid "Title"
 
msgstr "Écriture"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
#, fuzzy
 
msgstr "Titre"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:113
 
msgid "description"
 
msgstr "Description"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
#: rhodecode/templates/pullrequests/pullrequest.html:121
 
msgid "Send pull request"
 
msgstr ""
 
msgstr "Envoyer la requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
msgstr ""
 
msgstr "Fermée %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "with status %s"
 
msgstr "avec %s comme statut."
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:31
 
#, fuzzy
 
msgid "Status"
 
msgstr "Changesets"
 
msgstr "Statut"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:36
 
msgid "Pull request status"
 
msgstr ""
 
msgstr "Statut de la requête de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:47
 
msgstr "Pas encore relue par"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] ""
 
msgstr[1] ""
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:54
 
#, fuzzy
 
msgstr[0] "%d relecteur"
 
msgstr[1] "%d relecteurs"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
#| msgid "Pull request reviewers"
 
msgid "pull request was reviewed by all reviewers"
 
msgstr "La requête de pull a été relue par tous les relecteurs."
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:58
 
msgid "Created on"
 
msgstr "En créer un maintenant"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:61
 
#, fuzzy
 
msgid "Compare view"
 
msgstr "vue de comparaison"
 
msgstr "Créé le"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:65
 
#, fuzzy
 
msgid "Compare view"
 
msgstr "Vue de comparaison"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:69
 
msgid "Incoming changesets"
 
msgstr "Dépôt vide"
 
msgstr "Changesets entrants"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
#, fuzzy
 
msgid "all pull requests"
 
msgstr "Créer un nouveau fichier"
 
msgstr "Requêtes de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:12
 
msgid "All pull requests"
 
msgstr ""
 
msgstr "Toutes les requêtes de pull"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:27
 
msgid "Closed"
 
msgstr ""
 
msgstr "Fermée"
 

	
 
#: rhodecode/templates/search/search.html:6
 
#, python-format
 
msgid "Search \"%s\" in repository: %s"
 
msgstr "dans \"%s\" le dépôt: %s"
 
msgstr "Rechercher « %s » dans le dépôt : %s"
 

	
 
#: rhodecode/templates/search/search.html:8
 
#, python-format
 
msgid "Search \"%s\" in all repositories"
 
msgstr "Recherche \"%s\" dans tous les référentiels"
 
msgstr "Rechercher « %s » dans tous les dépôts"
 

	
 
#: rhodecode/templates/search/search.html:12
 
#: rhodecode/templates/search/search.html:32
 
#, python-format
 
msgid "Search in repository: %s"
 
msgstr "dans le dépôt: %s"
 
msgstr "Rechercher dans le dépôt : %s"
 

	
 
#: rhodecode/templates/search/search.html:14
 
#: rhodecode/templates/search/search.html:34
 
#, fuzzy
 
msgid "Search in all repositories"
 
msgstr "dans tous les dépôts"
 
msgstr "Rechercher dans tous les dépôts"
 

	
 
#: rhodecode/templates/search/search.html:48
 
msgid "Search term"
 
msgstr "Termes de la recherches"
 

	
 
#: rhodecode/templates/search/search.html:60
 
@@ -3840,15 +3720,14 @@ msgstr "Rechercher dans"
 

	
 
#: rhodecode/templates/search/search.html:63
 
msgid "File contents"
 
msgstr "Le contenu des fichiers"
 

	
 
#: rhodecode/templates/search/search.html:64
 
#, fuzzy
 
msgid "Commit messages"
 
msgstr "Message de commit"
 
msgstr "Les messages de commit"
 

	
 
#: rhodecode/templates/search/search.html:65
 
msgid "File names"
 
msgstr "Les noms de fichiers"
 

	
 
#: rhodecode/templates/search/search_commit.html:35
 
@@ -3872,25 +3751,25 @@ msgid "shortlog"
 
msgstr "Résumé"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
msgid "age"
 
msgstr "Âge"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:18
 
#: rhodecode/templates/shortlog/shortlog_data.html:33
 
msgid "No commit message"
 
msgstr "Pas de message de commit"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:62
 
#: rhodecode/templates/shortlog/shortlog_data.html:77
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "Ajouter ou téléverser des fichiers directement via RhodeCode…"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:71
 
#: rhodecode/templates/shortlog/shortlog_data.html:86
 
msgid "Push new repo"
 
msgstr "Pusher le nouveau dépôt"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:79
 
#: rhodecode/templates/shortlog/shortlog_data.html:94
 
msgid "Existing repository?"
 
msgstr "Le dépôt existe déjà ?"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
@@ -3898,20 +3777,20 @@ msgstr "Résumé de %s"
 

	
 
#: rhodecode/templates/summary/summary.html:12
 
msgid "summary"
 
msgstr "résumé"
 

	
 
#: rhodecode/templates/summary/summary.html:20
 
#, fuzzy, python-format
 
#, python-format
 
msgid "repo %s ATOM feed"
 
msgstr "S’abonner au flux ATOM de %s"
 
msgstr "Flux ATOM du dépôt %s"
 

	
 
#: rhodecode/templates/summary/summary.html:21
 
#, fuzzy, python-format
 
#, python-format
 
msgid "repo %s RSS feed"
 
msgstr "S’abonner au flux RSS de %s"
 
msgstr "Flux RSS du dépôt %s"
 

	
 
#: rhodecode/templates/summary/summary.html:49
 
#: rhodecode/templates/summary/summary.html:52
 
msgid "ATOM"
 
msgstr "ATOM"
 

	
 
@@ -3994,17 +3873,17 @@ msgstr "Résumé des changements"
 
msgid "Quick start"
 
msgstr "Démarrage rapide"
 

	
 
#: rhodecode/templates/summary/summary.html:233
 
#, python-format
 
msgid "Readme file at revision '%s'"
 
msgstr ""
 
msgstr "Fichier « Lisez-moi » à la révision « %s »"
 

	
 
#: rhodecode/templates/summary/summary.html:236
 
msgid "Permalink to this readme"
 
msgstr ""
 
msgstr "Lien permanent vers ce fichier « Lisez-moi »"
 

	
 
#: rhodecode/templates/summary/summary.html:293
 
#, python-format
 
msgid "Download %s as %s"
 
msgstr "Télécharger %s comme archive %s"
 

	
 
@@ -4042,6 +3921,8 @@ msgstr "fichier supprimé"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr "Tags de %s"
 

	
 
#~ msgid "Groups"
 
#~ msgstr "Groupes"
rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.mo
Show inline comments
 
binary diff not shown
rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po
Show inline comments
 
@@ -5,23 +5,22 @@
 
# mikespook <mikespook@gmail.com>, 2012.
 
# xpol <xpolife@gmail.com>, 2012.
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: RhodeCode 1.2.0\n"
 
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
 
"POT-Creation-Date: 2012-09-21 14:39+0800\n"
 
"PO-Revision-Date: 2012-09-21 15:20+0800\n"
 
"POT-Creation-Date: 2012-10-02 13:34+0800\n"
 
"PO-Revision-Date: 2012-10-02 13:44+0800\n"
 
"Last-Translator: xpol <xpolife@gmail.com>\n"
 
"Language-Team: mikespook\n"
 
"Plural-Forms: nplurals=1; plural=0;\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=UTF-8\n"
 
"Content-Type: text/plain; charset=utf-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"Generated-By: Babel 0.9.6\n"
 
"X-Generator: Poedit 1.5.3\n"
 
"X-Poedit-Basepath: E:\\home\\rhodecode\n"
 

	
 
#: rhodecode/controllers/changelog.py:95
 
msgid "All Branches"
 
msgstr "所有分支"
 

	
 
#: rhodecode/controllers/changeset.py:83
 
@@ -40,25 +39,25 @@ msgstr "%s 行上下文"
 
#: rhodecode/controllers/changeset.py:333
 
#: rhodecode/controllers/changeset.py:348 rhodecode/lib/diffs.py:71
 
msgid "binary file"
 
msgstr "二进制文件"
 

	
 
#: rhodecode/controllers/changeset.py:381
 
#: rhodecode/controllers/pullrequests.py:368
 
#: rhodecode/controllers/pullrequests.py:376
 
#, python-format
 
#| msgid "Last change"
 
msgid "Status change -> %s"
 
msgstr "状态改变 -> %s"
 

	
 
#: rhodecode/controllers/changeset.py:412
 
msgid ""
 
"Changing status on a changeset associated witha closed pull request is not "
 
"allowed"
 
msgstr "不允许修改已关闭拉取请求的修订集状态"
 

	
 
#: rhodecode/controllers/compare.py:72
 
#: rhodecode/controllers/pullrequests.py:114
 
msgid "There are no changesets yet"
 
msgstr "还没有修订集"
 

	
 
#: rhodecode/controllers/error.py:69
 
msgid "Home page"
 
msgstr "主页"
 
@@ -170,19 +169,19 @@ msgstr "未知包类型"
 
#: rhodecode/controllers/files.py:494
 
#: rhodecode/templates/changeset/changeset_range.html:13
 
#: rhodecode/templates/changeset/changeset_range.html:31
 
msgid "Changesets"
 
msgstr "修订集"
 

	
 
#: rhodecode/controllers/files.py:495 rhodecode/controllers/pullrequests.py:72
 
#: rhodecode/controllers/summary.py:234 rhodecode/model/scm.py:543
 
#: rhodecode/controllers/files.py:495 rhodecode/controllers/pullrequests.py:73
 
#: rhodecode/controllers/summary.py:236 rhodecode/model/scm.py:543
 
msgid "Branches"
 
msgstr "分支"
 

	
 
#: rhodecode/controllers/files.py:496 rhodecode/controllers/pullrequests.py:76
 
#: rhodecode/controllers/summary.py:235 rhodecode/model/scm.py:554
 
#: rhodecode/controllers/files.py:496 rhodecode/controllers/pullrequests.py:77
 
#: rhodecode/controllers/summary.py:237 rhodecode/model/scm.py:554
 
msgid "Tags"
 
msgstr "标签"
 

	
 
#: rhodecode/controllers/forks.py:74 rhodecode/controllers/admin/repos.py:90
 
#, python-format
 
msgid ""
 
@@ -201,18 +200,18 @@ msgstr ""
 
" 版本库 %s 没有映射到数据库,可能是从文件系统创建或者重命名,请重启 "
 
"RhodeCode 以重新扫描版本库"
 

	
 
#: rhodecode/controllers/forks.py:168
 
#, python-format
 
msgid "forked %s repository as %s"
 
msgstr "版本库 %s 被分支到 %s"
 
msgstr "版本库 %s 被复刻到 %s"
 

	
 
#: rhodecode/controllers/forks.py:182
 
#, python-format
 
msgid "An error occurred during repository forking %s"
 
msgstr "在分支版本库 %s 的时候发生错误"
 
msgstr "在复刻版本库 %s 的时候发生错误"
 

	
 
#: rhodecode/controllers/journal.py:203 rhodecode/controllers/journal.py:240
 
msgid "public journal"
 
msgstr "公共日志"
 

	
 
#: rhodecode/controllers/journal.py:207 rhodecode/controllers/journal.py:244
 
@@ -230,33 +229,33 @@ msgstr "密码重置链接已经发送"
 

	
 
#: rhodecode/controllers/login.py:184
 
msgid ""
 
"Your password reset was successful, new password has been sent to your email"
 
msgstr "密码已经成功重置,新密码已经发送到你的邮箱"
 

	
 
#: rhodecode/controllers/pullrequests.py:74 rhodecode/model/scm.py:549
 
#: rhodecode/controllers/pullrequests.py:75 rhodecode/model/scm.py:549
 
msgid "Bookmarks"
 
msgstr "书签"
 

	
 
#: rhodecode/controllers/pullrequests.py:174
 
#: rhodecode/controllers/pullrequests.py:182
 
msgid "Pull request requires a title with min. 3 chars"
 
msgstr "拉取请求的标题至少 3 个字符"
 

	
 
#: rhodecode/controllers/pullrequests.py:176
 
#: rhodecode/controllers/pullrequests.py:184
 
msgid "error during creation of pull request"
 
msgstr "提交拉取请求时发生错误"
 

	
 
#: rhodecode/controllers/pullrequests.py:197
 
#: rhodecode/controllers/pullrequests.py:205
 
msgid "Successfully opened new pull request"
 
msgstr "成功提交拉取请求"
 

	
 
#: rhodecode/controllers/pullrequests.py:200
 
#: rhodecode/controllers/pullrequests.py:208
 
msgid "Error occurred during sending pull request"
 
msgstr "提交拉取请求时发生错误"
 

	
 
#: rhodecode/controllers/pullrequests.py:233
 
#: rhodecode/controllers/pullrequests.py:241
 
msgid "Successfully deleted pull request"
 
msgstr "成功删除拉取请求"
 

	
 
#: rhodecode/controllers/search.py:132
 
msgid "Invalid search query. Try quoting it."
 
msgstr "错误的搜索。请尝试用引号包含它。"
 
@@ -302,37 +301,34 @@ msgstr "已经删除版本库 %s"
 
#: rhodecode/controllers/admin/repos.py:330
 
#, python-format
 
msgid "An error occurred during deletion of %s"
 
msgstr "在删除 %s 的时候发生错误"
 

	
 
#: rhodecode/controllers/settings.py:179
 
#| msgid "unlock"
 
msgid "unlocked"
 
msgstr "未锁"
 

	
 
#: rhodecode/controllers/settings.py:182
 
#| msgid "unlock"
 
msgid "locked"
 
msgstr "已锁"
 

	
 
#: rhodecode/controllers/settings.py:184
 
#, python-format
 
#| msgid "forked %s repository as %s"
 
msgid "Repository has been %s"
 
msgstr "版本库已经 %s"
 

	
 
#: rhodecode/controllers/settings.py:188
 
#: rhodecode/controllers/admin/repos.py:422
 
msgid "An error occurred during unlocking"
 
msgstr "解锁时发生错误"
 

	
 
#: rhodecode/controllers/summary.py:138
 
#: rhodecode/controllers/summary.py:140
 
msgid "No data loaded yet"
 
msgstr "数据未加载"
 

	
 
#: rhodecode/controllers/summary.py:142
 
#: rhodecode/controllers/summary.py:144
 
#: rhodecode/templates/summary/summary.html:148
 
msgid "Statistics are disabled for this repository"
 
msgstr "该版本库统计功能已经禁用"
 

	
 
#: rhodecode/controllers/admin/ldap_settings.py:50
 
msgid "BASE"
 
@@ -456,13 +452,13 @@ msgstr "成功更新默认权限"
 
#: rhodecode/controllers/admin/permissions.py:130
 
msgid "error occurred during update of permissions"
 
msgstr "更新权限时发生错误"
 

	
 
#: rhodecode/controllers/admin/repos.py:123
 
msgid "--REMOVE FORK--"
 
msgstr "-- 移除分支 --"
 
msgstr "-- 移除复刻 --"
 

	
 
#: rhodecode/controllers/admin/repos.py:192
 
#, python-format
 
msgid "created repository %s from %s"
 
msgstr "新版本库 %s 基于 %s 建立。"
 

	
 
@@ -476,13 +472,13 @@ msgstr "建立版本库 %s"
 
msgid "error occurred during creation of repository %s"
 
msgstr "创建版本库时发生错误 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:319
 
#, python-format
 
msgid "Cannot delete %s it still contains attached forks"
 
msgstr "无法删除 %s 因为它还有其他分支版本库"
 
msgstr "无法删除 %s 因为它还有其他分复刻本库"
 

	
 
#: rhodecode/controllers/admin/repos.py:348
 
msgid "An error occurred during deletion of repository user"
 
msgstr "删除版本库用户时发生错误"
 

	
 
#: rhodecode/controllers/admin/repos.py:367
 
@@ -521,13 +517,13 @@ msgstr "从远程路径拉取时发生错误"
 
msgid "Nothing"
 
msgstr "无"
 

	
 
#: rhodecode/controllers/admin/repos.py:484
 
#, python-format
 
msgid "Marked repo %s as fork of %s"
 
msgstr "成功将版本库 %s 标记为从 %s 分支"
 
msgstr "成功将版本库 %s 标记为复刻自 %s"
 

	
 
#: rhodecode/controllers/admin/repos.py:488
 
msgid "An error occurred during this operation"
 
msgstr "在搜索操作中发生错误"
 

	
 
#: rhodecode/controllers/admin/repos_groups.py:117
 
@@ -671,17 +667,17 @@ msgstr "已授予用户‘创建版本库’的权限"
 
#: rhodecode/controllers/admin/users.py:271
 
msgid "Revoked 'repository create' permission to user"
 
msgstr "已撤销用户‘创建版本库’的权限"
 

	
 
#: rhodecode/controllers/admin/users.py:277
 
msgid "Granted 'repository fork' permission to user"
 
msgstr "成功授予了用户“分支版本库”权限"
 
msgstr "成功授予了用户“复刻版本库”权限"
 

	
 
#: rhodecode/controllers/admin/users.py:282
 
msgid "Revoked 'repository fork' permission to user"
 
msgstr "成功撤销用户“分支版本库”权限"
 
msgstr "成功撤销用户“复刻版本库”权限"
 

	
 
#: rhodecode/controllers/admin/users.py:288
 
#: rhodecode/controllers/admin/users_groups.py:255
 
msgid "An error occurred during permissions saving"
 
msgstr "保存权限时发生错误"
 

	
 
@@ -733,17 +729,17 @@ msgstr "已授予用户组‘创建版本库’的权限"
 
#: rhodecode/controllers/admin/users_groups.py:238
 
msgid "Revoked 'repository create' permission to users group"
 
msgstr "已撤销用户组‘创建版本库’的权限"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:244
 
msgid "Granted 'repository fork' permission to users group"
 
msgstr "已授予用户组‘分支版本库’的权限"
 
msgstr "已授予用户组‘复刻版本库’的权限"
 

	
 
#: rhodecode/controllers/admin/users_groups.py:249
 
msgid "Revoked 'repository fork' permission to users group"
 
msgstr "已撤销用户组‘分支版本库’的权限"
 
msgstr "已撤销用户组‘复刻版本库’的权限"
 

	
 
#: rhodecode/lib/auth.py:499
 
msgid "You need to be a registered user to perform this action"
 
msgstr "必须是注册用户才能进行此操作"
 

	
 
#: rhodecode/lib/auth.py:540
 
@@ -792,19 +788,19 @@ msgstr "还有"
 
#: rhodecode/lib/helpers.py:583
 
#, python-format
 
msgid "%s more"
 
msgstr "%s 个"
 

	
 
#: rhodecode/lib/helpers.py:584
 
#: rhodecode/templates/changelog/changelog.html:48
 
#: rhodecode/templates/changelog/changelog.html:49
 
msgid "revisions"
 
msgstr "修订"
 

	
 
#: rhodecode/lib/helpers.py:607
 
msgid "fork name "
 
msgstr "分支名称"
 
msgstr "复刻名称"
 

	
 
#: rhodecode/lib/helpers.py:621
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:4
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:12
 
#, python-format
 
msgid "Pull request #%s"
 
@@ -817,17 +813,17 @@ msgstr "[删除]版本库"
 
#: rhodecode/lib/helpers.py:629 rhodecode/lib/helpers.py:639
 
msgid "[created] repository"
 
msgstr "[创建]版本库"
 

	
 
#: rhodecode/lib/helpers.py:631
 
msgid "[created] repository as fork"
 
msgstr "[创建]分支版本库"
 
msgstr "[创建]复刻版本库"
 

	
 
#: rhodecode/lib/helpers.py:633 rhodecode/lib/helpers.py:641
 
msgid "[forked] repository"
 
msgstr "[分支]版本库"
 
msgstr "[复刻]版本库"
 

	
 
#: rhodecode/lib/helpers.py:635 rhodecode/lib/helpers.py:643
 
msgid "[updated] repository"
 
msgstr "[更新]版本库"
 

	
 
#: rhodecode/lib/helpers.py:637
 
@@ -1001,17 +997,17 @@ msgstr "禁用创建版本库"
 
#: rhodecode/model/db.py:1176
 
msgid "Repository creation enabled"
 
msgstr "允许创建版本库"
 

	
 
#: rhodecode/model/db.py:1177
 
msgid "Repository forking disabled"
 
msgstr "禁用分支 版本库"
 
msgstr "禁用复刻版本库"
 

	
 
#: rhodecode/model/db.py:1178
 
msgid "Repository forking enabled"
 
msgstr "允许分支版本库"
 
msgstr "允许复刻版本库"
 

	
 
#: rhodecode/model/db.py:1179
 
msgid "Register disabled"
 
msgstr "禁用注册"
 

	
 
#: rhodecode/model/db.py:1180
 
@@ -1214,16 +1210,15 @@ msgstr "无效的克隆地址"
 
#: rhodecode/model/validators.py:433
 
msgid "Invalid clone url, provide a valid clone http(s)/svn+http(s) url"
 
msgstr "无效的克隆地址,提供一个有效的克隆 http(s) 或 svn+http(s) 地址"
 

	
 
#: rhodecode/model/validators.py:458
 
msgid "Fork have to be the same type as parent"
 
msgstr "分支必须使用和父版本库相同的类型"
 
msgstr "复刻版本库必须和父版本库类型相同"
 

	
 
#: rhodecode/model/validators.py:473
 
#| msgid "You don't have permission to view this page"
 
msgid "You don't have permissions to create repository in this group"
 
msgstr "没有在这个组里面创建版本库的权限"
 

	
 
#: rhodecode/model/validators.py:498
 
msgid "This username or users group name is not valid"
 
msgstr "用户或用户组名称无效"
 
@@ -1314,14 +1309,14 @@ msgstr "版本库组"
 
#: rhodecode/templates/index_base.html:166
 
#: rhodecode/templates/admin/repos/repo_add_base.html:9
 
#: rhodecode/templates/admin/repos/repo_edit.html:32
 
#: rhodecode/templates/admin/repos/repos.html:70
 
#: rhodecode/templates/admin/users/user_edit.html:192
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:59
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:157
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:193
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:181
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:217
 
#: rhodecode/templates/admin/users/user_edit_my_account_repos.html:6
 
#: rhodecode/templates/bookmarks/bookmarks.html:36
 
#: rhodecode/templates/bookmarks/bookmarks_data.html:6
 
#: rhodecode/templates/branches/branches.html:51
 
#: rhodecode/templates/files/files_browser.html:47
 
#: rhodecode/templates/journal/journal.html:59
 
@@ -1338,13 +1333,13 @@ msgstr "名称"
 
#: rhodecode/templates/index_base.html:72
 
msgid "Last change"
 
msgstr "最后修改"
 

	
 
#: rhodecode/templates/index_base.html:73
 
#: rhodecode/templates/index_base.html:171
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:159
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/journal/journal.html:188
 
msgid "Tip"
 
msgstr "Tip"
 

	
 
#: rhodecode/templates/index_base.html:74
 
#: rhodecode/templates/index_base.html:173
 
@@ -1379,25 +1374,25 @@ msgstr "订阅 %s 的 Atom"
 
msgid "Group Name"
 
msgstr "组名"
 

	
 
#: rhodecode/templates/index_base.html:158
 
#: rhodecode/templates/index_base.html:198
 
#: rhodecode/templates/admin/repos/repos.html:94
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:179
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:203
 
#: rhodecode/templates/admin/users/users.html:107
 
#: rhodecode/templates/bookmarks/bookmarks.html:60
 
#: rhodecode/templates/branches/branches.html:77
 
#: rhodecode/templates/journal/journal.html:211
 
#: rhodecode/templates/tags/tags.html:60
 
msgid "Click to sort ascending"
 
msgstr "点击以升序排列"
 

	
 
#: rhodecode/templates/index_base.html:159
 
#: rhodecode/templates/index_base.html:199
 
#: rhodecode/templates/admin/repos/repos.html:95
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:180
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:204
 
#: rhodecode/templates/admin/users/users.html:108
 
#: rhodecode/templates/bookmarks/bookmarks.html:61
 
#: rhodecode/templates/branches/branches.html:78
 
#: rhodecode/templates/journal/journal.html:212
 
#: rhodecode/templates/tags/tags.html:61
 
msgid "Click to sort descending"
 
@@ -1406,35 +1401,35 @@ msgstr "点击以降序排列"
 
#: rhodecode/templates/index_base.html:169
 
msgid "Last Change"
 
msgstr "最后修改"
 

	
 
#: rhodecode/templates/index_base.html:200
 
#: rhodecode/templates/admin/repos/repos.html:96
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:181
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:205
 
#: rhodecode/templates/admin/users/users.html:109
 
#: rhodecode/templates/bookmarks/bookmarks.html:62
 
#: rhodecode/templates/branches/branches.html:79
 
#: rhodecode/templates/journal/journal.html:213
 
#: rhodecode/templates/tags/tags.html:62
 
msgid "No records found."
 
msgstr "没有找到记录"
 

	
 
#: rhodecode/templates/index_base.html:201
 
#: rhodecode/templates/admin/repos/repos.html:97
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:182
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:206
 
#: rhodecode/templates/admin/users/users.html:110
 
#: rhodecode/templates/bookmarks/bookmarks.html:63
 
#: rhodecode/templates/branches/branches.html:80
 
#: rhodecode/templates/journal/journal.html:214
 
#: rhodecode/templates/tags/tags.html:63
 
msgid "Data error."
 
msgstr "数据错误"
 

	
 
#: rhodecode/templates/index_base.html:202
 
#: rhodecode/templates/admin/repos/repos.html:98
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:183
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:207
 
#: rhodecode/templates/admin/users/users.html:111
 
#: rhodecode/templates/bookmarks/bookmarks.html:64
 
#: rhodecode/templates/branches/branches.html:81
 
#: rhodecode/templates/journal/journal.html:215
 
#: rhodecode/templates/tags/tags.html:64
 
msgid "Loading..."
 
@@ -1780,13 +1775,13 @@ msgstr "注册"
 
#: rhodecode/templates/admin/permissions/permissions.html:63
 
msgid "Repository creation"
 
msgstr "建立版本库"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:71
 
msgid "Repository forking"
 
msgstr "版本库分支"
 
msgstr "版本库复刻"
 

	
 
#: rhodecode/templates/admin/permissions/permissions.html:78
 
#: rhodecode/templates/admin/repos/repo_edit.html:255
 
msgid "set"
 
msgstr "设置"
 

	
 
@@ -1941,13 +1936,13 @@ msgstr "修改这个版本库的所有者"
 
#: rhodecode/templates/admin/users/user_edit.html:175
 
#: rhodecode/templates/admin/users/user_edit.html:278
 
#: rhodecode/templates/admin/users/user_edit_my_account_form.html:80
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:136
 
#: rhodecode/templates/files/files_add.html:82
 
#: rhodecode/templates/files/files_edit.html:68
 
#: rhodecode/templates/pullrequests/pullrequest.html:124
 
#: rhodecode/templates/pullrequests/pullrequest.html:122
 
#: rhodecode/templates/settings/repo_settings.html:94
 
msgid "Reset"
 
msgstr "重置"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:152
 
msgid "Administration"
 
@@ -2056,17 +2051,17 @@ msgstr "版本库未锁定"
 
msgid ""
 
"Force locking on repository. Works only when anonymous access is disabled"
 
msgstr "强制锁定版本库。只有在禁止匿名访问时候才有效"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:250
 
msgid "Set as fork of"
 
msgstr "设置 fork 自"
 
msgstr "设置复刻自"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:259
 
msgid "Manually set this repository as a fork of another from the list"
 
msgstr "从列表中手动设置这个版本库 fork 自另一版本库"
 
msgstr "从列表中手动设置这个版本库复刻自另一版本库"
 

	
 
#: rhodecode/templates/admin/repos/repo_edit.html:265
 
#: rhodecode/templates/changeset/changeset_file_comment.html:26
 
msgid "Delete"
 
msgstr "删除"
 

	
 
@@ -2216,13 +2211,13 @@ msgid "Group parent"
 
msgstr "上级组"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_add.html:58
 
#: rhodecode/templates/admin/users/user_add.html:94
 
#: rhodecode/templates/admin/users_groups/users_group_add.html:49
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:90
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:113
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:117
 
msgid "save"
 
msgstr "保存"
 

	
 
#: rhodecode/templates/admin/repos_groups/repos_groups_edit.html:5
 
msgid "Edit repos group"
 
msgstr "编辑版本库组"
 
@@ -2571,23 +2566,23 @@ msgstr "勾选以从 %s 继承权限设置。 勾选后下面的选项将不起作用"
 
msgid "Create repositories"
 
msgstr "创建版本库"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:166
 
#: rhodecode/templates/admin/users_groups/users_group_edit.html:127
 
msgid "Fork repositories"
 
msgstr "分支版本库"
 
msgstr "复刻版本库"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:186
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:22
 
#: rhodecode/templates/admin/users/user_edit_my_account_pullrequests.html:39
 
msgid "Nothing here yet"
 
msgstr "无条目"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:193
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:60
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:194
 
#: rhodecode/templates/admin/users/user_edit_my_account.html:218
 
msgid "Permission"
 
msgstr "权限"
 

	
 
#: rhodecode/templates/admin/users/user_edit.html:194
 
msgid "Edit Permission"
 
msgstr "编辑权限"
 
@@ -2880,33 +2875,31 @@ msgstr "浏览"
 
#: rhodecode/templates/base/base.html:199
 
msgid "Options"
 
msgstr "选项"
 

	
 
#: rhodecode/templates/base/base.html:204
 
#: rhodecode/templates/base/base.html:206
 
#| msgid "Repository creation"
 
msgid "repository settings"
 
msgstr "版本库设置"
 

	
 
#: rhodecode/templates/base/base.html:210
 
#: rhodecode/templates/data_table/_dt_elements.html:80
 
#: rhodecode/templates/forks/fork.html:13
 
msgid "fork"
 
msgstr "分支"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/base/base.html:212
 
#: rhodecode/templates/changelog/changelog.html:40
 
#: rhodecode/templates/changelog/changelog.html:41
 
msgid "Open new pull request"
 
msgstr "新建拉取请求"
 

	
 
#: rhodecode/templates/base/base.html:214
 
msgid "search"
 
msgstr "搜索"
 

	
 
#: rhodecode/templates/base/base.html:220
 
#| msgid "unlock"
 
msgid "lock"
 
msgstr "锁定"
 

	
 
#: rhodecode/templates/base/base.html:231
 
msgid "repositories groups"
 
msgstr "版本库组"
 
@@ -2928,13 +2921,13 @@ msgstr "设置"
 
msgid "Followers"
 
msgstr "关注者"
 

	
 
#: rhodecode/templates/base/base.html:255
 
#: rhodecode/templates/base/base.html:257
 
msgid "Forks"
 
msgstr "分支"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/base/base.html:336
 
#: rhodecode/templates/base/base.html:338
 
#: rhodecode/templates/base/base.html:340
 
#: rhodecode/templates/search/search.html:52
 
msgid "Search"
 
@@ -3025,24 +3018,24 @@ msgstr "%s 修订记录"
 
#: rhodecode/templates/changelog/changelog.html:15
 
#, python-format
 
msgid "showing %d out of %d revision"
 
msgid_plural "showing %d out of %d revisions"
 
msgstr[0] "显示 %2d 中的 %1d 个版本"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
#: rhodecode/templates/changelog/changelog.html:38
 
#: rhodecode/templates/forks/forks_data.html:19
 
#, python-format
 
msgid "compare fork with %s"
 
msgstr "与 %s 比较"
 

	
 
#: rhodecode/templates/changelog/changelog.html:37
 
msgstr "比较复刻和%s"
 

	
 
#: rhodecode/templates/changelog/changelog.html:38
 
#: rhodecode/templates/forks/forks_data.html:21
 
msgid "Compare fork"
 
msgstr "比较分支"
 

	
 
#: rhodecode/templates/changelog/changelog.html:46
 
msgstr "比较复刻"
 

	
 
#: rhodecode/templates/changelog/changelog.html:47
 
msgid "Show"
 
msgstr "显示"
 

	
 
#: rhodecode/templates/changelog/changelog.html:72
 
#: rhodecode/templates/summary/summary.html:364
 
msgid "show more"
 
@@ -3057,12 +3050,13 @@ msgstr "影响的文件数,点击显示详细信息"
 
#: rhodecode/templates/changeset/changeset_file_comment.html:20
 
#: rhodecode/templates/changeset/changeset_range.html:46
 
msgid "Changeset status"
 
msgstr "修订集状态"
 

	
 
#: rhodecode/templates/changelog/changelog.html:92
 
#: rhodecode/templates/shortlog/shortlog_data.html:20
 
msgid "Click to open associated pull request"
 
msgstr "点击建立相关的拉取请求"
 

	
 
#: rhodecode/templates/changelog/changelog.html:102
 
#: rhodecode/templates/changeset/changeset.html:78
 
msgid "Parent"
 
@@ -3230,13 +3224,13 @@ msgstr "%s 修订集"
 
#: rhodecode/templates/compare/compare_diff.html:29
 
msgid "Compare View"
 
msgstr "比较显示"
 

	
 
#: rhodecode/templates/changeset/changeset_range.html:54
 
#: rhodecode/templates/compare/compare_diff.html:41
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:69
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:73
 
msgid "Files affected"
 
msgstr "影响文件"
 

	
 
#: rhodecode/templates/changeset/diff_block.html:19
 
msgid "diff"
 
msgstr "差别"
 
@@ -3254,13 +3248,13 @@ msgid "Outgoing changesets"
 
msgstr "传出修订集"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:39
 
#: rhodecode/templates/data_table/_dt_elements.html:41
 
#: rhodecode/templates/data_table/_dt_elements.html:43
 
msgid "Fork"
 
msgstr "分支"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:60
 
#: rhodecode/templates/journal/journal.html:126
 
#: rhodecode/templates/summary/summary.html:68
 
msgid "Mercurial repository"
 
msgstr "Mercurial 版本库"
 
@@ -3278,13 +3272,13 @@ msgid "public repository"
 
msgstr "公共版本库"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:80
 
#: rhodecode/templates/summary/summary.html:87
 
#: rhodecode/templates/summary/summary.html:88
 
msgid "Fork of"
 
msgstr "分支自"
 
msgstr "复刻自"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:92
 
msgid "No changesets yet"
 
msgstr "无修订"
 

	
 
#: rhodecode/templates/data_table/_dt_elements.html:104
 
@@ -3318,12 +3312,17 @@ msgstr "%s 文件"
 

	
 
#: rhodecode/templates/files/files.html:12
 
#: rhodecode/templates/summary/summary.html:340
 
msgid "files"
 
msgstr "文件"
 

	
 
#: rhodecode/templates/files/files.html:92
 
#: rhodecode/templates/files/files_source.html:124
 
msgid "Selection link"
 
msgstr "选择链接"
 

	
 
#: rhodecode/templates/files/files_add.html:4
 
#: rhodecode/templates/files/files_edit.html:4
 
#, python-format
 
msgid "%s Edit file"
 
msgstr "%s 编辑文件"
 

	
 
@@ -3392,13 +3391,13 @@ msgstr "沿着当前分支"
 

	
 
#: rhodecode/templates/files/files_browser.html:27
 
msgid "search file list"
 
msgstr "搜索文件列表"
 

	
 
#: rhodecode/templates/files/files_browser.html:31
 
#: rhodecode/templates/shortlog/shortlog_data.html:65
 
#: rhodecode/templates/shortlog/shortlog_data.html:80
 
msgid "add new file"
 
msgstr "新建文件"
 

	
 
#: rhodecode/templates/files/files_browser.html:35
 
msgid "Loading file list..."
 
msgstr "加载文件列表..."
 
@@ -3479,16 +3478,12 @@ msgid "Binary file (%s)"
 
msgstr "二进制文件(%s)"
 

	
 
#: rhodecode/templates/files/files_source.html:68
 
msgid "File is too big to display"
 
msgstr "文件过大,不能显示"
 

	
 
#: rhodecode/templates/files/files_source.html:124
 
msgid "Selection link"
 
msgstr "选择链接"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:5
 
msgid "annotation"
 
msgstr "显示注释"
 

	
 
#: rhodecode/templates/files/files_ypjax.html:15
 
msgid "Go back"
 
@@ -3511,69 +3506,69 @@ msgstr "关注者"
 
msgid "Started following -"
 
msgstr "开始关注 - "
 

	
 
#: rhodecode/templates/forks/fork.html:5
 
#, python-format
 
msgid "%s Fork"
 
msgstr "%s 的分支"
 
msgstr "%s的复刻"
 

	
 
#: rhodecode/templates/forks/fork.html:31
 
msgid "Fork name"
 
msgstr "分支名"
 
msgstr "复刻名称"
 

	
 
#: rhodecode/templates/forks/fork.html:68
 
msgid "Private"
 
msgstr "私有"
 

	
 
#: rhodecode/templates/forks/fork.html:77
 
msgid "Copy permissions"
 
msgstr "拷贝权限"
 

	
 
#: rhodecode/templates/forks/fork.html:81
 
msgid "Copy permissions from forked repository"
 
msgstr "从被分支版本库拷贝权限"
 
msgstr "从被复刻版本库拷贝权限"
 

	
 
#: rhodecode/templates/forks/fork.html:86
 
msgid "Update after clone"
 
msgstr "克隆后更新"
 

	
 
#: rhodecode/templates/forks/fork.html:90
 
msgid "Checkout source after making a clone"
 
msgstr "完成克隆后检出源代码"
 

	
 
#: rhodecode/templates/forks/fork.html:94
 
msgid "fork this repository"
 
msgstr "对该版本库建立分支"
 
msgstr "复刻该版本库"
 

	
 
#: rhodecode/templates/forks/forks.html:5
 
#, python-format
 
msgid "%s Forks"
 
msgstr "%s 的分支"
 
msgstr "%s个复刻"
 

	
 
#: rhodecode/templates/forks/forks.html:13
 
msgid "forks"
 
msgstr "分支"
 
msgstr "复刻"
 

	
 
#: rhodecode/templates/forks/forks_data.html:17
 
msgid "forked"
 
msgstr "已有分支"
 
msgstr "已有复刻"
 

	
 
#: rhodecode/templates/forks/forks_data.html:38
 
msgid "There are no forks yet"
 
msgstr "无分支"
 
msgstr "无复刻"
 

	
 
#: rhodecode/templates/journal/journal.html:13
 
msgid "ATOM journal feed"
 
msgstr "订阅日志 ATOM"
 

	
 
#: rhodecode/templates/journal/journal.html:14
 
msgid "RSS journal feed"
 
msgstr "订阅日志 RSS"
 

	
 
#: rhodecode/templates/journal/journal.html:24
 
#: rhodecode/templates/pullrequests/pullrequest.html:27
 
#: rhodecode/templates/pullrequests/pullrequest.html:53
 
msgid "Refresh"
 
msgstr "刷新"
 

	
 
#: rhodecode/templates/journal/journal.html:27
 
#: rhodecode/templates/journal/public_journal.html:24
 
msgid "RSS feed"
 
@@ -3622,50 +3617,50 @@ msgstr "公共日志"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:4
 
#: rhodecode/templates/pullrequests/pullrequest.html:12
 
msgid "New pull request"
 
msgstr "新建拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:28
 
#: rhodecode/templates/pullrequests/pullrequest.html:52
 
msgid "refresh overview"
 
msgstr "刷新概览"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:66
 
#: rhodecode/templates/pullrequests/pullrequest.html:64
 
msgid "Detailed compare view"
 
msgstr "详细比较显示"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:70
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:82
 
#: rhodecode/templates/pullrequests/pullrequest.html:68
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:86
 
msgid "Pull request reviewers"
 
msgstr "拉取请求检视人员"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:79
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:94
 
#: rhodecode/templates/pullrequests/pullrequest.html:77
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:98
 
msgid "owner"
 
msgstr "所有者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:91
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:109
 
#: rhodecode/templates/pullrequests/pullrequest.html:89
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:113
 
msgid "Add reviewer to this pull request."
 
msgstr "为这个拉取请求增加检视人员"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:97
 
#: rhodecode/templates/pullrequests/pullrequest.html:95
 
msgid "Create new pull request"
 
msgstr "创建新的拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:106
 
#: rhodecode/templates/pullrequests/pullrequest.html:104
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:25
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:33
 
msgid "Title"
 
msgstr "标题"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:115
 
#: rhodecode/templates/pullrequests/pullrequest.html:113
 
msgid "description"
 
msgstr "描述"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest.html:123
 
#: rhodecode/templates/pullrequests/pullrequest.html:121
 
msgid "Send pull request"
 
msgstr "发送拉取请求"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:23
 
#, python-format
 
msgid "Closed %s"
 
@@ -3685,27 +3680,32 @@ msgid "Pull request status"
 
msgstr "拉取请求状态"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:44
 
msgid "Still not reviewed by"
 
msgstr "还未检视的检视人员"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:47
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:48
 
#, python-format
 
msgid "%d reviewer"
 
msgid_plural "%d reviewers"
 
msgstr[0] "%d 个检视者"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:54
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:50
 
#| msgid "Pull request reviewers"
 
msgid "pull request was reviewed by all reviewers"
 
msgstr "拉取请求已经被所有检视人员检视"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:58
 
msgid "Created on"
 
msgstr "创建于 %s"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:61
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:65
 
msgid "Compare view"
 
msgstr "比较显示"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:65
 
#: rhodecode/templates/pullrequests/pullrequest_show.html:69
 
msgid "Incoming changesets"
 
msgstr "传入修订集"
 

	
 
#: rhodecode/templates/pullrequests/pullrequest_show_all.html:4
 
msgid "all pull requests"
 
msgstr "所有拉取请求"
 
@@ -3780,25 +3780,25 @@ msgid "shortlog"
 
msgstr "简短日志"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:7
 
msgid "age"
 
msgstr "时间"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:18
 
#: rhodecode/templates/shortlog/shortlog_data.html:33
 
msgid "No commit message"
 
msgstr "没有提交信息"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:62
 
#: rhodecode/templates/shortlog/shortlog_data.html:77
 
msgid "Add or upload files directly via RhodeCode"
 
msgstr "通过 RhodeCode 直接添加或者上传文件"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:71
 
#: rhodecode/templates/shortlog/shortlog_data.html:86
 
msgid "Push new repo"
 
msgstr "Push 新版本库"
 

	
 
#: rhodecode/templates/shortlog/shortlog_data.html:79
 
#: rhodecode/templates/shortlog/shortlog_data.html:94
 
msgid "Existing repository?"
 
msgstr "现有版本库?"
 

	
 
#: rhodecode/templates/summary/summary.html:4
 
#, python-format
 
msgid "%s Summary"
 
@@ -3949,9 +3949,6 @@ msgid "file removed"
 
msgstr "文件已删除"
 

	
 
#: rhodecode/templates/tags/tags.html:5
 
#, python-format
 
msgid "%s Tags"
 
msgstr "%s 标签"
 

	
 
#~ msgid "Groups"
 
#~ msgstr "组"
rhodecode/lib/diffs.py
Show inline comments
 
@@ -25,12 +25,13 @@
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import re
 
import difflib
 
import markupsafe
 
import logging
 

	
 
from itertools import tee, imap
 

	
 
from mercurial import patch
 
from mercurial.mdiff import diffopts
 
from mercurial.bundlerepo import bundlerepository
 
@@ -43,12 +44,14 @@ from rhodecode.lib.vcs.exceptions import
 
from rhodecode.lib.vcs.nodes import FileNode, SubModuleNode
 
from rhodecode.lib.vcs.backends.base import EmptyChangeset
 
from rhodecode.lib.helpers import escape
 
from rhodecode.lib.utils import make_ui
 
from rhodecode.lib.utils2 import safe_unicode
 

	
 
log = logging.getLogger(__name__)
 

	
 

	
 
def wrap_to_table(str_):
 
    return '''<table class="code-difftable">
 
                <tr class="line no-comment">
 
                <td class="lineno new"></td>
 
                <td class="code no-comment"><pre>%s</pre></td>
 
@@ -571,13 +574,14 @@ class InMemoryBundleRepo(bundlerepositor
 
        self.bundle = bundlestream
 

	
 
        # dict with the mapping 'filename' -> position in the bundle
 
        self.bundlefilespos = {}
 

	
 

	
 
def differ(org_repo, org_ref, other_repo, other_ref, discovery_data=None):
 
def differ(org_repo, org_ref, other_repo, other_ref, discovery_data=None,
 
           bundle_compare=False):
 
    """
 
    General differ between branches, bookmarks or separate but releated
 
    repositories
 

	
 
    :param org_repo:
 
    :type org_repo:
 
@@ -595,13 +599,13 @@ def differ(org_repo, org_ref, other_repo
 
    org_repo = org_repo.scm_instance._repo
 
    other_repo = other_repo.scm_instance._repo
 
    opts = diffopts(git=True, ignorews=ignore_whitespace, context=context)
 
    org_ref = org_ref[1]
 
    other_ref = other_ref[1]
 

	
 
    if org_repo != other_repo:
 
    if org_repo != other_repo and bundle_compare:
 

	
 
        common, incoming, rheads = discovery_data
 
        other_repo_peer = localrepo.locallegacypeer(other_repo.local())
 
        # create a bundle (uncompressed if other repo is not local)
 
        if other_repo_peer.capable('getbundle') and incoming:
 
            # disable repo hooks here since it's just bundle !
 
@@ -630,8 +634,10 @@ def differ(org_repo, org_ref, other_repo
 

	
 
        return ''.join(patch.diff(bundlerepo or org_repo,
 
                                  node1=org_repo[org_ref].node(),
 
                                  node2=other_repo[other_ref].node(),
 
                                  opts=opts))
 
    else:
 
        log.debug('running diff between %s@%s and %s@%s'
 
                  % (org_repo, org_ref, other_repo, other_ref))
 
        return ''.join(patch.diff(org_repo, node1=org_ref, node2=other_ref,
 
                                  opts=opts))
rhodecode/lib/utils.py
Show inline comments
 
@@ -669,6 +669,41 @@ class BasePasterCommand(Command):
 
        """
 
        from pylons import config as pylonsconfig
 

	
 
        self.path_to_ini_file = os.path.realpath(conf)
 
        conf = paste.deploy.appconfig('config:' + self.path_to_ini_file)
 
        pylonsconfig.init_app(conf.global_conf, conf.local_conf)
 

	
 

	
 
def check_git_version():
 
    """
 
    Checks what version of git is installed in system, and issues a warning
 
    if it's to old for RhodeCode to properly work.
 
    """
 
    import subprocess
 
    from distutils.version import StrictVersion
 
    from rhodecode import BACKENDS
 

	
 
    p = subprocess.Popen('git --version', shell=True,
 
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
    stdout, stderr = p.communicate()
 
    ver = (stdout.split(' ')[-1] or '').strip() or '0.0.0'
 
    try:
 
        _ver = StrictVersion(ver)
 
    except:
 
        _ver = StrictVersion('0.0.0')
 
        stderr = traceback.format_exc()
 

	
 
    req_ver = '1.7.4'
 
    to_old_git = False
 
    if  _ver <= StrictVersion(req_ver):
 
        to_old_git = True
 

	
 
    if 'git' in BACKENDS:
 
        log.debug('GIT version detected: %s' % stdout)
 
        if stderr:
 
            log.warning('Unable to detect git version org error was:%r' % stderr)
 
        elif to_old_git:
 
            log.warning('RhodeCode detected git version %s, which is to old '
 
                        'for the system to function properly make sure '
 
                        'it is at least in version %s' % (ver, req_ver))
 
    return _ver
 
\ No newline at end of file
rhodecode/lib/utils2.py
Show inline comments
 
@@ -494,6 +494,14 @@ def fix_PATH(os_=None):
 
    else:
 
        os = os_
 

	
 
    cur_path = os.path.split(sys.executable)[0]
 
    if not os.environ['PATH'].startswith(cur_path):
 
        os.environ['PATH'] = '%s:%s' % (cur_path, os.environ['PATH'])
 

	
 

	
 
def obfuscate_url_pw(engine):
 
    from sqlalchemy.engine import url
 
    url = url.make_url(engine)
 
    if url.password:
 
        url.password = 'XXXXX'
 
    return str(url)
 
\ No newline at end of file
rhodecode/lib/vcs/backends/git/inmemory.py
Show inline comments
 
@@ -60,16 +60,22 @@ class GitInMemoryChangeset(BaseInMemoryC
 
                    dirnames.insert(0, curdir)
 
                    break
 
                else:
 
                    # If found, updates parent
 
                    parent = self.repository._repo[dir_id]
 
                    ancestors.append((curdir, parent))
 
            # Now parent is deepest exising tree and we need to create subtrees
 
            # Now parent is deepest existing tree and we need to create subtrees
 
            # for dirnames (in reverse order) [this only applies for nodes from added]
 
            new_trees = []
 
            blob = objects.Blob.from_string(node.content.encode(ENCODING))
 

	
 
            if not node.is_binary:
 
                content = node.content.encode(ENCODING)
 
            else:
 
                content = node.content
 
            blob = objects.Blob.from_string(content)
 

	
 
            node_path = node.name.encode(ENCODING)
 
            if dirnames:
 
                # If there are trees which should be created we need to build
 
                # them now (in reverse order)
 
                reversed_dirnames = list(reversed(dirnames))
 
                curtree = objects.Tree()
rhodecode/model/__init__.py
Show inline comments
 
@@ -40,26 +40,27 @@
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import logging
 
from rhodecode.model import meta
 
from rhodecode.lib.utils2 import safe_str
 
from rhodecode.lib.utils2 import safe_str, obfuscate_url_pw
 

	
 
log = logging.getLogger(__name__)
 

	
 

	
 
def init_model(engine):
 
    """
 
    Initializes db session, bind the engine with the metadata,
 
    Call this before using any of the tables or classes in the model,
 
    preferably once in application start
 

	
 
    :param engine: engine to bind to
 
    """
 
    log.info("initializing db for %s" % engine)
 
    engine_str = obfuscate_url_pw(str(engine.url))
 
    log.info("initializing db for %s" % engine_str)
 
    meta.Base.metadata.bind = engine
 

	
 

	
 
class BaseModel(object):
 
    """
 
    Base Model for all RhodeCode models, it adds sql alchemy session
rhodecode/model/forms.py
Show inline comments
 
@@ -324,23 +324,23 @@ def UserExtraEmailForm():
 
    class _UserExtraEmailForm(formencode.Schema):
 
        email = All(v.UniqSystemEmail(), v.Email)
 

	
 
    return _UserExtraEmailForm
 

	
 

	
 
def PullRequestForm():
 
def PullRequestForm(repo_id):
 
    class _PullRequestForm(formencode.Schema):
 
        allow_extra_fields = True
 
        filter_extra_fields = True
 

	
 
        user = v.UnicodeString(strip=True, required=True)
 
        org_repo = v.UnicodeString(strip=True, required=True)
 
        org_ref = v.UnicodeString(strip=True, required=True)
 
        other_repo = v.UnicodeString(strip=True, required=True)
 
        other_ref = v.UnicodeString(strip=True, required=True)
 
        revisions = All(v.NotReviewedRevisions()(), v.UniqueList(not_empty=True))
 
        revisions = All(v.NotReviewedRevisions(repo_id)(), v.UniqueList(not_empty=True))
 
        review_members = v.UniqueList(not_empty=True)
 

	
 
        pullrequest_title = v.UnicodeString(strip=True, required=True, min=3)
 
        pullrequest_desc = v.UnicodeString(strip=True, required=False)
 

	
 
    return _PullRequestForm
rhodecode/model/validators.py
Show inline comments
 
@@ -663,25 +663,28 @@ def AttrLoginValidator():
 
                    error_dict=dict(ldap_attr_login=msg)
 
                )
 

	
 
    return _validator
 

	
 

	
 
def NotReviewedRevisions():
 
def NotReviewedRevisions(repo_id):
 
    class _validator(formencode.validators.FancyValidator):
 
        messages = {
 
            'rev_already_reviewed':
 
                  _(u'Revisions %(revs)s are already part of pull request '
 
                    'or have set status')
 
        }
 

	
 
        def validate_python(self, value, state):
 
            # check revisions if they are not reviewed, or a part of another
 
            # pull request
 
            statuses = ChangesetStatus.query()\
 
                .filter(ChangesetStatus.revision.in_(value)).all()
 
                .filter(ChangesetStatus.revision.in_(value))\
 
                .filter(ChangesetStatus.repo_id == repo_id)\
 
                .all()
 

	
 
            errors = []
 
            for cs in statuses:
 
                if cs.pull_request_id:
 
                    errors.append(['pull_req', cs.revision[:12]])
 
                elif cs.status:
 
                    errors.append(['status', cs.revision[:12]])
rhodecode/public/css/style.css
Show inline comments
 
@@ -2541,14 +2541,14 @@ h3.files_location {
 
	border-bottom: 1px solid #DDD;
 
	padding: 10px;
 
	height: 25px;
 
}
 
 
#graph_content #rev_range_container {
 
	padding: 7px 20px;
 
	float: left;
 
	margin: 0px 0px 0px 3px;
 
}
 
 
#graph_content .container {
 
	border-bottom: 1px solid #DDD;
 
	height: 56px;
 
	overflow: hidden;
rhodecode/public/js/rhodecode.js
Show inline comments
 
@@ -670,16 +670,13 @@ var removeReviewer = function(reviewer_i
 
	if (el.parentNode !== undefined){
 
		el.parentNode.removeChild(el);
 
	}
 
}
 

	
 
var fileBrowserListeners = function(current_url, node_list_url, url_base){
 
	
 
	var current_url_branch = +"?branch=__BRANCH__";
 
	var url = url_base;
 
	var node_url = node_list_url;	
 

	
 
	YUE.on('stay_at_branch','click',function(e){
 
	    if(e.target.checked){
 
	        var uri = current_url_branch;
 
	        uri = uri.replace('__BRANCH__',e.target.value);
 
	        window.location = uri;
 
@@ -697,13 +694,13 @@ var fileBrowserListeners = function(curr
 

	
 
	F.initFilter = function(){
 
	  YUD.setStyle('node_filter_box_loading','display','');
 
	  YUD.setStyle('search_activate_id','display','none');
 
	  YUD.setStyle('add_node_id','display','none');
 
	  YUC.initHeader('X-PARTIAL-XHR',true);
 
	  YUC.asyncRequest('GET',url,{
 
	  YUC.asyncRequest('GET', node_list_url, {
 
	      success:function(o){
 
	        nodes = JSON.parse(o.responseText).nodes;
 
	        YUD.setStyle('node_filter_box_loading','display','none');
 
	        YUD.setStyle('node_filter_box','display','');
 
	        n_filter.focus();
 
			if(YUD.hasClass(n_filter,'init')){
 
@@ -740,14 +737,14 @@ var fileBrowserListeners = function(curr
 
	                    
 
	                    var n = nodes[i].name;
 
	                    var t = nodes[i].type;
 
	                    var n_hl = n.substring(0,pos)
 
	                      +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
 
	                      +n.substring(pos+query.length)
 
	                    node_url = node_url.replace('__FPATH__',n);
 
	                    match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,node_url,n_hl));
 
	                    var new_url = url_base.replace('__FPATH__',n);
 
	                    match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,new_url,n_hl));
 
	                }
 
	                if(match.length >= matches_max){
 
	                    match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['search truncated']));
 
	                }
 
	            }                       
 
	        }
rhodecode/templates/admin/users/user_edit_my_account.html
Show inline comments
 
@@ -35,13 +35,13 @@
 
             <span><a id="show_perms" class="link-white current" href="#perms">${_('My permissions')}</a> </span>
 
           </li>
 
           <li>
 
             <span><a id="show_my" class="link-white" href="#my">${_('My repos')}</a> </span>
 
           </li>
 
           <li>
 
             <span><a id="show_pullrequests" class="link-white" href="#perms">${_('My pull requests')}</a> </span>
 
             <span><a id="show_pullrequests" class="link-white" href="#pullrequests">${_('My pull requests')}</a> </span>
 
           </li>
 
           %if h.HasPermissionAny('hg.admin','hg.create.repository')():
 
             <li>
 
               <span>${h.link_to(_('Add repo'),h.url('admin_settings_create_repository'))}</span>
 
             </li>
 
           %endif
 
@@ -106,54 +106,78 @@ var filter_activate = function(){
 
    var nodes = YUQ('#my tr td a.repo_name');
 
    var func = function(node){
 
        return node.parentNode.parentNode.parentNode.parentNode;
 
    }
 
    q_filter('q_filter',YUQ('#my tr td a.repo_name'),func);
 
}
 
YUE.on('show_perms','click',function(e){
 
	YUD.addClass('show_perms', 'current');
 
	YUD.removeClass('show_my','current');
 
	YUD.removeClass('show_pullrequests','current');
 

	
 
var show_perms = function(e){
 
    YUD.addClass('show_perms', 'current');
 
    YUD.removeClass('show_my','current');
 
    YUD.removeClass('show_pullrequests','current');
 

	
 
    YUD.setStyle('my','display','none');
 
    YUD.setStyle('pullrequests','display','none');
 
    YUD.setStyle('perms','display','');
 
    YUD.setStyle('q_filter','display','none');
 
    YUE.preventDefault(e);
 
    YUD.setStyle('q_filter','display','none');	
 
}
 
YUE.on('show_perms','click',function(e){
 
    show_perms();
 
})
 
YUE.on('show_my','click',function(e){
 

	
 
var show_my = function(e){
 
    YUD.addClass('show_my', 'current');
 
    YUD.removeClass('show_perms','current');
 
    YUD.removeClass('show_pullrequests','current');
 

	
 
    YUD.setStyle('perms','display','none');
 
    YUD.setStyle('pullrequests','display','none');
 
    YUD.setStyle('my','display','');
 
    YUD.setStyle('q_filter','display','');
 

	
 
    YUE.preventDefault(e);
 
    
 
    var url = "${h.url('admin_settings_my_repos')}";
 
    ypjax(url, 'my', function(){
 
    	table_sort();
 
    	filter_activate();
 
    });
 
        table_sort();
 
        filter_activate();
 
    });	
 
}
 
YUE.on('show_my','click',function(e){
 
	show_my(e);
 
})
 
YUE.on('show_pullrequests','click',function(e){
 

	
 
var show_pullrequests = function(e){
 
    YUD.addClass('show_pullrequests', 'current');
 
    YUD.removeClass('show_my','current');
 
    YUD.removeClass('show_perms','current');
 

	
 
    YUD.setStyle('my','display','none');
 
    YUD.setStyle('perms','display','none');
 
    YUD.setStyle('pullrequests','display','');
 
    YUD.setStyle('q_filter','display','none');
 
    YUE.preventDefault(e);
 
    
 
    var url = "${h.url('admin_settings_my_pullrequests')}";
 
    ypjax(url, 'pullrequests');
 
    ypjax(url, 'pullrequests');	
 
}
 
YUE.on('show_pullrequests','click',function(e){
 
	show_pullrequests(e)
 
})
 

	
 
var tabs = {
 
    'perms': show_perms,
 
    'my': show_my,
 
    'pullrequests': show_pullrequests
 
}
 
var url = location.href.split('#'); 
 
if (url[1]) { 
 
    //We have a hash 
 
    var tabHash = url[1];
 
    console.log(tabs, tabHash)
 
    tabs[tabHash]();   
 
}
 

	
 
// main table sorting
 
var myColumnDefs = [
 
    {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
 
    {key:"name",label:"${_('Name')}",sortable:true,
 
        sortOptions: { sortFunction: nameSort }},
 
    {key:"tip",label:"${_('Tip')}",sortable:true,
rhodecode/templates/changelog/changelog.html
Show inline comments
 
@@ -30,12 +30,13 @@ ${_('%s Changelog') % c.repo_name} - ${c
 
			<div id="graph">
 
				<div id="graph_nodes">
 
					<canvas id="graph_canvas"></canvas>
 
				</div>
 
				<div id="graph_content">
 
                    <div class="info_box" style="clear: both;padding: 10px 6px;vertical-align: right;text-align: right;">
 
                    <a href="#" class="ui-btn small" id="rev_range_container" style="display:none"></a>
 
                    %if c.rhodecode_db_repo.fork:
 
                        <a title="${_('compare fork with %s' % c.rhodecode_db_repo.fork.repo_name)}" href="${h.url('compare_url',repo_name=c.repo_name,org_ref_type='branch',org_ref='default',other_ref_type='branch',other_ref='default',repo=c.rhodecode_db_repo.fork.repo_name)}" class="ui-btn small">${_('Compare fork')}</a>
 
                    %endif
 
                    %if h.is_hg(c.rhodecode_repo):
 
                    <a href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="ui-btn small">${_('Open new pull request')}</a>
 
                    %endif
 
@@ -45,13 +46,12 @@ ${_('%s Changelog') % c.repo_name} - ${c
 
				        <div class="info_box" style="float:left">
 
				          ${h.submit('set',_('Show'),class_="ui-btn")}
 
				          ${h.text('size',size=1,value=c.size)}
 
				          ${_('revisions')}
 
				        </div>
 
				        ${h.end_form()}
 
					<div id="rev_range_container" style="display:none"></div>
 
                    <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
 
					</div>
 

	
 
				%for cnt,cs in enumerate(c.pagination):
 
					<div id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
 
						<div class="left">
 
@@ -158,21 +158,21 @@ ${_('%s Changelog') % c.repo_name} - ${c
 
                        	var rev_end = checked_checkboxes[0].name;
 
                        	var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
 

	
 
                            var url = url_tmpl.replace('__REVRANGE__',
 
                            		rev_start+'...'+rev_end);
 

	
 
                        var link = "<a href="+url+">${_('Show selected changes __S -> __E')}</a>"
 
                        var link = "${_('Show selected changes __S -> __E')}";
 
                        link = link.replace('__S',rev_start.substr(0,6));
 
                        link = link.replace('__E',rev_end.substr(0,6));
 
                        YUD.get('rev_range_container').href = url;
 
                        YUD.get('rev_range_container').innerHTML = link;
 
                        YUD.setStyle('rev_range_container','display','');
 
                        }
 
                        else{
 
                        	YUD.setStyle('rev_range_container','display','none');
 

	
 
                        }
 
                    });
 

	
 
                    var msgs = YUQ('.message');
 
                    // get first element height
 
                    var el = YUQ('#graph_content .container')[0];
rhodecode/templates/files/files.html
Show inline comments
 
@@ -38,15 +38,15 @@
 
</div>
 

	
 
<script type="text/javascript">
 
var CACHE = {};
 
var CACHE_EXPIRE = 60*1000; //cache for 60s
 
//used to construct links from the search list
 
var node_list_url = '${h.url("files_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}';
 
var url_base = '${h.url("files_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}';
 
//send the nodelist request to this url
 
var url_base = '${h.url("files_nodelist_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}';
 
var node_list_url = '${h.url("files_nodelist_home",repo_name=c.repo_name,revision='__REV__',f_path='__FPATH__')}';
 

	
 
var ypjax_links = function(){
 
    YUE.on(YUQ('.ypjax-link'), 'click',function(e){
 

	
 
    	//don't do ypjax on middle click
 
    	if(e.which == 2 || !History.enabled){
 
@@ -68,14 +68,14 @@ var ypjax_links = function(){
 
        var parts2 = parts[1].split('/');
 
      	var rev = parts2.shift(); // pop the first element which is the revision
 
      	var f_path = parts2.join('/');
 

	
 
        var title = "${_('%s files') % c.repo_name}" + " - " + f_path;
 

	
 
        var _node_list_url = node_list_url.replace('__REV__',rev);
 
        var _url_base = url_base.replace('__REV__',rev).replace('__FPATH__', f_path);
 
        var _node_list_url = node_list_url.replace('__REV__',rev).replace('__FPATH__', f_path);
 
        var _url_base = url_base.replace('__REV__',rev);
 

	
 
        // Change our States and save some data for handling events
 
        var data = {url:url,title:title, url_base:_url_base,
 
                    node_list_url:_node_list_url};
 
        History.pushState(data, title, url);
 

	
 
@@ -129,14 +129,14 @@ YUE.onDOMReady(function(){
 
    });
 

	
 
    // init the search filter
 
    var _State = {
 
       url: "${h.url.current()}",
 
       data: {
 
         node_list_url: node_list_url.replace('__REV__',"${c.changeset.raw_id}"),
 
         url_base: url_base.replace('__REV__',"${c.changeset.raw_id}").replace('__FPATH__', "${h.safe_unicode(c.file.path)}")
 
         node_list_url: node_list_url.replace('__REV__',"${c.changeset.raw_id}").replace('__FPATH__', "${h.safe_unicode(c.file.path)}"),
 
         url_base: url_base.replace('__REV__',"${c.changeset.raw_id}")
 
       }
 
    }
 
    fileBrowserListeners(_State.url, _State.data.node_list_url, _State.data.url_base);
 
});
 

	
 
</script>
rhodecode/templates/pullrequests/pullrequest.html
Show inline comments
 
@@ -138,13 +138,13 @@
 
	  YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none');
 
      var url = "${h.url('compare_url',
 
    	                 repo_name='org_repo',
 
    	                 org_ref_type='org_ref_type', org_ref='org_ref',
 
                         other_ref_type='other_ref_type', other_ref='other_ref',
 
                         repo='other_repo',
 
                         as_form=True)}";
 
                         as_form=True, bundle=False)}";
 

	
 
      var select_refs = YUQ('#pull_request_form select.refs')
 
      var rev_data = {}; // gather the org/other ref and repo here
 
      for(var i=0;i<select_refs.length;i++){
 
        var select_ref = select_refs[i];
 
        var select_ref_data = select_ref.value.split(':');
rhodecode/templates/pullrequests/pullrequest_show.html
Show inline comments
 
@@ -41,13 +41,17 @@
 
         </div>
 
         <div class="field">
 
          <div class="label-summary">
 
              <label>${_('Still not reviewed by')}:</label>
 
          </div>
 
          <div class="input">
 
            <div class="tooltip" title="${h.tooltip(','.join([x.username for x in c.pull_request_pending_reviewers]))}">${ungettext('%d reviewer', '%d reviewers',len(c.pull_request_pending_reviewers)) % len(c.pull_request_pending_reviewers)}</div>
 
            % if len(c.pull_request_pending_reviewers) > 0:
 
                <div class="tooltip" title="${h.tooltip(','.join([x.username for x in c.pull_request_pending_reviewers]))}">${ungettext('%d reviewer', '%d reviewers',len(c.pull_request_pending_reviewers)) % len(c.pull_request_pending_reviewers)}</div>
 
            %else:
 
                <div>${_('pull request was reviewed by all reviewers')}</div>            
 
            %endif
 
          </div>
 
         </div>
 
      </div>
 
    </div>
 
    <div style="white-space:pre-wrap;padding:3px 3px 5px 20px">${h.literal(c.pull_request.description)}</div>
 
    <div style="padding:4px 4px 10px 20px">
rhodecode/templates/shortlog/shortlog_data.html
Show inline comments
 
@@ -9,13 +9,28 @@
 
		<th class="left">${_('branch')}</th>
 
		<th class="left">${_('tags')}</th>
 
	</tr>
 
%for cnt,cs in enumerate(c.repo_changesets):
 
	<tr class="parity${cnt%2}">
 
        <td>
 
            <div><pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id)}">r${cs.revision}:${h.short_id(cs.raw_id)}</a></pre></div>
 
          <div>
 
            <div class="changeset-status-container">
 
              %if c.statuses.get(cs.raw_id):
 
                <div class="changeset-status-ico">
 
                %if c.statuses.get(cs.raw_id)[2]:
 
                  <a class="tooltip" title="${_('Click to open associated pull request')}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
 
                    <img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" />
 
                  </a>
 
                %else:
 
                  <img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" />
 
                %endif
 
                </div>
 
              %endif
 
            </div>            
 
            <pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id)}">r${cs.revision}:${h.short_id(cs.raw_id)}</a></pre>
 
         </div>
 
        </td>
 
        <td>
 
            ${h.link_to(h.truncate(cs.message,50) or _('No commit message'),
 
            h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id),
 
            title=cs.message)}
 
        </td>
rhodecode/tests/functional/test_compare.py
Show inline comments
 
@@ -251,13 +251,14 @@ class TestCompareController(TestControll
 
        response = self.app.get(url(controller='compare', action='index',
 
                                    repo_name=r2_name,
 
                                    org_ref_type="branch",
 
                                    org_ref=rev1,
 
                                    other_ref_type="branch",
 
                                    other_ref=rev2,
 
                                    repo=r1_name
 
                                    repo=r1_name,
 
                                    bundle=True,
 
                                    ))
 

	
 
        try:
 
            response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2))
 
            response.mustcontain("""file1-line1-from-fork""")
 
            response.mustcontain("""file2-line1-from-fork""")
 
@@ -266,28 +267,137 @@ class TestCompareController(TestControll
 
            #add new commit into parent !
 
            cs0 = ScmModel().create_node(
 
                repo=repo1.scm_instance, repo_name=r1_name,
 
                cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN,
 
                author=TEST_USER_ADMIN_LOGIN,
 
                message='commit2',
 
                content='line1-from-new-parent',
 
                f_path='file2'
 
            )
 
            #compare !
 
            rev1 = 'default'
 
            rev2 = 'default'
 
            response = self.app.get(url(controller='compare', action='index',
 
                                        repo_name=r2_name,
 
                                        org_ref_type="branch",
 
                                        org_ref=rev1,
 
                                        other_ref_type="branch",
 
                                        other_ref=rev2,
 
                                        repo=r1_name,
 
                                        bundle=True,
 
                                        ))
 

	
 
            response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2))
 
            response.mustcontain("""<a href="#">file2</a>""")  # new commit from parent
 
            response.mustcontain("""line1-from-new-parent""")
 
            response.mustcontain("""file1-line1-from-fork""")
 
            response.mustcontain("""file2-line1-from-fork""")
 
            response.mustcontain("""file3-line1-from-fork""")
 
        finally:
 
            RepoModel().delete(r2_id)
 
            RepoModel().delete(r1_id)
 

	
 
    def test_org_repo_new_commits_after_forking_simple_diff(self):
 
        self.log_user()
 

	
 
        repo1 = RepoModel().create_repo(repo_name='one', repo_type='hg',
 
                                        description='diff-test',
 
                                        owner=TEST_USER_ADMIN_LOGIN)
 

	
 
        Session().commit()
 
        r1_id = repo1.repo_id
 
        r1_name = repo1.repo_name
 

	
 
        #commit something initially !
 
        cs0 = ScmModel().create_node(
 
            repo=repo1.scm_instance, repo_name=r1_name,
 
            cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN,
 
            author=TEST_USER_ADMIN_LOGIN,
 
            message='commit1',
 
            content='line1',
 
            f_path='file1'
 
        )
 
        Session().commit()
 
        self.assertEqual(repo1.scm_instance.revisions, [cs0.raw_id])
 
        #fork the repo1
 
        repo2 = RepoModel().create_repo(repo_name='one-fork', repo_type='hg',
 
                                description='compare-test',
 
                                clone_uri=repo1.repo_full_path,
 
                                owner=TEST_USER_ADMIN_LOGIN, fork_of='one')
 
        Session().commit()
 
        self.assertEqual(repo2.scm_instance.revisions, [cs0.raw_id])
 
        r2_id = repo2.repo_id
 
        r2_name = repo2.repo_name
 

	
 
        #make 3 new commits in fork
 
        cs1 = ScmModel().create_node(
 
            repo=repo2.scm_instance, repo_name=r2_name,
 
            cs=repo2.scm_instance[-1], user=TEST_USER_ADMIN_LOGIN,
 
            author=TEST_USER_ADMIN_LOGIN,
 
            message='commit1-fork',
 
            content='file1-line1-from-fork',
 
            f_path='file1-fork'
 
        )
 
        cs2 = ScmModel().create_node(
 
            repo=repo2.scm_instance, repo_name=r2_name,
 
            cs=cs1, user=TEST_USER_ADMIN_LOGIN,
 
            author=TEST_USER_ADMIN_LOGIN,
 
            message='commit2-fork',
 
            content='file2-line1-from-fork',
 
            f_path='file2-fork'
 
        )
 
        cs3 = ScmModel().create_node(
 
            repo=repo2.scm_instance, repo_name=r2_name,
 
            cs=cs2, user=TEST_USER_ADMIN_LOGIN,
 
            author=TEST_USER_ADMIN_LOGIN,
 
            message='commit3-fork',
 
            content='file3-line1-from-fork',
 
            f_path='file3-fork'
 
        )
 

	
 
        #compare !
 
        rev1 = 'default'
 
        rev2 = 'default'
 
        response = self.app.get(url(controller='compare', action='index',
 
                                    repo_name=r2_name,
 
                                    org_ref_type="branch",
 
                                    org_ref=rev1,
 
                                    other_ref_type="branch",
 
                                    other_ref=rev2,
 
                                    repo=r1_name,
 
                                    bundle=False,
 
                                    ))
 

	
 
        try:
 
            #response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2))
 

	
 
            #add new commit into parent !
 
            cs0 = ScmModel().create_node(
 
                repo=repo1.scm_instance, repo_name=r1_name,
 
                cs=EmptyChangeset(alias='hg'), user=TEST_USER_ADMIN_LOGIN,
 
                author=TEST_USER_ADMIN_LOGIN,
 
                message='commit2',
 
                content='line1',
 
                f_path='file2'
 
            )
 
            #compare !
 
            rev1 = 'default'
 
            rev2 = 'default'
 
            response = self.app.get(url(controller='compare', action='index',
 
                                        repo_name=r2_name,
 
                                        org_ref_type="branch",
 
                                        org_ref=rev1,
 
                                        other_ref_type="branch",
 
                                        other_ref=rev2,
 
                                        repo=r1_name
 
                                        repo=r1_name,
 
                                        bundle=False
 
                                        ))
 

	
 
            rev2 = cs0.parents[0].raw_id
 
            response.mustcontain('%s@%s -> %s@%s' % (r2_name, rev1, r1_name, rev2))
 
            response.mustcontain("""file1-line1-from-fork""")
 
            response.mustcontain("""file2-line1-from-fork""")
 
            response.mustcontain("""file3-line1-from-fork""")
 
            self.assertFalse("""<a href="#">file2</a>""" in response.body)  # new commit from parent
 
            self.assertFalse("""line1-from-new-parent"""  in response.body)
 
        finally:
 
            RepoModel().delete(r2_id)
 
            RepoModel().delete(r1_id)
 
            RepoModel().delete(r1_id)
 
\ No newline at end of file
rhodecode/tests/scripts/test_concurency.py
Show inline comments
 
@@ -43,21 +43,21 @@ from rhodecode.model import meta
 
from rhodecode.model.db import User, Repository
 
from rhodecode.lib.auth import get_crypt_password
 

	
 
from rhodecode.tests import TESTS_TMP_PATH, NEW_HG_REPO, HG_REPO
 
from rhodecode.config.environment import load_environment
 

	
 
rel_path = dn(dn(dn(os.path.abspath(__file__))))
 
conf = appconfig('config:development.ini', relative_to=rel_path)
 
rel_path = dn(dn(dn(dn(os.path.abspath(__file__)))))
 
conf = appconfig('config:rc.ini', relative_to=rel_path)
 
load_environment(conf.global_conf, conf.local_conf)
 

	
 
add_cache(conf)
 

	
 
USER = 'test_admin'
 
PASS = 'test12'
 
HOST = 'hg.local'
 
HOST = 'rc.local'
 
METHOD = 'pull'
 
DEBUG = True
 
log = logging.getLogger(__name__)
 

	
 

	
 
class Command(object):
 
@@ -127,16 +127,16 @@ def create_test_repo(force=True):
 

	
 
    repo = sa.query(Repository).filter(Repository.repo_name == HG_REPO).scalar()
 

	
 
    if repo is None:
 
        print 'repo not found creating'
 

	
 
        form_data = {'repo_name':HG_REPO,
 
                     'repo_type':'hg',
 
        form_data = {'repo_name': HG_REPO,
 
                     'repo_type': 'hg',
 
                     'private':False,
 
                     'clone_uri':'' }
 
                     'clone_uri': '' }
 
        rm = RepoModel(sa)
 
        rm.base_path = '/home/hg'
 
        rm.create(form_data, user)
 

	
 
    print 'done'
 

	
 
@@ -155,13 +155,13 @@ def get_anonymous_access():
 

	
 

	
 
#==============================================================================
 
# TESTS
 
#==============================================================================
 
def test_clone_with_credentials(no_errors=False, repo=HG_REPO, method=METHOD,
 
                                seq=None):
 
                                seq=None, backend='hg'):
 
    cwd = path = jn(TESTS_TMP_PATH, repo)
 

	
 
    if seq == None:
 
        seq = _RandomNameSequence().next()
 

	
 
    try:
 
@@ -169,45 +169,53 @@ def test_clone_with_credentials(no_error
 
        os.makedirs(path)
 
        #print 'made dirs %s' % jn(path)
 
    except OSError:
 
        raise
 

	
 
    clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s' % \
 
                  {'user':USER,
 
                   'pass':PASS,
 
                   'host':HOST,
 
                   'cloned_repo':repo, }
 
                  {'user': USER,
 
                   'pass': PASS,
 
                   'host': HOST,
 
                   'cloned_repo': repo, }
 

	
 
    dest = path + seq
 
    if method == 'pull':
 
        stdout, stderr = Command(cwd).execute('hg', method, '--cwd', dest, clone_url)
 
        stdout, stderr = Command(cwd).execute(backend, method, '--cwd', dest, clone_url)
 
    else:
 
        stdout, stderr = Command(cwd).execute('hg', method, clone_url, dest)
 

	
 
        stdout, stderr = Command(cwd).execute(backend, method, clone_url, dest)
 
        print stdout,'sdasdsadsa'
 
        if no_errors is False:
 
            assert """adding file changes""" in stdout, 'no messages about cloning'
 
            assert """abort""" not in stderr , 'got error from clone'
 
            if backend == 'hg':
 
                assert """adding file changes""" in stdout, 'no messages about cloning'
 
                assert """abort""" not in stderr , 'got error from clone'
 
            elif backend == 'git':
 
                assert """Cloning into""" in stdout, 'no messages about cloning'
 

	
 
if __name__ == '__main__':
 
    try:
 
        create_test_user(force=False)
 
        seq = None
 
        import time
 

	
 
        try:
 
            METHOD = sys.argv[3]
 
        except:
 
            pass
 

	
 
        try:
 
            backend = sys.argv[4]
 
        except:
 
            backend = 'hg'
 

	
 
        if METHOD == 'pull':
 
            seq = _RandomNameSequence().next()
 
            test_clone_with_credentials(repo=sys.argv[1], method='clone',
 
                                        seq=seq)
 
                                        seq=seq, backend=backend)
 
        s = time.time()
 
        for i in range(1, int(sys.argv[2]) + 1):
 
            print 'take', i
 
            test_clone_with_credentials(repo=sys.argv[1], method=METHOD,
 
                                        seq=seq)
 
                                        seq=seq, backend=backend)
 
        print 'time taken %.3f' % (time.time() - s)
 
    except Exception, e:
 
        raise
 
        sys.exit('stop on %s' % e)
rhodecode/tests/vcs/test_inmemchangesets.py
Show inline comments
 
@@ -41,12 +41,13 @@ class InMemoryChangesetTestMixin(object)
 
        self.imc = self.repo.in_memory_changeset
 
        self.nodes = [
 
            FileNode('foobar', content='Foo & bar'),
 
            FileNode('foobar2', content='Foo & bar, doubled!'),
 
            FileNode('foo bar with spaces', content=''),
 
            FileNode('foo/bar/baz', content='Inside'),
 
            FileNode('foo/bar/file.bin', content='\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00;\x00\x03\x00\xfe\xff\t\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\xfe\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'),
 
        ]
 

	
 
    def test_add(self):
 
        rev_count = len(self.repo.revisions)
 
        to_add = [FileNode(node.path, content=node.content)
 
            for node in self.nodes]
setup.py
Show inline comments
 
@@ -57,16 +57,16 @@ if sys.version_info < (2, 6):
 
    requirements.append("pysqlite")
 

	
 
if sys.version_info < (2, 7):
 
    requirements.append("unittest2")
 

	
 
if is_windows:
 
    requirements.append("mercurial==2.3.1")
 
    requirements.append("mercurial==2.3.2")
 
else:
 
    requirements.append("py-bcrypt")
 
    requirements.append("mercurial==2.3.1")
 
    requirements.append("mercurial==2.3.2")
 

	
 

	
 
dependency_links = [
 
]
 

	
 
classifiers = [
0 comments (0 inline, 0 general)