changeset 2897:1f7b8c73c94a

Merge with beta
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 08 Oct 2012 22:37:09 +0200
parents 3c7c24f9031f (current diff) 40362af426b4 (diff)
children 3148c08cf86f
files docs/changelog.rst rhodecode/__init__.py rhodecode/config/environment.py rhodecode/controllers/admin/settings.py rhodecode/controllers/shortlog.py rhodecode/controllers/summary.py rhodecode/lib/utils.py rhodecode/model/__init__.py rhodecode/model/forms.py rhodecode/public/css/style.css rhodecode/templates/admin/users/user_edit_my_account.html rhodecode/templates/changelog/changelog.html setup.py
diffstat 31 files changed, 1166 insertions(+), 1019 deletions(-) [+]
line wrap: on
line diff
--- a/docs/changelog.rst	Fri Sep 28 23:33:32 2012 +0200
+++ b/docs/changelog.rst	Mon Oct 08 22:37:09 2012 +0200
@@ -4,6 +4,32 @@
 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**)
 ----------------------
--- a/rhodecode/__init__.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/__init__.py	Mon Oct 08 22:37:09 2012 +0200
@@ -26,7 +26,7 @@
 import sys
 import platform
 
-VERSION = (1, 4, 3)
+VERSION = (1, 4, 4)
 
 try:
     from rhodecode.lib import get_current_revision
--- a/rhodecode/config/environment.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/config/environment.py	Mon Oct 08 22:37:09 2012 +0200
@@ -18,7 +18,7 @@
 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
@@ -86,6 +86,9 @@
         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.')
--- a/rhodecode/controllers/admin/settings.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/controllers/admin/settings.py	Mon Oct 08 22:37:09 2012 +0200
@@ -41,7 +41,7 @@
 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, \
@@ -68,7 +68,8 @@
         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()
--- a/rhodecode/controllers/compare.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/controllers/compare.py	Mon Oct 08 22:37:09 2012 +0200
@@ -40,6 +40,7 @@
 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__)
 
@@ -86,11 +87,13 @@
         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)
@@ -107,8 +110,8 @@
         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])
@@ -118,11 +121,18 @@
         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()
 
--- a/rhodecode/controllers/pullrequests.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/controllers/pullrequests.py	Mon Oct 08 22:37:09 2012 +0200
@@ -172,8 +172,9 @@
 
     @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'):
@@ -272,6 +273,12 @@
         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
--- a/rhodecode/controllers/shortlog.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/controllers/shortlog.py	Mon Oct 08 22:37:09 2012 +0200
@@ -53,6 +53,8 @@
 
         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))
--- a/rhodecode/controllers/summary.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/controllers/summary.py	Mon Oct 08 22:37:09 2012 +0200
@@ -78,6 +78,8 @@
 
         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
Binary file rhodecode/i18n/fr/LC_MESSAGES/rhodecode.mo has changed
--- a/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/i18n/fr/LC_MESSAGES/rhodecode.po	Mon Oct 08 22:37:09 2012 +0200
@@ -7,8 +7,8 @@
 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"
@@ -17,36 +17,42 @@
 "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"
 
@@ -56,9 +62,7 @@
 
 #: 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"
@@ -73,12 +77,8 @@
 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
@@ -90,24 +90,29 @@
 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
@@ -118,12 +123,14 @@
 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"
 
@@ -163,55 +170,50 @@
 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"
 
@@ -224,97 +226,103 @@
 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."
@@ -406,9 +414,9 @@
 #: 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"
 
@@ -472,9 +480,7 @@
 
 #: 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"
@@ -484,22 +490,16 @@
 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."
 
@@ -524,118 +524,109 @@
 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"
@@ -676,35 +667,30 @@
 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
@@ -735,24 +721,20 @@
 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 à l’utilisateur."
+msgstr "La permission de création de dépôts a été accordée au groupe d’utilisateurs."
 
 #: 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 à l’utilisateur."
+msgstr "La permission de création de dépôts a été révoquée au groupe d’utilisateurs."
 
 #: 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 à l’utilisateur."
+msgstr "La permission de fork de dépôts a été révoquée au groupe d’utilisateurs."
 
 #: rhodecode/lib/auth.py:499
 msgid "You need to be a registered user to perform this action"
@@ -762,206 +744,206 @@
 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"
 
@@ -974,104 +956,89 @@
 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"
@@ -1109,196 +1076,173 @@
 
 #: 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"
@@ -1318,7 +1262,7 @@
 
 #: 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"
 
@@ -1365,8 +1309,8 @@
 #: 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
@@ -1389,7 +1333,7 @@
 
 #: 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"
@@ -1430,7 +1374,7 @@
 #: 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
@@ -1442,7 +1386,7 @@
 #: 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
@@ -1457,7 +1401,7 @@
 
 #: 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
@@ -1468,7 +1412,7 @@
 
 #: 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
@@ -1479,7 +1423,7 @@
 
 #: 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
@@ -1488,7 +1432,8 @@
 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"
 
@@ -1496,7 +1441,8 @@
 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
@@ -1506,7 +1452,8 @@
 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
@@ -1521,7 +1468,8 @@
 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 ?"
 
@@ -1545,7 +1493,8 @@
 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"
 
@@ -1755,18 +1704,17 @@
 
 #: 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"
@@ -1811,14 +1759,8 @@
 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"
@@ -1833,12 +1775,11 @@
 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"
 
@@ -1879,7 +1820,6 @@
 
 #: 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."
 
@@ -1896,36 +1836,29 @@
 #: 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"
@@ -1978,13 +1911,12 @@
 
 #: 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."
@@ -2002,7 +1934,7 @@
 #: 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"
@@ -2055,96 +1987,91 @@
 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
@@ -2164,7 +2091,7 @@
 #: 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"
 
@@ -2199,12 +2126,12 @@
 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."
 
@@ -2212,11 +2139,43 @@
 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"
 
@@ -2242,7 +2201,7 @@
 #: 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"
 
@@ -2255,10 +2214,8 @@
 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"
@@ -2331,23 +2288,16 @@
 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"
@@ -2392,52 +2342,44 @@
 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"
@@ -2464,47 +2406,37 @@
 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"
@@ -2585,17 +2517,14 @@
 
 #: 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
@@ -2604,45 +2533,39 @@
 
 #: 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"
 
@@ -2665,38 +2588,35 @@
 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
@@ -2734,7 +2654,7 @@
 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"
 
@@ -2747,7 +2667,6 @@
 msgstr "Nom d’utilisateur"
 
 #: rhodecode/templates/admin/users/users.html:80
-#, fuzzy
 msgid "firstname"
 msgstr "Prénom"
 
@@ -2765,7 +2684,7 @@
 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"
 
@@ -2856,36 +2775,10 @@
 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
@@ -2950,50 +2843,59 @@
 
 #: 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"
@@ -3044,16 +2946,14 @@
 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"
@@ -3074,9 +2974,8 @@
 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
@@ -3090,19 +2989,18 @@
 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"
 
@@ -3119,13 +3017,13 @@
 #: 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
@@ -3233,10 +3131,6 @@
 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…"
@@ -3249,16 +3143,12 @@
 #: 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
@@ -3284,16 +3174,15 @@
 
 #: 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
@@ -3307,7 +3196,7 @@
 
 #: 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"
 
@@ -3320,14 +3209,12 @@
 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
@@ -3388,7 +3275,7 @@
 
 #: rhodecode/templates/files/files.html:4
 #: rhodecode/templates/files/files.html:72
-#, fuzzy, python-format
+#, python-format
 msgid "%s files"
 msgstr "Fichiers de %s"
 
@@ -3397,6 +3284,11 @@
 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
@@ -3471,7 +3363,7 @@
 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"
 
@@ -3532,21 +3424,19 @@
 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"
@@ -3561,10 +3451,6 @@
 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"
@@ -3609,7 +3495,7 @@
 
 #: 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"
@@ -3617,7 +3503,7 @@
 
 #: 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"
@@ -3641,30 +3527,27 @@
 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"
@@ -3691,14 +3574,12 @@
 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"
@@ -3707,128 +3588,127 @@
 #: 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"
@@ -3843,9 +3723,8 @@
 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"
@@ -3875,19 +3754,19 @@
 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à ?"
 
@@ -3901,14 +3780,14 @@
 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
@@ -3997,11 +3876,11 @@
 #: 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
@@ -4045,3 +3924,5 @@
 msgid "%s Tags"
 msgstr "Tags de %s"
 
+#~ msgid "Groups"
+#~ msgstr "Groupes"
Binary file rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.mo has changed
--- a/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/i18n/zh_CN/LC_MESSAGES/rhodecode.po	Mon Oct 08 22:37:09 2012 +0200
@@ -8,17 +8,16 @@
 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"
@@ -43,9 +42,8 @@
 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"
 
@@ -56,6 +54,7 @@
 msgstr "不允许修改已关闭拉取请求的修订集状态"
 
 #: rhodecode/controllers/compare.py:72
+#: rhodecode/controllers/pullrequests.py:114
 msgid "There are no changesets yet"
 msgstr "还没有修订集"
 
@@ -173,13 +172,13 @@
 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 "标签"
 
@@ -204,12 +203,12 @@
 #: 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"
@@ -233,27 +232,27 @@
 "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 "成功删除拉取请求"
 
@@ -305,18 +304,15 @@
 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"
 
@@ -325,11 +321,11 @@
 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 "该版本库统计功能已经禁用"
@@ -459,7 +455,7 @@
 
 #: rhodecode/controllers/admin/repos.py:123
 msgid "--REMOVE FORK--"
-msgstr "-- 移除分支 --"
+msgstr "-- 移除复刻 --"
 
 #: rhodecode/controllers/admin/repos.py:192
 #, python-format
@@ -479,7 +475,7 @@
 #: 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"
@@ -524,7 +520,7 @@
 #: 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"
@@ -674,11 +670,11 @@
 
 #: 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
@@ -736,11 +732,11 @@
 
 #: 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"
@@ -795,13 +791,13 @@
 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
@@ -820,11 +816,11 @@
 
 #: 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"
@@ -1004,11 +1000,11 @@
 
 #: 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"
@@ -1217,10 +1213,9 @@
 
 #: 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 "没有在这个组里面创建版本库的权限"
 
@@ -1317,8 +1312,8 @@
 #: 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
@@ -1341,7 +1336,7 @@
 
 #: 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"
@@ -1382,7 +1377,7 @@
 #: 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
@@ -1394,7 +1389,7 @@
 #: 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
@@ -1409,7 +1404,7 @@
 
 #: 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
@@ -1420,7 +1415,7 @@
 
 #: 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
@@ -1431,7 +1426,7 @@
 
 #: 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
@@ -1783,7 +1778,7 @@
 
 #: 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
@@ -1944,7 +1939,7 @@
 #: 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 "重置"
@@ -2059,11 +2054,11 @@
 
 #: 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
@@ -2219,7 +2214,7 @@
 #: 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 "保存"
 
@@ -2574,7 +2569,7 @@
 #: 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
@@ -2584,7 +2579,7 @@
 
 #: 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 "权限"
 
@@ -2883,7 +2878,6 @@
 
 #: rhodecode/templates/base/base.html:204
 #: rhodecode/templates/base/base.html:206
-#| msgid "Repository creation"
 msgid "repository settings"
 msgstr "版本库设置"
 
@@ -2891,10 +2885,10 @@
 #: 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 "新建拉取请求"
 
@@ -2903,7 +2897,6 @@
 msgstr "搜索"
 
 #: rhodecode/templates/base/base.html:220
-#| msgid "unlock"
 msgid "lock"
 msgstr "锁定"
 
@@ -2931,7 +2924,7 @@
 #: 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
@@ -3028,18 +3021,18 @@
 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 "显示"
 
@@ -3060,6 +3053,7 @@
 msgstr "修订集状态"
 
 #: rhodecode/templates/changelog/changelog.html:92
+#: rhodecode/templates/shortlog/shortlog_data.html:20
 msgid "Click to open associated pull request"
 msgstr "点击建立相关的拉取请求"
 
@@ -3233,7 +3227,7 @@
 
 #: 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 "影响文件"
 
@@ -3257,7 +3251,7 @@
 #: 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
@@ -3281,7 +3275,7 @@
 #: 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"
@@ -3321,6 +3315,11 @@
 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
@@ -3395,7 +3394,7 @@
 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 "新建文件"
 
@@ -3482,10 +3481,6 @@
 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 "显示注释"
@@ -3514,11 +3509,11 @@
 #: 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"
@@ -3530,7 +3525,7 @@
 
 #: rhodecode/templates/forks/fork.html:81
 msgid "Copy permissions from forked repository"
-msgstr "从被分支版本库拷贝权限"
+msgstr "从被复刻版本库拷贝权限"
 
 #: rhodecode/templates/forks/fork.html:86
 msgid "Update after clone"
@@ -3542,24 +3537,24 @@
 
 #: 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"
@@ -3570,7 +3565,7 @@
 msgstr "订阅日志 RSS"
 
 #: rhodecode/templates/journal/journal.html:24
-#: rhodecode/templates/pullrequests/pullrequest.html:27
+#: rhodecode/templates/pullrequests/pullrequest.html:53
 msgid "Refresh"
 msgstr "刷新"
 
@@ -3625,44 +3620,44 @@
 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 "发送拉取请求"
 
@@ -3688,21 +3683,26 @@
 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 "传入修订集"
 
@@ -3783,19 +3783,19 @@
 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 "现有版本库?"
 
@@ -3952,6 +3952,3 @@
 #, python-format
 msgid "%s Tags"
 msgstr "%s 标签"
-
-#~ msgid "Groups"
-#~ msgstr "组"
--- a/rhodecode/lib/diffs.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/lib/diffs.py	Mon Oct 08 22:37:09 2012 +0200
@@ -28,6 +28,7 @@
 import re
 import difflib
 import markupsafe
+import logging
 
 from itertools import tee, imap
 
@@ -46,6 +47,8 @@
 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">
@@ -574,7 +577,8 @@
         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
@@ -598,7 +602,7 @@
     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())
@@ -633,5 +637,7 @@
                                   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))
--- a/rhodecode/lib/utils.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/lib/utils.py	Mon Oct 08 22:37:09 2012 +0200
@@ -672,3 +672,38 @@
         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
--- a/rhodecode/lib/utils2.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/lib/utils2.py	Mon Oct 08 22:37:09 2012 +0200
@@ -497,3 +497,11 @@
     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
--- a/rhodecode/lib/vcs/backends/git/inmemory.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/lib/vcs/backends/git/inmemory.py	Mon Oct 08 22:37:09 2012 +0200
@@ -63,10 +63,16 @@
                     # 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
--- a/rhodecode/model/__init__.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/model/__init__.py	Mon Oct 08 22:37:09 2012 +0200
@@ -43,7 +43,7 @@
 
 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__)
 
@@ -56,7 +56,8 @@
 
     :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
 
 
--- a/rhodecode/model/forms.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/model/forms.py	Mon Oct 08 22:37:09 2012 +0200
@@ -327,7 +327,7 @@
     return _UserExtraEmailForm
 
 
-def PullRequestForm():
+def PullRequestForm(repo_id):
     class _PullRequestForm(formencode.Schema):
         allow_extra_fields = True
         filter_extra_fields = True
@@ -337,7 +337,7 @@
         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)
--- a/rhodecode/model/validators.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/model/validators.py	Mon Oct 08 22:37:09 2012 +0200
@@ -666,7 +666,7 @@
     return _validator
 
 
-def NotReviewedRevisions():
+def NotReviewedRevisions(repo_id):
     class _validator(formencode.validators.FancyValidator):
         messages = {
             'rev_already_reviewed':
@@ -678,7 +678,10 @@
             # 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:
--- a/rhodecode/public/css/style.css	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/public/css/style.css	Mon Oct 08 22:37:09 2012 +0200
@@ -2544,8 +2544,8 @@
 }
 
 #graph_content #rev_range_container {
-	padding: 7px 20px;
 	float: left;
+	margin: 0px 0px 0px 3px;
 }
 
 #graph_content .container {
--- a/rhodecode/public/js/rhodecode.js	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/public/js/rhodecode.js	Mon Oct 08 22:37:09 2012 +0200
@@ -673,10 +673,7 @@
 }
 
 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){
@@ -700,7 +697,7 @@
 	  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');
@@ -743,8 +740,8 @@
 	                    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']));
--- a/rhodecode/templates/admin/users/user_edit_my_account.html	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/templates/admin/users/user_edit_my_account.html	Mon Oct 08 22:37:09 2012 +0200
@@ -38,7 +38,7 @@
              <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>
@@ -109,18 +109,22 @@
     }
     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');
@@ -130,14 +134,18 @@
     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');
@@ -146,11 +154,27 @@
     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"},
--- a/rhodecode/templates/changelog/changelog.html	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/templates/changelog/changelog.html	Mon Oct 08 22:37:09 2012 +0200
@@ -33,6 +33,7 @@
 				</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
@@ -48,7 +49,6 @@
 				          ${_('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>
 
@@ -161,15 +161,15 @@
                             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');
-
                         }
                     });
 
--- a/rhodecode/templates/files/files.html	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/templates/files/files.html	Mon Oct 08 22:37:09 2012 +0200
@@ -41,9 +41,9 @@
 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){
@@ -71,8 +71,8 @@
 
         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,
@@ -132,8 +132,8 @@
     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);
--- a/rhodecode/templates/pullrequests/pullrequest.html	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/templates/pullrequests/pullrequest.html	Mon Oct 08 22:37:09 2012 +0200
@@ -141,7 +141,7 @@
     	                 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
--- a/rhodecode/templates/pullrequests/pullrequest_show.html	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/templates/pullrequests/pullrequest_show.html	Mon Oct 08 22:37:09 2012 +0200
@@ -44,7 +44,11 @@
               <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>
--- a/rhodecode/templates/shortlog/shortlog_data.html	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/templates/shortlog/shortlog_data.html	Mon Oct 08 22:37:09 2012 +0200
@@ -12,7 +12,22 @@
 %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'),
--- a/rhodecode/tests/functional/test_compare.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/tests/functional/test_compare.py	Mon Oct 08 22:37:09 2012 +0200
@@ -254,7 +254,8 @@
                                     org_ref=rev1,
                                     other_ref_type="branch",
                                     other_ref=rev2,
-                                    repo=r1_name
+                                    repo=r1_name,
+                                    bundle=True,
                                     ))
 
         try:
@@ -269,6 +270,112 @@
                 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'
             )
@@ -281,13 +388,16 @@
                                         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
--- a/rhodecode/tests/scripts/test_concurency.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/tests/scripts/test_concurency.py	Mon Oct 08 22:37:09 2012 +0200
@@ -46,15 +46,15 @@
 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__)
@@ -130,10 +130,10 @@
     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)
@@ -158,7 +158,7 @@
 # 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:
@@ -172,20 +172,23 @@
         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:
@@ -198,15 +201,20 @@
         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
--- a/rhodecode/tests/vcs/test_inmemchangesets.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/rhodecode/tests/vcs/test_inmemchangesets.py	Mon Oct 08 22:37:09 2012 +0200
@@ -44,6 +44,7 @@
             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):
--- a/setup.py	Fri Sep 28 23:33:32 2012 +0200
+++ b/setup.py	Mon Oct 08 22:37:09 2012 +0200
@@ -60,10 +60,10 @@
     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 = [