Merge branch 'jb/diff-no-index-no-abbrev'
authorJunio C Hamano <gitster@pobox.com>
Mon, 19 Dec 2016 22:45:33 +0000 (14:45 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Dec 2016 22:45:33 +0000 (14:45 -0800)
"git diff --no-index" did not take "--no-abbrev" option.

* jb/diff-no-index-no-abbrev:
diff: handle --no-abbrev in no-index case

94 files changed:
.travis.yml
Documentation/RelNotes/2.10.3.txt [new file with mode: 0644]
Documentation/RelNotes/2.12.0.txt [new file with mode: 0644]
Documentation/config.txt
Documentation/git-branch.txt
Documentation/git-for-each-ref.txt
Documentation/git-p4.txt
Documentation/git-svn.txt
Documentation/git-tag.txt
Documentation/git.txt
GIT-VERSION-GEN
RelNotes
bisect.c
branch.c
builtin/branch.c
builtin/clone.c
builtin/commit.c
builtin/fetch.c
builtin/for-each-ref.c
builtin/receive-pack.c
builtin/rev-parse.c
builtin/tag.c
builtin/worktree.c
commit.c
commit.h
common-main.c
compat/mingw.h
compat/winansi.c
convert.c
exec_cmd.c
exec_cmd.h
git-mergetool--lib.sh
git-p4.py
git-stash.sh
git.c
http-walker.c
http.c
http.h
merge-recursive.c
mergetools/araxis
mergetools/bc
mergetools/codecompare
mergetools/deltawalker
mergetools/diffmerge
mergetools/diffuse
mergetools/ecmerge
mergetools/emerge
mergetools/examdiff
mergetools/kdiff3
mergetools/kompare
mergetools/meld
mergetools/opendiff
mergetools/p4merge
mergetools/tkdiff
mergetools/tortoisemerge
mergetools/vimdiff
mergetools/winmerge
mergetools/xxdiff
perl/Git/SVN/Ra.pm
po/ca.po
po/ru.po
ref-filter.c
ref-filter.h
remote-curl.c
sequencer.c
submodule.c
submodule.h
t/lib-httpd/apache.conf
t/t0021-conversion.sh
t/t2027-worktree-list.sh
t/t3030-merge-recursive.sh
t/t3203-branch-output.sh
t/t3426-rebase-submodule.sh
t/t3501-revert-cherry-pick.sh
t/t3511-cherry-pick-x.sh
t/t3903-stash.sh
t/t4014-format-patch.sh
t/t5531-deep-submodule-push.sh
t/t5550-http-fetch-dumb.sh
t/t5551-http-fetch-smart.sh
t/t5812-proto-disable-http.sh
t/t6101-rev-parse-parents.sh
t/t7004-tag.sh
t/t7501-commit.sh
t/t7609-merge-co-error-msgs.sh
t/t7610-mergetool.sh
t/t9807-git-p4-submit.sh
t/t9824-git-p4-git-lfs.sh
trailer.c
trailer.h
transport.c
unpack-trees.c
worktree.c
worktree.h
index 0b2ea5c3e2daa057cb88763f1943f6a250d019d9..3843967a692d1642e43f536d5e2652b566ca554d 100644 (file)
@@ -27,8 +27,8 @@ env:
     # The Linux build installs the defined dependency versions below.
     # The OS X build installs the latest available versions. Keep that
     # in mind when you encounter a broken OS X build!
-    - LINUX_P4_VERSION="16.1"
-    - LINUX_GIT_LFS_VERSION="1.2.0"
+    - LINUX_P4_VERSION="16.2"
+    - LINUX_GIT_LFS_VERSION="1.5.2"
     - DEFAULT_TEST_TARGET=prove
     - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
     - GIT_TEST_OPTS="--verbose-log"
diff --git a/Documentation/RelNotes/2.10.3.txt b/Documentation/RelNotes/2.10.3.txt
new file mode 100644 (file)
index 0000000..277a2a1
--- /dev/null
@@ -0,0 +1,48 @@
+Git v2.10.3 Release Notes
+=========================
+
+Fixes since v2.10.2
+-------------------
+
+ * Extract a small helper out of the function that reads the authors
+   script file "git am" internally uses.
+   This by itself is not useful until a second caller appears in the
+   future for "rebase -i" helper.
+
+ * The command-line completion script (in contrib/) learned to
+   complete "git cmd ^mas<HT>" to complete the negative end of
+   reference to "git cmd ^master".
+
+ * "git send-email" attempts to pick up valid e-mails from the
+   trailers, but people in real world write non-addresses there, like
+   "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
+   on the availability and vintage of Mail::Address perl module.
+
+ * The code that we have used for the past 10+ years to cycle
+   4-element ring buffers turns out to be not quite portable in
+   theoretical world.
+
+ * "git daemon" used fixed-length buffers to turn URL to the
+   repository the client asked for into the server side directory
+   path, using snprintf() to avoid overflowing these buffers, but
+   allowed possibly truncated paths to the directory.  This has been
+   tightened to reject such a request that causes overlong path to be
+   required to serve.
+
+ * Recent update to git-sh-setup (a library of shell functions that
+   are used by our in-tree scripted Porcelain commands) included
+   another shell library git-sh-i18n without specifying where it is,
+   relying on the $PATH.  This has been fixed to be more explicit by
+   prefixing $(git --exec-path) output in front.
+
+ * Fix for a racy false-positive test failure.
+
+ * Portability update and workaround for builds on recent Mac OS X.
+
+ * Update to the test framework made in 2.9 timeframe broke running
+   the tests under valgrind, which has been fixed.
+
+ * Improve the rule to convert "unsigned char [20]" into "struct
+   object_id *" in contrib/coccinelle/
+
+Also contains minor documentation updates and code clean-ups.
diff --git a/Documentation/RelNotes/2.12.0.txt b/Documentation/RelNotes/2.12.0.txt
new file mode 100644 (file)
index 0000000..01db423
--- /dev/null
@@ -0,0 +1,86 @@
+Git 2.12 Release Notes
+======================
+
+Backward compatibility notes.
+
+ * Use of an empty string that is used for 'everything matches' is
+   still warned and Git asks users to use a more explicit '.' for that
+   instead.  The hope is that existing users will not mind this
+   change, and eventually the warning can be turned into a hard error,
+   upgrading the deprecation into removal of this (mis)feature.  That
+   is not scheduled to happen in the upcoming release (yet).
+
+ * The historical argument order "git merge <msg> HEAD <commit>..."
+   has been deprecated for quite some time, and will be removed in the
+   upcoming release.
+
+
+Updates since v2.11
+-------------------
+
+UI, Workflows & Features
+
+ * Various updates to "git p4".
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ *
+
+
+Also contains various documentation updates and code clean-ups.
+
+ *
+
+
+Fixes since v2.10
+-----------------
+
+Unless otherwise noted, all the fixes since v2.9 in the maintenance
+track are contained in this release (see the maintenance releases'
+notes for details).
+
+ * We often decide if a session is interactive by checking if the
+   standard I/O streams are connected to a TTY, but isatty() that
+   comes with Windows incorrectly returned true if it is used on NUL
+   (i.e. an equivalent to /dev/null).  This has been fixed.
+   (merge cbb3f3c9b1 js/mingw-isatty later to maint).
+
+ * "git svn" did not work well with path components that are "0", and
+   some configuration variable it uses were not documented.
+   (merge ea9a93dcc2 ew/svn-fixes later to maint).
+
+ * "git rev-parse --symbolic" failed with a more recent notation like
+   "HEAD^-1" and "HEAD^!".
+   (merge a2e7b04c44 jk/rev-parse-symbolic-parents-fix later to maint).
+
+ * An empty directory in a working tree that can simply be nuked used
+   to interfere while merging or cherry-picking a change to create a
+   submodule directory there, which has been fixed..
+   (merge 5423d2e700 dt/empty-submodule-in-merge later to maint).
+
+ * The code in "git push" to compute if any commit being pushed in the
+   superproject binds a commit in a submodule that hasn't been pushed
+   out was overly inefficient, making it unusable even for a small
+   project that does not have any submodule but have a reasonable
+   number of refs.
+   (merge 250ab24ab3 hv/submodule-not-yet-pushed-fix later to maint).
+
+ * "git push --dry-run --recurse-submodule=on-demand" wasn't
+   "--dry-run" in the submodules.
+   (merge 0301c821c5 bw/push-dry-run later to maint).
+
+ * The output from "git worktree list" was made in readdir() order,
+   and was unstable.
+   (merge 4df1d4d466 nd/worktree-list-fixup later to maint).
+
+ * mergetool.<tool>.trustExitCode configuration variable did not apply
+   to built-in tools, but now it does.
+   (merge 2967284456 da/mergetool-trust-exit-code later to maint).
+
+ * "git p4" LFS support was broken when LFS stores an empty blob.
+   (merge d5eb3cf5e7 ls/p4-empty-file-on-lfs later to maint).
+
+ * Other minor doc, test and build updates and code cleanups.
+   (merge fa6ca11105 nd/qsort-in-merge-recursive later to maint).
+   (merge fa3142c919 ak/lazy-prereq-mktemp later to maint).
index a0ab66aae70db90bd18e14ec5bc5c95007b118f7..d51182a0606aa30168d640d2d821a3ec1bc2458d 100644 (file)
@@ -1891,6 +1891,16 @@ http.userAgent::
        of common USER_AGENT strings (but not including those like git/1.7.1).
        Can be overridden by the `GIT_HTTP_USER_AGENT` environment variable.
 
+http.followRedirects::
+       Whether git should follow HTTP redirects. If set to `true`, git
+       will transparently follow any redirect issued by a server it
+       encounters. If set to `false`, git will treat all redirects as
+       errors. If set to `initial`, git will follow redirects only for
+       the initial request to a remote, but not for subsequent
+       follow-up HTTP requests. Since git uses the redirected URL as
+       the base for the follow-up requests, this is generally
+       sufficient. The default is `initial`.
+
 http.<url>.*::
        Any of the http.* options above can be applied selectively to some URLs.
        For a config key to match a URL, each element of the config key is
index 1fe73448f3f5a3ff48f939924156771cabfc1f77..5516a47b5490ff1e79ead61cd2229946cc1a7fe2 100644 (file)
@@ -118,6 +118,10 @@ OPTIONS
        default to color output.
        Same as `--color=never`.
 
+-i::
+--ignore-case::
+       Sorting and filtering branches are case insensitive.
+
 --column[=<options>]::
 --no-column::
        Display branch listing in columns. See configuration variable
index f57e69bc83e33e3de3d02e339fd71066b93e7d4d..6d22974da6e8fea45881d6a2ce08e47cc2ed78b7 100644 (file)
@@ -79,6 +79,9 @@ OPTIONS
        Only list refs which contain the specified commit (HEAD if not
        specified).
 
+--ignore-case::
+       Sorting and filtering refs are case insensitive.
+
 FIELD NAMES
 -----------
 
index c83aaf39c33505ead72d523f278620fcc6f8f757..bae862ddcb9fe85765ea5bb126ced4fad8e98268 100644 (file)
@@ -303,6 +303,15 @@ These options can be used to modify 'git p4 submit' behavior.
        submit manually or revert.  This option always stops after the
        first (oldest) commit.  Git tags are not exported to p4.
 
+--shelve::
+       Instead of submitting create a series of shelved changelists.
+       After creating each shelve, the relevant files are reverted/deleted.
+       If you have multiple commits pending multiple shelves will be created.
+
+--update-shelve CHANGELIST::
+       Update an existing shelved changelist with this commit. Implies
+       --shelve.
+
 --conflict=(ask|skip|quit)::
        Conflicts can occur when applying a commit to p4.  When this
        happens, the default behavior ("ask") is to prompt whether to
@@ -467,6 +476,10 @@ git-p4.client::
        Client specified as an option to all p4 commands, with
        '-c <client>', including the client spec.
 
+git-p4.retries::
+       Specifies the number of times to retry a p4 command (notably,
+       'p4 sync') if the network times out. The default value is 3.
+
 Clone and sync variables
 ~~~~~~~~~~~~~~~~~~~~~~~~
 git-p4.syncFromOrigin::
index 5f9e65b0c4de117942babf0a14d255922d02b4ad..9bee9b0c4c53692bab569577d584797c0bd9e217 100644 (file)
@@ -664,13 +664,19 @@ creating the branch or tag.
        When retrieving svn commits into Git (as part of 'fetch', 'rebase', or
        'dcommit' operations), look for the first `From:` or `Signed-off-by:` line
        in the log message and use that as the author string.
++
+[verse]
+config key: svn.useLogAuthor
+
 --add-author-from::
        When committing to svn from Git (as part of 'commit-diff', 'set-tree' or 'dcommit'
        operations), if the existing log message doesn't already have a
        `From:` or `Signed-off-by:` line, append a `From:` line based on the
        Git commit's author string.  If you use this, then `--use-log-author`
        will retrieve a valid author string for all commits.
-
++
+[verse]
+config key: svn.addAuthorFrom
 
 ADVANCED OPTIONS
 ----------------
index 80019c584b11b35b2b14da83a31f326634bc6708..76cfe40d969bc5f37dce674f43857ec89f25ae67 100644 (file)
@@ -108,6 +108,10 @@ OPTIONS
        variable if it exists, or lexicographic order otherwise. See
        linkgit:git-config[1].
 
+-i::
+--ignore-case::
+       Sorting and filtering tags are case insensitive.
+
 --column[=<options>]::
 --no-column::
        Display tag listing in columns. See configuration variable
index ab7215eee2b3e098ab505170f7850548fb8f3f27..af191c51b1d63d995cfba0784de36d98a23de838 100644 (file)
@@ -44,6 +44,11 @@ unreleased) version of Git, that is available from the 'master'
 branch of the `git.git` repository.
 Documentation for older releases are available here:
 
+* link:v2.11.0/git.html[documentation for release 2.11]
+
+* release notes for
+  link:RelNotes/2.11.0.txt[2.11].
+
 * link:v2.10.2/git.html[documentation for release 2.10.2]
 
 * release notes for
index 092bd838b51ee1963d9350c885e464cb4b2fcce3..f95b04bb365fb83c0366a7206ee700ba3f898f6c 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=GIT-VERSION-FILE
-DEF_VER=v2.11.0-rc3
+DEF_VER=v2.11.GIT
 
 LF='
 '
@@ -12,7 +12,7 @@ if test -f version
 then
        VN=$(cat version) || VN="$DEF_VER"
 elif test -d ${GIT_DIR:-.git} -o -f .git &&
-       VN=$(git describe --match "v[0-9]*" --abbrev=7 HEAD 2>/dev/null) &&
+       VN=$(git describe --match "v[0-9]*" HEAD 2>/dev/null) &&
        case "$VN" in
        *$LF*) (exit 1) ;;
        v[0-9]*)
index b54330f7cdb37630dc47d6bdb71e847b8a947c17..d09c3d51093ac9e4da65e8a127b17ac9023520b5 120000 (symlink)
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/2.11.0.txt
\ No newline at end of file
+Documentation/RelNotes/2.12.0.txt
\ No newline at end of file
index 21bc6daa4393cb33994ba2eb305354e56d166cc0..8e63c40d274d7693b0c41e702cbe9ed03b1d12ae 100644 (file)
--- a/bisect.c
+++ b/bisect.c
@@ -747,7 +747,7 @@ static void handle_bad_merge_base(void)
                exit(3);
        }
 
-       fprintf(stderr, _("Some %s revs are not ancestor of the %s rev.\n"
+       fprintf(stderr, _("Some %s revs are not ancestors of the %s rev.\n"
                "git bisect cannot work properly in this case.\n"
                "Maybe you mistook %s and %s revs?\n"),
                term_good, term_bad, term_good, term_bad);
index 0d459b3cfe507b3906760fbea7f35e6191366057..c431cbf6a9f08dedc791317cc1a357730bdf3515 100644 (file)
--- a/branch.c
+++ b/branch.c
@@ -348,7 +348,7 @@ void die_if_checked_out(const char *branch, int ignore_current_worktree)
 int replace_each_worktree_head_symref(const char *oldref, const char *newref)
 {
        int ret = 0;
-       struct worktree **worktrees = get_worktrees();
+       struct worktree **worktrees = get_worktrees(0);
        int i;
 
        for (i = 0; worktrees[i]; i++) {
index 60cc5c8e8da08e628d05f245003bc558657f6237..9d30f55b0b83cfc09294e2cb7cabdc9aa72e2508 100644 (file)
@@ -512,15 +512,6 @@ static void print_ref_list(struct ref_filter *filter, struct ref_sorting *sortin
        if (filter->verbose)
                maxwidth = calc_maxwidth(&array, strlen(remote_prefix));
 
-       /*
-        * If no sorting parameter is given then we default to sorting
-        * by 'refname'. This would give us an alphabetically sorted
-        * array with the 'HEAD' ref at the beginning followed by
-        * local branches 'refs/heads/...' and finally remote-tacking
-        * branches 'refs/remotes/...'.
-        */
-       if (!sorting)
-               sorting = ref_default_sorting();
        ref_array_sort(sorting, &array);
 
        for (i = 0; i < array.nr; i++)
@@ -531,7 +522,7 @@ static void print_ref_list(struct ref_filter *filter, struct ref_sorting *sortin
 
 static void reject_rebase_or_bisect_branch(const char *target)
 {
-       struct worktree **worktrees = get_worktrees();
+       struct worktree **worktrees = get_worktrees(0);
        int i;
 
        for (i = 0; worktrees[i]; i++) {
@@ -645,6 +636,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
        const char *new_upstream = NULL;
        enum branch_track track;
        struct ref_filter filter;
+       int icase = 0;
        static struct ref_sorting *sorting = NULL, **sorting_tail = &sorting;
 
        struct option options[] = {
@@ -686,6 +678,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
                        OPTION_CALLBACK, 0, "points-at", &filter.points_at, N_("object"),
                        N_("print only branches of the object"), 0, parse_opt_object_name
                },
+               OPT_BOOL('i', "ignore-case", &icase, N_("sorting and filtering are case insensitive")),
                OPT_END(),
        };
 
@@ -723,6 +716,8 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 
        if (filter.abbrev == -1)
                filter.abbrev = DEFAULT_ABBREV;
+       filter.ignore_case = icase;
+
        finalize_colopts(&colopts, -1);
        if (filter.verbose) {
                if (explicitly_enable_column(colopts))
@@ -744,6 +739,16 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
                if ((filter.kind & FILTER_REFS_BRANCHES) && filter.detached)
                        filter.kind |= FILTER_REFS_DETACHED_HEAD;
                filter.name_patterns = argv;
+               /*
+                * If no sorting parameter is given then we default to sorting
+                * by 'refname'. This would give us an alphabetically sorted
+                * array with the 'HEAD' ref at the beginning followed by
+                * local branches 'refs/heads/...' and finally remote-tacking
+                * branches 'refs/remotes/...'.
+                */
+               if (!sorting)
+                       sorting = ref_default_sorting();
+               sorting->ignore_case = icase;
                print_ref_list(&filter, sorting);
                print_columns(&output, colopts, NULL);
                string_list_clear(&output, 0);
index 6c76a6ed66fef567ca06e3e864b37fc3bed151d5..e3cb8082f7e83b4f233d55bfba78417ebdada114 100644 (file)
@@ -99,7 +99,7 @@ static struct option builtin_clone_options[] = {
        OPT_STRING(0, "shallow-since", &option_since, N_("time"),
                    N_("create a shallow clone since a specific time")),
        OPT_STRING_LIST(0, "shallow-exclude", &option_not, N_("revision"),
-                       N_("deepen history of shallow clone by excluding rev")),
+                       N_("deepen history of shallow clone, excluding rev")),
        OPT_BOOL(0, "single-branch", &option_single_branch,
                    N_("clone only one branch, HEAD or --branch")),
        OPT_BOOL(0, "shallow-submodules", &option_shallow_submodules,
index 8976c3d29bf817be789f983697f7052fe5769f39..887ccc7577a12a16b40e67eb2819356e888f1965 100644 (file)
@@ -790,7 +790,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
                strbuf_stripspace(&sb, 0);
 
        if (signoff)
-               append_signoff(&sb, ignore_non_trailer(&sb), 0);
+               append_signoff(&sb, ignore_non_trailer(sb.buf, sb.len), 0);
 
        if (fwrite(sb.buf, 1, sb.len, s->fp) < sb.len)
                die_errno(_("could not write commit template"));
index b6a5597cbf332fc56b5feabfd29d03c98d4d6686..fc74c8471cec5d1d1855c7d4362e465e44259e6c 100644 (file)
@@ -122,7 +122,7 @@ static struct option builtin_fetch_options[] = {
        OPT_STRING(0, "shallow-since", &deepen_since, N_("time"),
                   N_("deepen history of shallow repository based on time")),
        OPT_STRING_LIST(0, "shallow-exclude", &deepen_not, N_("revision"),
-                       N_("deepen history of shallow clone by excluding rev")),
+                       N_("deepen history of shallow clone, excluding rev")),
        OPT_INTEGER(0, "deepen", &deepen_relative,
                    N_("deepen history of shallow clone")),
        { OPTION_SET_INT, 0, "unshallow", &unshallow, NULL,
index 4e9f6c29bf1e0c1cc7b44548f49077c2e4a81ec8..df41fa035004e1cf8a0c7c9ff09081a47b944f38 100644 (file)
@@ -18,7 +18,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
        int i;
        const char *format = "%(objectname) %(objecttype)\t%(refname)";
        struct ref_sorting *sorting = NULL, **sorting_tail = &sorting;
-       int maxcount = 0, quote_style = 0;
+       int maxcount = 0, quote_style = 0, icase = 0;
        struct ref_array array;
        struct ref_filter filter;
 
@@ -43,6 +43,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
                OPT_MERGED(&filter, N_("print only refs that are merged")),
                OPT_NO_MERGED(&filter, N_("print only refs that are not merged")),
                OPT_CONTAINS(&filter.with_commit, N_("print only refs which contain the commit")),
+               OPT_BOOL(0, "ignore-case", &icase, N_("sorting and filtering are case insensitive")),
                OPT_END(),
        };
 
@@ -63,6 +64,8 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
 
        if (!sorting)
                sorting = ref_default_sorting();
+       sorting->ignore_case = icase;
+       filter.ignore_case = icase;
 
        /* for warn_ambiguous_refs */
        git_config(git_default_config, NULL);
index e6b3879a5b90034937dfb8eee32f8d2981f6bb53..6b97cbdbe9444d72d575c149678e4b609a154842 100644 (file)
@@ -795,8 +795,8 @@ static char *refuse_unconfigured_deny_msg =
           "with what you pushed, and will require 'git reset --hard' to match\n"
           "the work tree to HEAD.\n"
           "\n"
-          "You can set 'receive.denyCurrentBranch' configuration variable to\n"
-          "'ignore' or 'warn' in the remote repository to allow pushing into\n"
+          "You can set the 'receive.denyCurrentBranch' configuration variable\n"
+          "to 'ignore' or 'warn' in the remote repository to allow pushing into\n"
           "its current branch; however, this is not recommended unless you\n"
           "arranged to update its work tree to match what you pushed in some\n"
           "other way.\n"
index cfb0f1510c59674abe68fb67ff45142b5c92ac89..ff13e59e1dbd200b6e7cf7d1c508b620b19e8cc7 100644 (file)
@@ -342,11 +342,16 @@ static int try_parent_shorthands(const char *arg)
        for (parents = commit->parents, parent_number = 1;
             parents;
             parents = parents->next, parent_number++) {
+               char *name = NULL;
+
                if (exclude_parent && parent_number != exclude_parent)
                        continue;
 
+               if (symbolic)
+                       name = xstrfmt("%s^%d", arg, parent_number);
                show_rev(include_parents ? NORMAL : REVERSED,
-                        parents->item->object.oid.hash, arg);
+                        parents->item->object.oid.hash, name);
+               free(name);
        }
 
        *dotdot = '^';
index 50e4ae5678c21f348c3ce0e0d0662c9d5f995847..73df728114e81ac87dd1b84604947d739d948fb6 100644 (file)
@@ -335,6 +335,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
        struct ref_filter filter;
        static struct ref_sorting *sorting = NULL, **sorting_tail = &sorting;
        const char *format = NULL;
+       int icase = 0;
        struct option options[] = {
                OPT_CMDMODE('l', "list", &cmdmode, N_("list tag names"), 'l'),
                { OPTION_INTEGER, 'n', NULL, &filter.lines, N_("n"),
@@ -370,6 +371,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
                        N_("print only tags of the object"), 0, parse_opt_object_name
                },
                OPT_STRING(  0 , "format", &format, N_("format"), N_("format to use for the output")),
+               OPT_BOOL('i', "ignore-case", &icase, N_("sorting and filtering are case insensitive")),
                OPT_END()
        };
 
@@ -401,6 +403,8 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
        }
        if (!sorting)
                sorting = ref_default_sorting();
+       sorting->ignore_case = icase;
+       filter.ignore_case = icase;
        if (cmdmode == 'l') {
                int ret;
                if (column_active(colopts)) {
index 5c4854d3e4a679f59f4a7db7cb3f37bd0e210622..9a97e37a3fa53e730f0963f8f00bbca9f6d6efc6 100644 (file)
@@ -388,7 +388,7 @@ static void show_worktree_porcelain(struct worktree *wt)
                printf("HEAD %s\n", sha1_to_hex(wt->head_sha1));
                if (wt->is_detached)
                        printf("detached\n");
-               else
+               else if (wt->head_ref)
                        printf("branch %s\n", wt->head_ref);
        }
        printf("\n");
@@ -406,10 +406,12 @@ static void show_worktree(struct worktree *wt, int path_maxlen, int abbrev_len)
        else {
                strbuf_addf(&sb, "%-*s ", abbrev_len,
                                find_unique_abbrev(wt->head_sha1, DEFAULT_ABBREV));
-               if (!wt->is_detached)
+               if (wt->is_detached)
+                       strbuf_addstr(&sb, "(detached HEAD)");
+               else if (wt->head_ref)
                        strbuf_addf(&sb, "[%s]", shorten_unambiguous_ref(wt->head_ref, 0));
                else
-                       strbuf_addstr(&sb, "(detached HEAD)");
+                       strbuf_addstr(&sb, "(error)");
        }
        printf("%s\n", sb.buf);
 
@@ -445,7 +447,7 @@ static int list(int ac, const char **av, const char *prefix)
        if (ac)
                usage_with_options(worktree_usage, options);
        else {
-               struct worktree **worktrees = get_worktrees();
+               struct worktree **worktrees = get_worktrees(GWT_SORT_LINKED);
                int path_maxlen = 0, abbrev = DEFAULT_ABBREV, i;
 
                if (!porcelain)
@@ -476,7 +478,7 @@ static int lock_worktree(int ac, const char **av, const char *prefix)
        if (ac != 1)
                usage_with_options(worktree_usage, options);
 
-       worktrees = get_worktrees();
+       worktrees = get_worktrees(0);
        wt = find_worktree(worktrees, prefix, av[0]);
        if (!wt)
                die(_("'%s' is not a working tree"), av[0]);
@@ -509,7 +511,7 @@ static int unlock_worktree(int ac, const char **av, const char *prefix)
        if (ac != 1)
                usage_with_options(worktree_usage, options);
 
-       worktrees = get_worktrees();
+       worktrees = get_worktrees(0);
        wt = find_worktree(worktrees, prefix, av[0]);
        if (!wt)
                die(_("'%s' is not a working tree"), av[0]);
index 856fd4aeeff654c45ba0a6149f9db2c22806e0cb..2cf85158b4899b664a3cbae8d0777f5a9e473318 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -1649,7 +1649,7 @@ const char *find_commit_header(const char *msg, const char *key, size_t *out_len
 }
 
 /*
- * Inspect sb and determine the true "end" of the log message, in
+ * Inspect the given string and determine the true "end" of the log message, in
  * order to find where to put a new Signed-off-by: line.  Ignored are
  * trailing comment lines and blank lines, and also the traditional
  * "Conflicts:" block that is not commented out, so that we can use
@@ -1659,37 +1659,37 @@ const char *find_commit_header(const char *msg, const char *key, size_t *out_len
  * Returns the number of bytes from the tail to ignore, to be fed as
  * the second parameter to append_signoff().
  */
-int ignore_non_trailer(struct strbuf *sb)
+int ignore_non_trailer(const char *buf, size_t len)
 {
        int boc = 0;
        int bol = 0;
        int in_old_conflicts_block = 0;
 
-       while (bol < sb->len) {
-               char *next_line;
+       while (bol < len) {
+               const char *next_line = memchr(buf + bol, '\n', len - bol);
 
-               if (!(next_line = memchr(sb->buf + bol, '\n', sb->len - bol)))
-                       next_line = sb->buf + sb->len;
+               if (!next_line)
+                       next_line = buf + len;
                else
                        next_line++;
 
-               if (sb->buf[bol] == comment_line_char || sb->buf[bol] == '\n') {
+               if (buf[bol] == comment_line_char || buf[bol] == '\n') {
                        /* is this the first of the run of comments? */
                        if (!boc)
                                boc = bol;
                        /* otherwise, it is just continuing */
-               } else if (starts_with(sb->buf + bol, "Conflicts:\n")) {
+               } else if (starts_with(buf + bol, "Conflicts:\n")) {
                        in_old_conflicts_block = 1;
                        if (!boc)
                                boc = bol;
-               } else if (in_old_conflicts_block && sb->buf[bol] == '\t') {
+               } else if (in_old_conflicts_block && buf[bol] == '\t') {
                        ; /* a pathname in the conflicts block */
                } else if (boc) {
                        /* the previous was not trailing comment */
                        boc = 0;
                        in_old_conflicts_block = 0;
                }
-               bol = next_line - sb->buf;
+               bol = next_line - buf;
        }
-       return boc ? sb->len - boc : 0;
+       return boc ? len - boc : 0;
 }
index afd14f318c0c4d18f3a03781d3229f2fdc0f64c6..9c12abb91110151e3a982c4d8baf8753d0382441 100644 (file)
--- a/commit.h
+++ b/commit.h
@@ -355,7 +355,7 @@ extern const char *find_commit_header(const char *msg, const char *key,
                                      size_t *out_len);
 
 /* Find the end of the log message, the right place for a new trailer. */
-extern int ignore_non_trailer(struct strbuf *sb);
+extern int ignore_non_trailer(const char *buf, size_t len);
 
 typedef void (*each_mergetag_fn)(struct commit *commit, struct commit_extra_header *extra,
                                 void *cb_data);
index 44a29e8b13cb5203e2d35c99b8e2b5fec49f6981..c654f95551c33d6b346ae7fe43a6cac987dd6b75 100644 (file)
@@ -33,7 +33,7 @@ int main(int argc, const char **argv)
 
        git_setup_gettext();
 
-       argv[0] = git_extract_argv0_path(argv[0]);
+       git_extract_argv0_path(argv[0]);
 
        restore_sigpipe_to_default();
 
index 034fff9479d03d2a2e3c7017a4fe4131461f0ec6..33501695550accdb08368aa867b9addb25c90d5f 100644 (file)
@@ -384,6 +384,9 @@ int mingw_raise(int sig);
  * ANSI emulation wrappers
  */
 
+int winansi_isatty(int fd);
+#define isatty winansi_isatty
+
 void winansi_init(void);
 HANDLE winansi_get_osfhandle(int fd);
 
index db4a5b0a37d687218ab085f22b57eb35e28893b8..cb725fb02f6e4f48c4f314c3c6c5e8535aa6eda8 100644 (file)
@@ -7,6 +7,9 @@
 #include <wingdi.h>
 #include <winreg.h>
 
+/* In this file, we actually want to use Windows' own isatty(). */
+#undef isatty
+
 /*
  ANSI codes used by git: m, K
 
@@ -570,6 +573,36 @@ static void detect_msys_tty(int fd)
 
 #endif
 
+int winansi_isatty(int fd)
+{
+       int res = isatty(fd);
+
+       if (res) {
+               /*
+                * Make sure that /dev/null is not fooling Git into believing
+                * that we are connected to a terminal, as "_isatty() returns a
+                * nonzero value if the descriptor is associated with a
+                * character device."; for more information, see
+                *
+                * https://msdn.microsoft.com/en-us/library/f4s0ddew.aspx
+                */
+               HANDLE handle = (HANDLE)_get_osfhandle(fd);
+               if (fd == STDIN_FILENO) {
+                       DWORD dummy;
+
+                       if (!GetConsoleMode(handle, &dummy))
+                               res = 0;
+               } else if (fd == STDOUT_FILENO || fd == STDERR_FILENO) {
+                       CONSOLE_SCREEN_BUFFER_INFO dummy;
+
+                       if (!GetConsoleScreenBufferInfo(handle, &dummy))
+                               res = 0;
+               }
+       }
+
+       return res;
+}
+
 void winansi_init(void)
 {
        int con1, con2;
index be91358462a72c9d5a6c02f2b0e44585a76d4783..4e17e45ed265b3f4861d1b7a1e86edaa4df3b1ac 100644 (file)
--- a/convert.c
+++ b/convert.c
@@ -279,15 +279,16 @@ static int crlf_to_git(const char *path, const char *src, size_t len,
                if (convert_is_binary(len, &stats))
                        return 0;
                /*
-                * If the file in the index has any CR in it, do not convert.
-                * This is the new safer autocrlf handling.
+                * If the file in the index has any CR in it, do not
+                * convert.  This is the new safer autocrlf handling,
+                * unless we want to renormalize in a merge or
+                * cherry-pick.
                 */
-               if (checksafe == SAFE_CRLF_RENORMALIZE)
-                       checksafe = SAFE_CRLF_FALSE;
-               else if (has_cr_in_index(path))
+               if ((checksafe != SAFE_CRLF_RENORMALIZE) && has_cr_in_index(path))
                        convert_crlf_into_lf = 0;
        }
-       if (checksafe && len) {
+       if ((checksafe == SAFE_CRLF_WARN ||
+           (checksafe == SAFE_CRLF_FAIL)) && len) {
                struct text_stat new_stats;
                memcpy(&new_stats, &stats, sizeof(new_stats));
                /* simulate "git add" */
index 9d5703a157fe8e9d8396e0771798e54dc5eea6eb..19ac2146d0c49be8f5ef3739664dc3105544b4c2 100644 (file)
@@ -38,21 +38,17 @@ char *system_path(const char *path)
        return strbuf_detach(&d, NULL);
 }
 
-const char *git_extract_argv0_path(const char *argv0)
+void git_extract_argv0_path(const char *argv0)
 {
        const char *slash;
 
        if (!argv0 || !*argv0)
-               return NULL;
+               return;
 
        slash = find_last_dir_sep(argv0);
 
-       if (slash) {
+       if (slash)
                argv0_path = xstrndup(argv0, slash - argv0);
-               return slash + 1;
-       }
-
-       return argv0;
 }
 
 void git_set_argv_exec_path(const char *exec_path)
index 1f6b43378ba3866c07578b2222154e3a760440d1..ff0b48048a6ba82827b4d441654c34c21cfb7b9a 100644 (file)
@@ -4,7 +4,7 @@
 struct argv_array;
 
 extern void git_set_argv_exec_path(const char *exec_path);
-extern const char *git_extract_argv0_path(const char *path);
+extern void git_extract_argv0_path(const char *path);
 extern const char *git_exec_path(void);
 extern void setup_path(void);
 extern const char **prepare_git_cmd(struct argv_array *out, const char **argv);
index 9abd00be212b3e55883c0f9fa0487c7b31a6039f..9a8b97a2aba9aa9fabb095558c03cb8f27df3d50 100644 (file)
@@ -125,16 +125,7 @@ setup_user_tool () {
        }
 
        merge_cmd () {
-               trust_exit_code=$(git config --bool \
-                       "mergetool.$1.trustExitCode" || echo false)
-               if test "$trust_exit_code" = "false"
-               then
-                       touch "$BACKUP"
-                       ( eval $merge_tool_cmd )
-                       check_unchanged
-               else
-                       ( eval $merge_tool_cmd )
-               fi
+               ( eval $merge_tool_cmd )
        }
 }
 
@@ -162,6 +153,28 @@ setup_tool () {
                echo "$1"
        }
 
+       # Most tools' exit codes cannot be trusted, so By default we ignore
+       # their exit code and check the merged file's modification time in
+       # check_unchanged() to determine whether or not the merge was
+       # successful.  The return value from run_merge_cmd, by default, is
+       # determined by check_unchanged().
+       #
+       # When a tool's exit code can be trusted then the return value from
+       # run_merge_cmd is simply the tool's exit code, and check_unchanged()
+       # is not called.
+       #
+       # The return value of exit_code_trustable() tells us whether or not we
+       # can trust the tool's exit code.
+       #
+       # User-defined and built-in tools default to false.
+       # Built-in tools advertise that their exit code is trustable by
+       # redefining exit_code_trustable() to true.
+
+       exit_code_trustable () {
+               false
+       }
+
+
        if ! test -f "$MERGE_TOOLS_DIR/$tool"
        then
                setup_user_tool
@@ -197,6 +210,19 @@ get_merge_tool_cmd () {
        fi
 }
 
+trust_exit_code () {
+       if git config --bool "mergetool.$1.trustExitCode"
+       then
+               :; # OK
+       elif exit_code_trustable
+       then
+               echo true
+       else
+               echo false
+       fi
+}
+
+
 # Entry point for running tools
 run_merge_tool () {
        # If GIT_PREFIX is empty then we cannot use it in tools
@@ -225,7 +251,15 @@ run_diff_cmd () {
 
 # Run a either a configured or built-in merge tool
 run_merge_cmd () {
-       merge_cmd "$1"
+       mergetool_trust_exit_code=$(trust_exit_code "$1")
+       if test "$mergetool_trust_exit_code" = "true"
+       then
+               merge_cmd "$1"
+       else
+               touch "$BACKUP"
+               merge_cmd "$1"
+               check_unchanged
+       fi
 }
 
 list_merge_tool_candidates () {
index fd5ca524626c40823371422e52a3457fd1d45579..13bf44768b352c2cd5b34e718bdc7aaef7d6014d 100755 (executable)
--- a/git-p4.py
+++ b/git-p4.py
@@ -78,6 +78,11 @@ def p4_build_cmd(cmd):
     if len(client) > 0:
         real_cmd += ["-c", client]
 
+    retries = gitConfigInt("git-p4.retries")
+    if retries is None:
+        # Perform 3 retries by default
+        retries = 3
+    real_cmd += ["-r", str(retries)]
 
     if isinstance(cmd,basestring):
         real_cmd = ' '.join(real_cmd) + ' ' + cmd
@@ -262,6 +267,10 @@ def p4_revert(f):
 def p4_reopen(type, f):
     p4_system(["reopen", "-t", type, wildcard_encode(f)])
 
+def p4_reopen_in_change(changelist, files):
+    cmd = ["reopen", "-c", str(changelist)] + files
+    p4_system(cmd)
+
 def p4_move(src, dest):
     p4_system(["move", "-k", wildcard_encode(src), wildcard_encode(dest)])
 
@@ -1005,18 +1014,20 @@ def processContent(self, git_mode, relPath, contents):
            steps."""
         if self.exceedsLargeFileThreshold(relPath, contents) or self.hasLargeFileExtension(relPath):
             contentTempFile = self.generateTempFile(contents)
-            (git_mode, contents, localLargeFile) = self.generatePointer(contentTempFile)
-
-            # Move temp file to final location in large file system
-            largeFileDir = os.path.dirname(localLargeFile)
-            if not os.path.isdir(largeFileDir):
-                os.makedirs(largeFileDir)
-            shutil.move(contentTempFile, localLargeFile)
-            self.addLargeFile(relPath)
-            if gitConfigBool('git-p4.largeFilePush'):
-                self.pushFile(localLargeFile)
-            if verbose:
-                sys.stderr.write("%s moved to large file system (%s)\n" % (relPath, localLargeFile))
+            (pointer_git_mode, contents, localLargeFile) = self.generatePointer(contentTempFile)
+            if pointer_git_mode:
+                git_mode = pointer_git_mode
+            if localLargeFile:
+                # Move temp file to final location in large file system
+                largeFileDir = os.path.dirname(localLargeFile)
+                if not os.path.isdir(largeFileDir):
+                    os.makedirs(largeFileDir)
+                shutil.move(contentTempFile, localLargeFile)
+                self.addLargeFile(relPath)
+                if gitConfigBool('git-p4.largeFilePush'):
+                    self.pushFile(localLargeFile)
+                if verbose:
+                    sys.stderr.write("%s moved to large file system (%s)\n" % (relPath, localLargeFile))
         return (git_mode, contents)
 
 class MockLFS(LargeFileSystem):
@@ -1056,6 +1067,9 @@ def generatePointer(self, contentFile):
            the actual content. Return also the new location of the actual
            content.
            """
+        if os.path.getsize(contentFile) == 0:
+            return (None, '', None)
+
         pointerProcess = subprocess.Popen(
             ['git', 'lfs', 'pointer', '--file=' + contentFile],
             stdout=subprocess.PIPE
@@ -1289,6 +1303,12 @@ def __init__(self):
                 optparse.make_option("--conflict", dest="conflict_behavior",
                                      choices=self.conflict_behavior_choices),
                 optparse.make_option("--branch", dest="branch"),
+                optparse.make_option("--shelve", dest="shelve", action="store_true",
+                                     help="Shelve instead of submit. Shelved files are reverted, "
+                                     "restoring the workspace to the state before the shelve"),
+                optparse.make_option("--update-shelve", dest="update_shelve", action="store", type="int",
+                                     metavar="CHANGELIST",
+                                     help="update an existing shelved changelist, implies --shelve")
         ]
         self.description = "Submit changes from git to the perforce depot."
         self.usage += " [name of git branch to submit into perforce depot]"
@@ -1296,6 +1316,8 @@ def __init__(self):
         self.detectRenames = False
         self.preserveUser = gitConfigBool("git-p4.preserveUser")
         self.dry_run = False
+        self.shelve = False
+        self.update_shelve = None
         self.prepare_p4_only = False
         self.conflict_behavior = None
         self.isWindows = (platform.system() == "Windows")
@@ -1464,7 +1486,7 @@ def canChangeChangelists(self):
                     return 1
         return 0
 
-    def prepareSubmitTemplate(self):
+    def prepareSubmitTemplate(self, changelist=None):
         """Run "p4 change -o" to grab a change specification template.
            This does not use "p4 -G", as it is nice to keep the submission
            template in original order, since a human might edit it.
@@ -1476,7 +1498,11 @@ def prepareSubmitTemplate(self):
 
         template = ""
         inFilesSection = False
-        for line in p4_read_pipe_lines(['change', '-o']):
+        args = ['change', '-o']
+        if changelist:
+            args.append(str(changelist))
+
+        for line in p4_read_pipe_lines(args):
             if line.endswith("\r\n"):
                 line = line[:-2] + "\n"
             if inFilesSection:
@@ -1575,11 +1601,14 @@ def applyCommit(self, id):
         editedFiles = set()
         pureRenameCopy = set()
         filesToChangeExecBit = {}
+        all_files = list()
 
         for line in diff:
             diff = parseDiffTreeEntry(line)
             modifier = diff['status']
             path = diff['src']
+            all_files.append(path)
+
             if modifier == "M":
                 p4_edit(path)
                 if isModeExecChanged(diff['src_mode'], diff['dst_mode']):
@@ -1705,6 +1734,10 @@ def applyCommit(self, id):
             mode = filesToChangeExecBit[f]
             setP4ExecBit(f, mode)
 
+        if self.update_shelve:
+            print("all_files = %s" % str(all_files))
+            p4_reopen_in_change(self.update_shelve, all_files)
+
         #
         # Build p4 change description, starting with the contents
         # of the git commit message.
@@ -1713,7 +1746,7 @@ def applyCommit(self, id):
         logMessage = logMessage.strip()
         (logMessage, jobs) = self.separate_jobs_from_description(logMessage)
 
-        template = self.prepareSubmitTemplate()
+        template = self.prepareSubmitTemplate(self.update_shelve)
         submitTemplate = self.prepareLogMessage(template, logMessage, jobs)
 
         if self.preserveUser:
@@ -1785,7 +1818,17 @@ def applyCommit(self, id):
                 if self.isWindows:
                     message = message.replace("\r\n", "\n")
                 submitTemplate = message[:message.index(separatorLine)]
-                p4_write_pipe(['submit', '-i'], submitTemplate)
+
+                if self.update_shelve:
+                    p4_write_pipe(['shelve', '-r', '-i'], submitTemplate)
+                elif self.shelve:
+                    p4_write_pipe(['shelve', '-i'], submitTemplate)
+                else:
+                    p4_write_pipe(['submit', '-i'], submitTemplate)
+                    # The rename/copy happened by applying a patch that created a
+                    # new file.  This leaves it writable, which confuses p4.
+                    for f in pureRenameCopy:
+                        p4_sync(f, "-f")
 
                 if self.preserveUser:
                     if p4User:
@@ -1795,23 +1838,20 @@ def applyCommit(self, id):
                         changelist = self.lastP4Changelist()
                         self.modifyChangelistUser(changelist, p4User)
 
-                # The rename/copy happened by applying a patch that created a
-                # new file.  This leaves it writable, which confuses p4.
-                for f in pureRenameCopy:
-                    p4_sync(f, "-f")
                 submitted = True
 
         finally:
             # skip this patch
-            if not submitted:
-                print "Submission cancelled, undoing p4 changes."
-                for f in editedFiles:
+            if not submitted or self.shelve:
+                if self.shelve:
+                    print ("Reverting shelved files.")
+                else:
+                    print ("Submission cancelled, undoing p4 changes.")
+                for f in editedFiles | filesToDelete:
                     p4_revert(f)
                 for f in filesToAdd:
                     p4_revert(f)
                     os.remove(f)
-                for f in filesToDelete:
-                    p4_revert(f)
 
         os.remove(fileName)
         return submitted
@@ -1907,6 +1947,9 @@ def run(self, args):
         if len(self.origin) == 0:
             self.origin = upstream
 
+        if self.update_shelve:
+            self.shelve = True
+
         if self.preserveUser:
             if not self.canChangeChangelists():
                 die("Cannot preserve user names without p4 super-user or admin permissions")
@@ -2067,13 +2110,13 @@ def run(self, args):
                         break
 
         chdir(self.oldWorkingDirectory)
-
+        shelved_applied = "shelved" if self.shelve else "applied"
         if self.dry_run:
             pass
         elif self.prepare_p4_only:
             pass
         elif len(commits) == len(applied):
-            print "All commits applied!"
+            print ("All commits {0}!".format(shelved_applied))
 
             sync = P4Sync()
             if self.branch:
@@ -2085,9 +2128,9 @@ def run(self, args):
 
         else:
             if len(applied) == 0:
-                print "No commits applied."
+                print ("No commits {0}.".format(shelved_applied))
             else:
-                print "Applied only the commits marked with '*':"
+                print ("{0} only the commits marked with '*':".format(shelved_applied.capitalize()))
                 for c in commits:
                     if c in applied:
                         star = "*"
index 4546abaaef3dab9e0c4dc719f111682f1cb1dd57..10c284d1aa2273a3dfe5cc39f1d6738830d02462 100755 (executable)
@@ -115,7 +115,7 @@ create_stash () {
                        git read-tree --index-output="$TMPindex" -m $i_tree &&
                        GIT_INDEX_FILE="$TMPindex" &&
                        export GIT_INDEX_FILE &&
-                       git diff --name-only -z HEAD -- >"$TMP-stagenames" &&
+                       git diff-index --name-only -z HEAD -- >"$TMP-stagenames" &&
                        git update-index -z --add --remove --stdin <"$TMP-stagenames" &&
                        git write-tree &&
                        rm -f "$TMPindex"
diff --git a/git.c b/git.c
index e8b2baf2d15c8a68553780c3137c55c3fea99b11..dce529fcbfd6e5d8526b0e88b43f6c568876ce9d 100644 (file)
--- a/git.c
+++ b/git.c
@@ -654,6 +654,11 @@ int cmd_main(int argc, const char **argv)
        cmd = argv[0];
        if (!cmd)
                cmd = "git-help";
+       else {
+               const char *slash = find_last_dir_sep(cmd);
+               if (slash)
+                       cmd = slash + 1;
+       }
 
        trace_command_performance(argv);
 
index 0b2425531a8120fb29f37ee473a1e6e974959605..c2f81cd6af9d9da0f10fa2e657e6fe62bdbdc4bc 100644 (file)
@@ -274,9 +274,8 @@ static void process_alternates_response(void *callback_data)
                                struct strbuf target = STRBUF_INIT;
                                strbuf_add(&target, base, serverlen);
                                strbuf_add(&target, data + i, posn - i - 7);
-                               if (walker->get_verbosely)
-                                       fprintf(stderr, "Also look at %s\n",
-                                               target.buf);
+                               warning("adding alternate object store: %s",
+                                       target.buf);
                                newalt = xmalloc(sizeof(*newalt));
                                newalt->next = NULL;
                                newalt->base = strbuf_detach(&target, NULL);
@@ -302,6 +301,9 @@ static void fetch_alternates(struct walker *walker, const char *base)
        struct alternates_request alt_req;
        struct walker_data *cdata = walker->data;
 
+       if (http_follow_config != HTTP_FOLLOW_ALWAYS)
+               return;
+
        /*
         * If another request has already started fetching alternates,
         * wait for them to arrive and return to processing this request's
@@ -480,10 +482,13 @@ static int fetch_object(struct walker *walker, unsigned char *sha1)
         * we turned off CURLOPT_FAILONERROR to avoid losing a
         * persistent connection and got CURLE_OK.
         */
-       if (req->http_code == 404 && req->curl_result == CURLE_OK &&
+       if (req->http_code >= 300 && req->curl_result == CURLE_OK &&
                        (starts_with(req->url, "http://") ||
-                        starts_with(req->url, "https://")))
+                        starts_with(req->url, "https://"))) {
                req->curl_result = CURLE_HTTP_RETURNED_ERROR;
+               xsnprintf(req->errorstr, sizeof(req->errorstr),
+                         "HTTP request failed");
+       }
 
        if (obj_req->state == ABORTED) {
                ret = error("Request for %s aborted", hex);
diff --git a/http.c b/http.c
index 4c4a812fcc39509e32fbcae3db21871b97a1a5eb..051fe6e5ab77a5dc6e53dce7011d0fc445f15ab0 100644 (file)
--- a/http.c
+++ b/http.c
@@ -111,6 +111,8 @@ static int http_proactive_auth;
 static const char *user_agent;
 static int curl_empty_auth;
 
+enum http_follow_config http_follow_config = HTTP_FOLLOW_INITIAL;
+
 #if LIBCURL_VERSION_NUM >= 0x071700
 /* Use CURLOPT_KEYPASSWD as is */
 #elif LIBCURL_VERSION_NUM >= 0x070903
@@ -366,6 +368,16 @@ static int http_options(const char *var, const char *value, void *cb)
                return 0;
        }
 
+       if (!strcmp("http.followredirects", var)) {
+               if (value && !strcmp(value, "initial"))
+                       http_follow_config = HTTP_FOLLOW_INITIAL;
+               else if (git_config_bool(var, value))
+                       http_follow_config = HTTP_FOLLOW_ALWAYS;
+               else
+                       http_follow_config = HTTP_FOLLOW_NONE;
+               return 0;
+       }
+
        /* Fall back on the default ones */
        return git_default_config(var, value, cb);
 }
@@ -717,7 +729,6 @@ static CURL *get_curl_handle(void)
                                 curl_low_speed_time);
        }
 
-       curl_easy_setopt(result, CURLOPT_FOLLOWLOCATION, 1);
        curl_easy_setopt(result, CURLOPT_MAXREDIRS, 20);
 #if LIBCURL_VERSION_NUM >= 0x071301
        curl_easy_setopt(result, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
@@ -734,6 +745,7 @@ static CURL *get_curl_handle(void)
        if (is_transport_allowed("ftps"))
                allowed_protocols |= CURLPROTO_FTPS;
        curl_easy_setopt(result, CURLOPT_REDIR_PROTOCOLS, allowed_protocols);
+       curl_easy_setopt(result, CURLOPT_PROTOCOLS, allowed_protocols);
 #else
        if (transport_restrict_protocols())
                warning("protocol restrictions not applied to curl redirects because\n"
@@ -1044,6 +1056,16 @@ struct active_request_slot *get_active_slot(void)
        curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1);
        curl_easy_setopt(slot->curl, CURLOPT_RANGE, NULL);
 
+       /*
+        * Default following to off unless "ALWAYS" is configured; this gives
+        * callers a sane starting point, and they can tweak for individual
+        * HTTP_FOLLOW_* cases themselves.
+        */
+       if (http_follow_config == HTTP_FOLLOW_ALWAYS)
+               curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1);
+       else
+               curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 0);
+
 #if LIBCURL_VERSION_NUM >= 0x070a08
        curl_easy_setopt(slot->curl, CURLOPT_IPRESOLVE, git_curl_ipresolve);
 #endif
@@ -1286,9 +1308,12 @@ static int handle_curl_result(struct slot_results *results)
         * If we see a failing http code with CURLE_OK, we have turned off
         * FAILONERROR (to keep the server's custom error response), and should
         * translate the code into failure here.
+        *
+        * Likewise, if we see a redirect (30x code), that means we turned off
+        * redirect-following, and we should treat the result as an error.
         */
        if (results->curl_result == CURLE_OK &&
-           results->http_code >= 400) {
+           results->http_code >= 300) {
                results->curl_result = CURLE_HTTP_RETURNED_ERROR;
                /*
                 * Normally curl will already have put the "reason phrase"
@@ -1607,6 +1632,9 @@ static int http_request(const char *url,
                strbuf_addstr(&buf, " no-cache");
        if (options && options->keep_error)
                curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0);
+       if (options && options->initial_request &&
+           http_follow_config == HTTP_FOLLOW_INITIAL)
+               curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1);
 
        headers = curl_slist_append(headers, buf.buf);
 
@@ -1655,16 +1683,16 @@ static int http_request(const char *url,
  *
  * Note that this assumes a sane redirect scheme. It's entirely possible
  * in the example above to end up at a URL that does not even end in
- * "info/refs".  In such a case we simply punt, as there is not much we can
- * do (and such a scheme is unlikely to represent a real git repository,
- * which means we are likely about to abort anyway).
+ * "info/refs".  In such a case we die. There's not much we can do, such a
+ * scheme is unlikely to represent a real git repository, and failing to
+ * rewrite the base opens options for malicious redirects to do funny things.
  */
 static int update_url_from_redirect(struct strbuf *base,
                                    const char *asked,
                                    const struct strbuf *got)
 {
        const char *tail;
-       size_t tail_len;
+       size_t new_len;
 
        if (!strcmp(asked, got->buf))
                return 0;
@@ -1673,14 +1701,16 @@ static int update_url_from_redirect(struct strbuf *base,
                die("BUG: update_url_from_redirect: %s is not a superset of %s",
                    asked, base->buf);
 
-       tail_len = strlen(tail);
-
-       if (got->len < tail_len ||
-           strcmp(tail, got->buf + got->len - tail_len))
-               return 0; /* insane redirect scheme */
+       new_len = got->len;
+       if (!strip_suffix_mem(got->buf, &new_len, tail))
+               die(_("unable to update url base from redirection:\n"
+                     "  asked for: %s\n"
+                     "   redirect: %s"),
+                   asked, got->buf);
 
        strbuf_reset(base);
-       strbuf_add(base, got->buf, got->len - tail_len);
+       strbuf_add(base, got->buf, new_len);
+
        return 1;
 }
 
@@ -2028,7 +2058,7 @@ static size_t fwrite_sha1_file(char *ptr, size_t eltsize, size_t nmemb,
                if (c != CURLE_OK)
                        die("BUG: curl_easy_getinfo for HTTP code failed: %s",
                                curl_easy_strerror(c));
-               if (slot->http_code >= 400)
+               if (slot->http_code >= 300)
                        return size;
        }
 
diff --git a/http.h b/http.h
index 5ab9d9c329378f4f254c9d912dd7f05105ea6695..02bccb7b0caf9f2b1be0b98cb16c6fc84b95cc74 100644 (file)
--- a/http.h
+++ b/http.h
@@ -116,6 +116,13 @@ extern struct credential http_auth;
 
 extern char curl_errorstr[CURL_ERROR_SIZE];
 
+enum http_follow_config {
+       HTTP_FOLLOW_NONE,
+       HTTP_FOLLOW_ALWAYS,
+       HTTP_FOLLOW_INITIAL
+};
+extern enum http_follow_config http_follow_config;
+
 static inline int missing__target(int code, int result)
 {
        return  /* file:// URL -- do we ever use one??? */
@@ -139,7 +146,8 @@ extern char *get_remote_object_url(const char *url, const char *hex,
 /* Options for http_get_*() */
 struct http_get_options {
        unsigned no_cache:1,
-                keep_error:1;
+                keep_error:1,
+                initial_request:1;
 
        /* If non-NULL, returns the content-type of the response. */
        struct strbuf *content_type;
index 9041c2f149c01134ce02119354455894533e713c..23d6992f4037b37a9c3e133001af16595e8da394 100644 (file)
@@ -235,6 +235,8 @@ static int add_cacheinfo(struct merge_options *o,
                struct cache_entry *nce;
 
                nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
+               if (!nce)
+                       return err(o, _("addinfo_cache failed for path '%s'"), path);
                if (nce != ce)
                        ret = add_cache_entry(nce, options);
        }
@@ -388,12 +390,10 @@ static struct string_list *get_unmerged(void)
        return unmerged;
 }
 
-static int string_list_df_name_compare(const void *a, const void *b)
+static int string_list_df_name_compare(const char *one, const char *two)
 {
-       const struct string_list_item *one = a;
-       const struct string_list_item *two = b;
-       int onelen = strlen(one->string);
-       int twolen = strlen(two->string);
+       int onelen = strlen(one);
+       int twolen = strlen(two);
        /*
         * Here we only care that entries for D/F conflicts are
         * adjacent, in particular with the file of the D/F conflict
@@ -406,8 +406,8 @@ static int string_list_df_name_compare(const void *a, const void *b)
         * since in other cases any changes in their order due to
         * sorting cause no problems for us.
         */
-       int cmp = df_name_compare(one->string, onelen, S_IFDIR,
-                                 two->string, twolen, S_IFDIR);
+       int cmp = df_name_compare(one, onelen, S_IFDIR,
+                                 two, twolen, S_IFDIR);
        /*
         * Now that 'foo' and 'foo/bar' compare equal, we have to make sure
         * that 'foo' comes before 'foo/bar'.
@@ -451,8 +451,8 @@ static void record_df_conflict_files(struct merge_options *o,
                string_list_append(&df_sorted_entries, next->string)->util =
                                   next->util;
        }
-       qsort(df_sorted_entries.items, entries->nr, sizeof(*entries->items),
-             string_list_df_name_compare);
+       df_sorted_entries.cmp = string_list_df_name_compare;
+       string_list_sort(&df_sorted_entries);
 
        string_list_clear(&o->df_conflict_file_set, 1);
        for (i = 0; i < df_sorted_entries.nr; i++) {
@@ -664,7 +664,13 @@ static char *unique_path(struct merge_options *o, const char *path, const char *
        return strbuf_detach(&newpath, NULL);
 }
 
-static int dir_in_way(const char *path, int check_working_copy)
+/**
+ * Check whether a directory in the index is in the way of an incoming
+ * file.  Return 1 if so.  If check_working_copy is non-zero, also
+ * check the working directory.  If empty_ok is non-zero, also return
+ * 0 in the case where the working-tree dir exists but is empty.
+ */
+static int dir_in_way(const char *path, int check_working_copy, int empty_ok)
 {
        int pos;
        struct strbuf dirpath = STRBUF_INIT;
@@ -684,7 +690,8 @@ static int dir_in_way(const char *path, int check_working_copy)
        }
 
        strbuf_release(&dirpath);
-       return check_working_copy && !lstat(path, &st) && S_ISDIR(st.st_mode);
+       return check_working_copy && !lstat(path, &st) && S_ISDIR(st.st_mode) &&
+               !(empty_ok && is_empty_dir(path));
 }
 
 static int was_tracked(const char *path)
@@ -1062,7 +1069,7 @@ static int handle_change_delete(struct merge_options *o,
 {
        char *renamed = NULL;
        int ret = 0;
-       if (dir_in_way(path, !o->call_depth)) {
+       if (dir_in_way(path, !o->call_depth, 0)) {
                renamed = unique_path(o, path, a_oid ? o->branch1 : o->branch2);
        }
 
@@ -1195,7 +1202,7 @@ static int handle_file(struct merge_options *o,
                remove_file(o, 0, rename->path, 0);
                dst_name = unique_path(o, rename->path, cur_branch);
        } else {
-               if (dir_in_way(rename->path, !o->call_depth)) {
+               if (dir_in_way(rename->path, !o->call_depth, 0)) {
                        dst_name = unique_path(o, rename->path, cur_branch);
                        output(o, 1, _("%s is a directory in %s adding as %s instead"),
                               rename->path, other_branch, dst_name);
@@ -1704,7 +1711,8 @@ static int merge_content(struct merge_options *o,
                         o->branch2 == rename_conflict_info->branch1) ?
                        pair1->two->path : pair1->one->path;
 
-               if (dir_in_way(path, !o->call_depth))
+               if (dir_in_way(path, !o->call_depth,
+                              S_ISGITLINK(pair1->two->mode)))
                        df_conflict_remains = 1;
        }
        if (merge_file_special_markers(o, &one, &a, &b,
@@ -1862,7 +1870,8 @@ static int process_entry(struct merge_options *o,
                        oid = b_oid;
                        conf = _("directory/file");
                }
-               if (dir_in_way(path, !o->call_depth)) {
+               if (dir_in_way(path, !o->call_depth,
+                              S_ISGITLINK(a_mode))) {
                        char *new_path = unique_path(o, path, add_branch);
                        clean_merge = 0;
                        output(o, 1, _("CONFLICT (%s): There is a directory with name %s in %s. "
index 64f97c5e9755d54ace864cb53bf0e7844f530f49..e2407b65b70d1e622979cdb2fe0e425ba6403ee1 100644 (file)
@@ -3,7 +3,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" -wait -merge -3 -a1 \
@@ -12,7 +11,6 @@ merge_cmd () {
                "$merge_tool_path" -wait -2 \
                        "$LOCAL" "$REMOTE" "$MERGED" >/dev/null 2>&1
        fi
-       check_unchanged
 }
 
 translate_merge_tool_path() {
index b6319d206e2333e42469486604d4635e846e5faa..3a69e60faa9c95dcf388cd295d040e9b88e0defd 100644 (file)
@@ -3,7 +3,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" \
@@ -12,7 +11,6 @@ merge_cmd () {
                "$merge_tool_path" "$LOCAL" "$REMOTE" \
                        -mergeoutput="$MERGED"
        fi
-       check_unchanged
 }
 
 translate_merge_tool_path() {
index 3f0486bc807133f50abcaab27c991d4a806ec63c..9f60e8da6527cf28dcc5ad4a3e5f7f0ca9442cb4 100644 (file)
@@ -3,7 +3,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" -MF="$LOCAL" -TF="$REMOTE" -BF="$BASE" \
@@ -12,7 +11,6 @@ merge_cmd () {
                "$merge_tool_path" -MF="$LOCAL" -TF="$REMOTE" \
                        -RF="$MERGED"
        fi
-       check_unchanged
 }
 
 translate_merge_tool_path() {
index b3c71b6236e343dd3b268a2288af853804b3acf6..ee6f374bceb8e14af5b424e64fbe9787006091e8 100644 (file)
@@ -16,6 +16,10 @@ merge_cmd () {
        fi >/dev/null 2>&1
 }
 
-translate_merge_tool_path() {
+translate_merge_tool_path () {
        echo DeltaWalker
 }
+
+exit_code_trustable () {
+       true
+}
index f138cb4e731018b40426337eb8062f40512df088..9b6355b98a71da2627b68c6543cea4f2515b8d54 100644 (file)
@@ -12,3 +12,7 @@ merge_cmd () {
                        --result="$MERGED" "$LOCAL" "$REMOTE"
        fi
 }
+
+exit_code_trustable () {
+       true
+}
index 02e0843f47e09a7cc6cdd2a9c70e36773ecc96af..5a3ae8b5695d3141ff0310a706495ea52037b464 100644 (file)
@@ -3,7 +3,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" \
@@ -13,5 +12,4 @@ merge_cmd () {
                "$merge_tool_path" \
                        "$LOCAL" "$MERGED" "$REMOTE" | cat
        fi
-       check_unchanged
 }
index 13c2e439def45fe6cf58ae4345355894463ba34f..6c5101c4f729d49c544436e9262ca75e4ce6cddd 100644 (file)
@@ -3,7 +3,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" \
@@ -12,5 +11,4 @@ merge_cmd () {
                "$merge_tool_path" "$LOCAL" "$REMOTE" \
                        --default --mode=merge2 --to="$MERGED"
        fi
-       check_unchanged
 }
index 7b895fdb1f9955eb470a2614e0634bfcd26d90c9..d1ce513ff5d3b3db14dd1270d2181099e1134c2c 100644 (file)
@@ -20,3 +20,7 @@ merge_cmd () {
 translate_merge_tool_path() {
        echo emacs
 }
+
+exit_code_trustable () {
+       true
+}
index 7b524d4088ff198d70c5e40a378011f2e515770e..e72b06fc4d8ff76e06a0b972ae28df73efd4180d 100644 (file)
@@ -3,14 +3,12 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" -merge "$LOCAL" "$BASE" "$REMOTE" -o:"$MERGED" -nh
        else
                "$merge_tool_path" -merge "$LOCAL" "$REMOTE" -o:"$MERGED" -nh
        fi
-       check_unchanged
 }
 
 translate_merge_tool_path() {
index 793d1293b16c9b28a9ec5c70ec7fa0875ab0da54..0264ed5b20b29fec0fc5586408f88b0e8755d212 100644 (file)
@@ -21,3 +21,7 @@ merge_cmd () {
                >/dev/null 2>&1
        fi
 }
+
+exit_code_trustable () {
+       true
+}
index 433686c12a088195bbf21b2e409c21df199ba988..e8c0bfa678547258ff0f330ae756f3621e6aadc7 100644 (file)
@@ -5,3 +5,7 @@ can_merge () {
 diff_cmd () {
        "$merge_tool_path" "$LOCAL" "$REMOTE"
 }
+
+exit_code_trustable () {
+       true
+}
index 83ebdfb4c328ac79af38bfe935f0dbfa7fb6f53b..bc178e88827a1a0558e9fbee1a6f18f6ede83df1 100644 (file)
@@ -7,7 +7,7 @@ merge_cmd () {
        then
                check_meld_for_output_version
        fi
-       touch "$BACKUP"
+
        if test "$meld_has_output_option" = true
        then
                "$merge_tool_path" --output "$MERGED" \
@@ -15,7 +15,6 @@ merge_cmd () {
        else
                "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
        fi
-       check_unchanged
 }
 
 # Check whether we should use 'meld --output <file>'
index 0942b2a733592d3f0a5a39b4fc1defd635eb7b04..b608dd6de30aaab9b30729145029761330f9fb55 100644 (file)
@@ -3,7 +3,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" "$LOCAL" "$REMOTE" \
@@ -12,5 +11,4 @@ merge_cmd () {
                "$merge_tool_path" "$LOCAL" "$REMOTE" \
                        -merge "$MERGED" | cat
        fi
-       check_unchanged
 }
index 5a608abf9c77f436ab1472592e3d5777ef83805d..7a5b291dd28ad5b60ca0492480b800aaa9cc929e 100644 (file)
@@ -20,14 +20,12 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if ! $base_present
        then
                cp -- "$LOCAL" "$BASE"
                create_virtual_base "$BASE" "$REMOTE"
        fi
        "$merge_tool_path" "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
-       check_unchanged
 }
 
 create_empty_file () {
index 618c438e8765a485ffcc70a105fb0cf46010540c..eee5cb57e3ccf7f1ad7ad150c37a8b6d7ab6d436 100644 (file)
@@ -10,3 +10,7 @@ merge_cmd () {
                "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE"
        fi
 }
+
+exit_code_trustable () {
+       true
+}
index 3b89f1c82dc944fcbec889d24e8e7032fda612fc..d7ab666a59a2c8690861146bb6ae4874ed48e0de 100644 (file)
@@ -5,7 +5,6 @@ can_diff () {
 merge_cmd () {
        if $base_present
        then
-               touch "$BACKUP"
                basename="$(basename "$merge_tool_path" .exe)"
                if test "$basename" = "tortoisegitmerge"
                then
@@ -17,7 +16,6 @@ merge_cmd () {
                                -base:"$BASE" -mine:"$LOCAL" \
                                -theirs:"$REMOTE" -merged:"$MERGED"
                fi
-               check_unchanged
        else
                echo "$merge_tool_path cannot be used without a base" 1>&2
                return 1
index 74ea6d54793f62188cd88e93f1adfe74c5957dda..10d86f3e19304125cecf06ddad928b9ffe2d0c08 100644 (file)
@@ -4,7 +4,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        case "$1" in
        gvimdiff|vimdiff)
                if $base_present
@@ -31,7 +30,6 @@ merge_cmd () {
                fi
                ;;
        esac
-       check_unchanged
 }
 
 translate_merge_tool_path() {
@@ -44,3 +42,7 @@ translate_merge_tool_path() {
                ;;
        esac
 }
+
+exit_code_trustable () {
+       true
+}
index f3819d316a2c05d9fe1f850d6ac20b04d9df0417..74d03259fdf157c9ee07eec7b2c40727f5ce49dc 100644 (file)
@@ -6,10 +6,8 @@ diff_cmd () {
 merge_cmd () {
        # mergetool.winmerge.trustExitCode is implicitly false.
        # touch $BACKUP so that we can check_unchanged.
-       touch "$BACKUP"
        "$merge_tool_path" -u -e -dl Local -dr Remote \
                "$LOCAL" "$REMOTE" "$MERGED"
-       check_unchanged
 }
 
 translate_merge_tool_path() {
index 05b443394ba166a82a22abfcf27865b4627405e2..e284811ff28563458e76b3f03f95bf9eb11fa726 100644 (file)
@@ -6,7 +6,6 @@ diff_cmd () {
 }
 
 merge_cmd () {
-       touch "$BACKUP"
        if $base_present
        then
                "$merge_tool_path" -X --show-merged-pane \
@@ -21,5 +20,4 @@ merge_cmd () {
                        -R 'Accel.SearchForward: "Ctrl-G"' \
                        --merged-file "$MERGED" "$LOCAL" "$REMOTE"
        fi
-       check_unchanged
 }
index e7646968011234c09e1565577357a7678c015762..56ad9870bcfdfae68bd0fb5b57aa73e208bcb0fd 100644 (file)
@@ -606,7 +606,7 @@ sub minimize_url {
                        my $latest = $ra->get_latest_revnum;
                        $ra->get_log("", $latest, 0, 1, 0, 1, sub {});
                };
-       } while ($@ && ($c = shift @components));
+       } while ($@ && defined($c = shift @components));
 
        return canonicalize_url($url);
 }
index 30e00e2b5886a34edc33fb528195241290c44cf5..57d0e2faa8780b3434fd8f3656e206d4d4e7e75b 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2016-08-27 23:21+0800\n"
-"PO-Revision-Date: 2016-08-28 10:32-0600\n"
+"POT-Creation-Date: 2016-11-25 22:50+0800\n"
+"PO-Revision-Date: 2016-11-28 20:03-0700\n"
 "Last-Translator: Alex Henrie <alexhenrie24@gmail.com>\n"
 "Language-Team: Catalan\n"
 "Language: ca\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.8\n"
+"X-Generator: Poedit 1.8.11\n"
 
 #: advice.c:55
 #, c-format
@@ -100,3957 +100,4458 @@ msgstr ""
 "\n"
 "  git checkout -b <nom-de-branca-nova>\n"
 
-#: archive.c:12
-msgid "git archive [<options>] <tree-ish> [<path>...]"
-msgstr "git archive [<opcions>] <arbre> [<camí>...]"
+#: apply.c:57
+#, c-format
+msgid "unrecognized whitespace option '%s'"
+msgstr "opció d'espai en blanc '%s' no reconeguda"
 
-#: archive.c:13
-msgid "git archive --list"
-msgstr "git archive --list"
+#: apply.c:73
+#, c-format
+msgid "unrecognized whitespace ignore option '%s'"
+msgstr "opció d'ignoral d'espai en blanc '%s' no reconeguda"
 
-#: archive.c:14
-msgid ""
-"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
-msgstr ""
-"git archive --remote <dipòsit> [--exec <ordre>] [<opcions>] <arbre> "
-"[<camí>...]"
+#: apply.c:125
+msgid "--reject and --3way cannot be used together."
+msgstr "--reject i --3way no es poden usar junts."
 
-#: archive.c:15
-msgid "git archive --remote <repo> [--exec <cmd>] --list"
-msgstr "git archive --remote <dipòsit> [--exec <ordre>] --list"
+#: apply.c:127
+msgid "--cached and --3way cannot be used together."
+msgstr "--cached i --3way no es poden usar junts."
 
-#: archive.c:344 builtin/add.c:139 builtin/add.c:435 builtin/rm.c:327
-#, c-format
-msgid "pathspec '%s' did not match any files"
-msgstr "L'especificació de camí '%s' no ha coincidit amb cap fitxer"
+#: apply.c:130
+msgid "--3way outside a repository"
+msgstr "--3way fora d'un dipòsit"
 
-#: archive.c:429
-msgid "fmt"
-msgstr "format"
+#: apply.c:141
+msgid "--index outside a repository"
+msgstr "--index fora d'un dipòsit"
 
-#: archive.c:429
-msgid "archive format"
-msgstr "format d'arxiu"
+#: apply.c:144
+msgid "--cached outside a repository"
+msgstr "--cached fora d'un dipòsit"
 
-#: archive.c:430 builtin/log.c:1422
-msgid "prefix"
-msgstr "prefix"
+#: apply.c:845
+#, c-format
+msgid "Cannot prepare timestamp regexp %s"
+msgstr "No es pot preparar l'expressió regular de marca de temps %s"
 
-#: archive.c:431
-msgid "prepend prefix to each pathname in the archive"
-msgstr "anteposa el prefix a cada nom de camí en l'arxiu"
+#: apply.c:854
+#, c-format
+msgid "regexec returned %d for input: %s"
+msgstr "regexec ha retornat %d per l'entrada: %s"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2553 builtin/blame.c:2554
-#: builtin/config.c:59 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:722 builtin/hash-object.c:100 builtin/ls-files.c:460
-#: builtin/ls-files.c:463 builtin/notes.c:399 builtin/notes.c:562
-#: builtin/read-tree.c:109 parse-options.h:153
-msgid "file"
-msgstr "fitxer"
+#: apply.c:938
+#, c-format
+msgid "unable to find filename in patch at line %d"
+msgstr "no s'ha pogut trobar el nom de fitxer en el pedaç a la línia %d"
 
-#: archive.c:433 builtin/archive.c:89
-msgid "write the archive to this file"
-msgstr "escriu l'arxiu a aquest fitxer"
+#: apply.c:977
+#, c-format
+msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
+msgstr ""
+"git apply: git-diff dolent - /dev/null esperat, %s rebut en la línia %d"
 
-#: archive.c:435
-msgid "read .gitattributes in working directory"
-msgstr "llegeix .gitattributes en el directori de treball"
+#: apply.c:983
+#, c-format
+msgid "git apply: bad git-diff - inconsistent new filename on line %d"
+msgstr ""
+"git apply: git-diff dolent - nom de fitxer nou inconsistent en la línia %d"
 
-#: archive.c:436
-msgid "report archived files on stderr"
-msgstr "informa de fitxers arxivats en stderr"
+#: apply.c:984
+#, c-format
+msgid "git apply: bad git-diff - inconsistent old filename on line %d"
+msgstr ""
+"git apply: git-diff dolent - nom de fitxer antic inconsistent en la línia %d"
 
-#: archive.c:437
-msgid "store only"
-msgstr "només emmagatzema"
+#: apply.c:990
+#, c-format
+msgid "git apply: bad git-diff - expected /dev/null on line %d"
+msgstr "git apply: git-diff dolent - /dev/null esperat en la línia %d"
 
-#: archive.c:438
-msgid "compress faster"
-msgstr "comprimeix més ràpidament"
+#: apply.c:1488
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recompte: línia inesperada: %.*s"
 
-#: archive.c:446
-msgid "compress better"
-msgstr "comprimeix millor"
+#: apply.c:1557
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "fragment de pedaç sense capçalera a la línia %d: %.*s"
 
-#: archive.c:449
-msgid "list supported archive formats"
-msgstr "allista els formats d'arxiu admesos"
+#: apply.c:1577
+#, c-format
+msgid ""
+"git diff header lacks filename information when removing %d leading pathname "
+"component (line %d)"
+msgid_plural ""
+"git diff header lacks filename information when removing %d leading pathname "
+"components (line %d)"
+msgstr[0] ""
+"a la capçalera de git diff li manca informació de nom de fitxer en eliminar "
+"%d component de nom de camí inicial (línia %d)"
+msgstr[1] ""
+"a la capçalera de git diff li manca informació de nom de fitxer en eliminar "
+"%d components de nom de camí inicial (línia %d)"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:82
-#: builtin/submodule--helper.c:832
-msgid "repo"
-msgstr "dipòsit"
+#: apply.c:1589
+#, c-format
+msgid "git diff header lacks filename information (line %d)"
+msgstr ""
+"a la capçalera de git diff li manca informació de nom de fitxer (línia %d)"
 
-#: archive.c:452 builtin/archive.c:91
-msgid "retrieve the archive from remote repository <repo>"
-msgstr "recupera l'arxiu del dipòsit remot <dipòsit>"
+#: apply.c:1759
+msgid "new file depends on old contents"
+msgstr "el fitxer nou depèn dels continguts antics"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:483
-msgid "command"
-msgstr "ordre"
+#: apply.c:1761
+msgid "deleted file still has contents"
+msgstr "el fitxer suprimit encara té continguts"
 
-#: archive.c:454 builtin/archive.c:93
-msgid "path to the remote git-upload-archive command"
-msgstr "camí a l'ordre git-upload-archive remota"
+#: apply.c:1795
+#, c-format
+msgid "corrupt patch at line %d"
+msgstr "pedaç malmès a la línia %d"
 
-#: archive.c:461
-msgid "Unexpected option --remote"
-msgstr "Opció inesperada --remote"
+#: apply.c:1832
+#, c-format
+msgid "new file %s depends on old contents"
+msgstr "el fitxer nou %s depèn dels continguts antics"
 
-#: archive.c:463
-msgid "Option --exec can only be used together with --remote"
-msgstr "L'opció --exec només es pot usar junt amb --remote"
+#: apply.c:1834
+#, c-format
+msgid "deleted file %s still has contents"
+msgstr "el fitxer suprimit %s encara té continguts"
 
-#: archive.c:465
-msgid "Unexpected option --output"
-msgstr "Opció inesperada --output"
+#: apply.c:1837
+#, c-format
+msgid "** warning: file %s becomes empty but is not deleted"
+msgstr "** advertència: el fitxer %s queda buit però no se suprimeix"
 
-#: archive.c:487
+#: apply.c:1984
 #, c-format
-msgid "Unknown archive format '%s'"
-msgstr "Format d'arxiu desconegut '%s'"
+msgid "corrupt binary patch at line %d: %.*s"
+msgstr "pedaç binari malmès a la línia %d: %.*s"
 
-#: archive.c:494
+#: apply.c:2021
 #, c-format
-msgid "Argument not supported for format '%s': -%d"
-msgstr "Paràmetre no admet per al format '%s': -%d"
+msgid "unrecognized binary patch at line %d"
+msgstr "pedaç binari no reconegut a la línia %d"
 
-#: attr.c:263
-msgid ""
-"Negative patterns are ignored in git attributes\n"
-"Use '\\!' for literal leading exclamation."
-msgstr ""
-"Els patrons negatius s'ignoren en els atributs de git\n"
-"Useu '\\!' per exclamació capdavantera literal."
+#: apply.c:2182
+#, c-format
+msgid "patch with only garbage at line %d"
+msgstr "pedaç amb només escombraries a la línia %d"
 
-#: bisect.c:441
+#: apply.c:2274
 #, c-format
-msgid "Could not open file '%s'"
-msgstr "No s'ha pogut obrir el fitxer '%s'"
+msgid "unable to read symlink %s"
+msgstr "no s'ha pogut llegir l'enllaç simbòlic %s"
 
-#: bisect.c:446
+#: apply.c:2278
 #, c-format
-msgid "Badly quoted content in file '%s': %s"
-msgstr "Comentari amb cometes dolentes en el fitxer '%s': %s"
+msgid "unable to open or read %s"
+msgstr "no s'ha pogut obrir o llegir %s"
 
-#: bisect.c:655
+#: apply.c:2931
 #, c-format
-msgid "We cannot bisect more!\n"
-msgstr "No podem bisecar més!\n"
+msgid "invalid start of line: '%c'"
+msgstr "inici de línia no vàlid: '%c'"
 
-#: bisect.c:708
+#: apply.c:3050
 #, c-format
-msgid "Not a valid commit name %s"
-msgstr "No és un nom de comissió vàlid %s"
+msgid "Hunk #%d succeeded at %d (offset %d line)."
+msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
+msgstr[0] "El tros #%d ha tingut èxit a %d (desplaçament d'%d línia)."
+msgstr[1] "El tros #%d ha tingut èxit a %d (desplaçament de %d línies)."
 
-#: bisect.c:732
+#: apply.c:3062
 #, c-format
-msgid ""
-"The merge base %s is bad.\n"
-"This means the bug has been fixed between %s and [%s].\n"
-msgstr ""
-"La base de fusió %s és dolenta.\n"
-"Això vol dir que el defecte s'ha arreglat entre %s i [%s].\n"
+msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
+msgstr "El context s'ha reduït a (%ld/%ld) per a aplicar el fragment a %d"
 
-#: bisect.c:737
+#: apply.c:3068
 #, c-format
 msgid ""
-"The merge base %s is new.\n"
-"The property has changed between %s and [%s].\n"
+"while searching for:\n"
+"%.*s"
 msgstr ""
-"La base de fusió %s és nova.\n"
-"La propietat s'ha canviat entre %s i [%s].\n"
+"tot cercant:\n"
+"%.*s"
 
-#: bisect.c:742
+#: apply.c:3090
 #, c-format
-msgid ""
-"The merge base %s is %s.\n"
-"This means the first '%s' commit is between %s and [%s].\n"
-msgstr ""
-"La base de fusió %s és %s.\n"
-"Això vol dir que la primera comissió '%s' és entre %s i [%s].\n"
+msgid "missing binary patch data for '%s'"
+msgstr "manquen les dades de pedaç binari de '%s'"
 
-#: bisect.c:750
+#: apply.c:3098
 #, c-format
-msgid ""
-"Some %s revs are not ancestor of the %s rev.\n"
-"git bisect cannot work properly in this case.\n"
-"Maybe you mistook %s and %s revs?\n"
+msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
+msgstr "no es pot aplicar al revés un pedaç binari sense el tros revés a '%s'"
+
+#: apply.c:3144
+#, c-format
+msgid "cannot apply binary patch to '%s' without full index line"
 msgstr ""
-"Unes %s revisions no són els avantpassats de la revisió %s.\n"
-"git bisect no pot funcionar correctament en aquest cas.\n"
-"Potser heu confós les revisions %s i %s?\n"
+"no es pot aplicar un pedaç binari a '%s' sense la línia d'índex completa"
 
-#: bisect.c:763
+#: apply.c:3154
 #, c-format
 msgid ""
-"the merge base between %s and [%s] must be skipped.\n"
-"So we cannot be sure the first %s commit is between %s and %s.\n"
-"We continue anyway."
+"the patch applies to '%s' (%s), which does not match the current contents."
 msgstr ""
-"s'ha de saltar la base de fusió entre %s i [%s].\n"
-"Llavors, no podem estar segurs que la primera comissió %s sigui entre %s i "
-"%s.\n"
-"Continuem de totes maneres."
+"el pedaç s'aplica a '%s' (%s), el qual no coincideix amb els continguts "
+"actuals."
 
-#: bisect.c:798
+#: apply.c:3162
 #, c-format
-msgid "Bisecting: a merge base must be tested\n"
-msgstr "Bisecant: s'ha de provar una base de fusió\n"
+msgid "the patch applies to an empty '%s' but it is not empty"
+msgstr "el pedaç s'aplica a un '%s' buit però no és buit"
 
-#: bisect.c:849
+#: apply.c:3180
 #, c-format
-msgid "a %s revision is needed"
-msgstr "es necessita una revisió %s"
+msgid "the necessary postimage %s for '%s' cannot be read"
+msgstr "no es pot llegir la postimatge necessari %s per a '%s'"
 
-#: bisect.c:866 builtin/notes.c:174 builtin/tag.c:248
+#: apply.c:3193
 #, c-format
-msgid "could not create file '%s'"
-msgstr "no s'ha pogut crear el fitxer '%s'"
+msgid "binary patch does not apply to '%s'"
+msgstr "el pedaç binari no s'aplica a '%s'"
 
-#: bisect.c:917
+#: apply.c:3199
 #, c-format
-msgid "could not read file '%s'"
-msgstr "no s'ha pogut llegir el fitxer '%s'"
+msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
+msgstr ""
+"el pedaç binari a '%s' crea un resultat incorrecte (esperant %s, %s rebut)"
 
-#: bisect.c:947
-msgid "reading bisect refs failed"
-msgstr "la lectura de les referències de bisecció ha fallat"
+#: apply.c:3220
+#, c-format
+msgid "patch failed: %s:%ld"
+msgstr "el pedaç ha fallat: %s:%ld"
 
-#: bisect.c:967
+#: apply.c:3342
 #, c-format
-msgid "%s was both %s and %s\n"
-msgstr "%s era ambdós %s i %s\n"
+msgid "cannot checkout %s"
+msgstr "no es pot agafar %s"
 
-#: bisect.c:975
+#: apply.c:3390 apply.c:3401 apply.c:3447 setup.c:248
 #, c-format
-msgid ""
-"No testable commit found.\n"
-"Maybe you started with bad path parameters?\n"
-msgstr ""
-"No s'ha trobat cap comissió provable.\n"
-"Potser heu començat amb paràmetres de camí dolents?\n"
+msgid "failed to read %s"
+msgstr "s'ha fallat en llegir %s"
 
-#: bisect.c:994
+#: apply.c:3398
 #, c-format
-msgid "(roughly %d step)"
-msgid_plural "(roughly %d steps)"
-msgstr[0] "(aproximadament %d pas)"
-msgstr[1] "(aproximadament %d passos)"
+msgid "reading from '%s' beyond a symbolic link"
+msgstr "s'està llegint de '%s' més enllà d'un enllaç simbòlic"
 
-#. TRANSLATORS: the last %s will be replaced with
-#. "(roughly %d steps)" translation
-#: bisect.c:998
+#: apply.c:3427 apply.c:3667
 #, c-format
-msgid "Bisecting: %d revision left to test after this %s\n"
-msgid_plural "Bisecting: %d revisions left to test after this %s\n"
-msgstr[0] "Bisecant: manca %d revisió a provar després d'aquesta %s\n"
-msgstr[1] "Bisecant: manquen %d revisions a provar després d'aquesta %s\n"
+msgid "path %s has been renamed/deleted"
+msgstr "el camí %s s'ha canviat de nom / s'ha suprimit"
 
-#: branch.c:53
+#: apply.c:3510 apply.c:3681
 #, c-format
-msgid ""
-"\n"
-"After fixing the error cause you may try to fix up\n"
-"the remote tracking information by invoking\n"
-"\"git branch --set-upstream-to=%s%s%s\"."
-msgstr ""
-"\n"
-"Després de corregir la causa de l'error, podeu\n"
-"intentar corregir la informació de seguiment remot\n"
-"invocant \"git branch --set-upstream-to=%s%s%s\"."
+msgid "%s: does not exist in index"
+msgstr "%s: no existeix en l'índex"
 
-#: branch.c:67
+#: apply.c:3519 apply.c:3689
 #, c-format
-msgid "Not setting branch %s as its own upstream."
-msgstr "No s'està establint la branca %s com a la seva pròpia font."
+msgid "%s: does not match index"
+msgstr "%s: no coincideix amb l'índex"
 
-#: branch.c:93
-#, c-format
-msgid "Branch %s set up to track remote branch %s from %s by rebasing."
+#: apply.c:3554
+msgid "repository lacks the necessary blob to fall back on 3-way merge."
 msgstr ""
-"La branca %s està configurada per a seguir la branca remota %s de %s per "
-"rebasar."
+"al dipòsit li manca el blob necessari per a retrocedir a una fusió de 3 vies."
 
-#: branch.c:94
+#: apply.c:3557
 #, c-format
-msgid "Branch %s set up to track remote branch %s from %s."
-msgstr "La branca %s està configurada per a seguir la branca remota %s de %s."
+msgid "Falling back to three-way merge...\n"
+msgstr "S'està retrocedint a una fusió de 3 vies...\n"
 
-#: branch.c:98
+#: apply.c:3573 apply.c:3577
 #, c-format
-msgid "Branch %s set up to track local branch %s by rebasing."
-msgstr ""
-"La branca %s està configurada per a seguir la branca local %s per rebasar."
+msgid "cannot read the current contents of '%s'"
+msgstr "no es poden llegir els continguts actuals de '%s'"
 
-#: branch.c:99
+#: apply.c:3589
 #, c-format
-msgid "Branch %s set up to track local branch %s."
-msgstr "La branca %s està configurada per a seguir la branca local %s."
+msgid "Failed to fall back on three-way merge...\n"
+msgstr "S'ha fallat en retrocedir a una fusió de 3 vies...\n"
 
-#: branch.c:104
+#: apply.c:3603
 #, c-format
-msgid "Branch %s set up to track remote ref %s by rebasing."
-msgstr ""
-"La branca %s està configurada per a seguir la referència remota %s per "
-"rebasar."
+msgid "Applied patch to '%s' with conflicts.\n"
+msgstr "S'ha aplicat el pedaç a '%s' amb conflictes.\n"
 
-#: branch.c:105
+#: apply.c:3608
 #, c-format
-msgid "Branch %s set up to track remote ref %s."
-msgstr "La branca %s està configurada per a seguir la referència remota %s."
+msgid "Applied patch to '%s' cleanly.\n"
+msgstr "S'ha aplicat el pedaç a '%s' netament.\n"
 
-#: branch.c:109
-#, c-format
-msgid "Branch %s set up to track local ref %s by rebasing."
-msgstr ""
-"La branca %s està configurada per a seguir la referència local %s per "
-"rebasar."
+#: apply.c:3634
+msgid "removal patch leaves file contents"
+msgstr "el pedaç d'eliminació deixa els continguts dels fitxers"
 
-#: branch.c:110
+#: apply.c:3706
 #, c-format
-msgid "Branch %s set up to track local ref %s."
-msgstr "La branca %s està configurada per a seguir la referència local %s."
-
-#: branch.c:119
-msgid "Unable to write upstream branch configuration"
-msgstr "No es pot escriure la configuració de la branca font"
+msgid "%s: wrong type"
+msgstr "%s: tipus erroni"
 
-#: branch.c:156
+#: apply.c:3708
 #, c-format
-msgid "Not tracking: ambiguous information for ref %s"
-msgstr "No seguint: informació ambigua per a la referència %s"
+msgid "%s has type %o, expected %o"
+msgstr "%s és del tipus %o, s'esperava %o"
 
-#: branch.c:185
+#: apply.c:3859 apply.c:3861
 #, c-format
-msgid "'%s' is not a valid branch name."
-msgstr "'%s' no és un nom de branca vàlid."
+msgid "invalid path '%s'"
+msgstr "camí no vàlid: %s"
 
-#: branch.c:190
+#: apply.c:3917
 #, c-format
-msgid "A branch named '%s' already exists."
-msgstr "Una branca amb nom '%s' ja existeix."
-
-#: branch.c:198
-msgid "Cannot force update the current branch."
-msgstr "No es pot actualitzar la branca actual a la força."
+msgid "%s: already exists in index"
+msgstr "%s: ja existeix en l'índex"
 
-#: branch.c:218
+#: apply.c:3920
 #, c-format
-msgid "Cannot setup tracking information; starting point '%s' is not a branch."
-msgstr ""
-"No es pot configurar la informació de seguiment; el punt inicial '%s' no és "
-"una branca."
+msgid "%s: already exists in working directory"
+msgstr "%s: ja existeix en el directori de treball"
 
-#: branch.c:220
+#: apply.c:3940
 #, c-format
-msgid "the requested upstream branch '%s' does not exist"
-msgstr "la branca font demanada '%s' no existeix"
-
-#: branch.c:222
-msgid ""
-"\n"
-"If you are planning on basing your work on an upstream\n"
-"branch that already exists at the remote, you may need to\n"
-"run \"git fetch\" to retrieve it.\n"
-"\n"
-"If you are planning to push out a new local branch that\n"
-"will track its remote counterpart, you may want to use\n"
-"\"git push -u\" to set the upstream config as you push."
-msgstr ""
-"\n"
-"Si teniu pensat basar el vostre treball en una branca\n"
-"font que ja existeix al remot, pot ser que necessiteu\n"
-"executar \"git fetch\" per a obtenir-la.\n"
-"\n"
-"Si teniu pensat pujar una branca local nova que seguirà\n"
-"la seva contrapart remota, pot ser que vulgueu usar\n"
-"\"git push -u\" per a establir la configuració font\n"
-"mentre pugeu."
+msgid "new mode (%o) of %s does not match old mode (%o)"
+msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o)"
 
-#: branch.c:266
+#: apply.c:3945
 #, c-format
-msgid "Not a valid object name: '%s'."
-msgstr "No és un nom d'objecte vàlid: '%s'."
+msgid "new mode (%o) of %s does not match old mode (%o) of %s"
+msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o) de %s"
 
-#: branch.c:286
+#: apply.c:3965
 #, c-format
-msgid "Ambiguous object name: '%s'."
-msgstr "Nom d'objecte ambigu: '%s'."
+msgid "affected file '%s' is beyond a symbolic link"
+msgstr "el fitxer afectat '%s' és més enllà d'un enllaç simbòlic"
 
-#: branch.c:291
+#: apply.c:3969
 #, c-format
-msgid "Not a valid branch point: '%s'."
-msgstr "No és un punt de ramificació vàlid: '%s'."
+msgid "%s: patch does not apply"
+msgstr "%s: el pedaç no s'aplica"
 
-#: branch.c:345
+#: apply.c:3984
 #, c-format
-msgid "'%s' is already checked out at '%s'"
-msgstr "'%s' ja s'ha agafat a '%s'"
+msgid "Checking patch %s..."
+msgstr "S'està comprovant el pedaç %s..."
 
-#: branch.c:364
+#: apply.c:4075
 #, c-format
-msgid "HEAD of working tree %s is not updated"
-msgstr "La HEAD de l'arbre de treball %s no està actualitzat"
+msgid "sha1 information is lacking or useless for submodule %s"
+msgstr "falta la informació sha1 o és inútil per al submòdul %s"
 
-#: bundle.c:34
+#: apply.c:4082
 #, c-format
-msgid "'%s' does not look like a v2 bundle file"
-msgstr "'%s' no sembla un fitxer de farcell v2"
+msgid "mode change for %s, which is not in current HEAD"
+msgstr "canvi de mode per a %s, el qual no està en el HEAD actual"
 
-#: bundle.c:61
+#: apply.c:4085
 #, c-format
-msgid "unrecognized header: %s%s (%d)"
-msgstr "capçalera no reconeguda: %s%s (%d)"
+msgid "sha1 information is lacking or useless (%s)."
+msgstr "falta informació sha1 o és inútil (%s)."
 
-#: bundle.c:87 builtin/commit.c:778
+#: apply.c:4090 builtin/checkout.c:233 builtin/reset.c:135
 #, c-format
-msgid "could not open '%s'"
-msgstr "no s'ha pogut obrir '%s'"
-
-#: bundle.c:139
-msgid "Repository lacks these prerequisite commits:"
-msgstr "Al dipòsit li manquen aquestes comissions prerequisits:"
+msgid "make_cache_entry failed for path '%s'"
+msgstr "make_cache_entry ha fallat per al camí '%s'"
 
-#: bundle.c:163 ref-filter.c:1462 sequencer.c:630 sequencer.c:1085
-#: builtin/blame.c:2763 builtin/commit.c:1057 builtin/log.c:348
-#: builtin/log.c:890 builtin/log.c:1336 builtin/log.c:1659 builtin/log.c:1901
-#: builtin/merge.c:356 builtin/shortlog.c:170
-msgid "revision walk setup failed"
-msgstr "la configuració del passeig per revisions ha fallat"
+#: apply.c:4094
+#, c-format
+msgid "could not add %s to temporary index"
+msgstr "no s'ha pogut afegir %s a l'index temporal"
 
-#: bundle.c:185
+#: apply.c:4104
 #, c-format
-msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
-msgstr[0] "El farcell conté aquesta referència:"
-msgstr[1] "El farcell conté aquestes %d referències:"
+msgid "could not write temporary index to %s"
+msgstr "no s'ha pogut escriure l'índex temporal a %s"
 
-#: bundle.c:192
-msgid "The bundle records a complete history."
-msgstr "El farcell registra una història completa."
+#: apply.c:4242
+#, c-format
+msgid "unable to remove %s from index"
+msgstr "no s'ha pogut eliminar %s de l'índex"
 
-#: bundle.c:194
+#: apply.c:4277
 #, c-format
-msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
-msgstr[0] "El farcell requereix aquesta referència:"
-msgstr[1] "El farcell requereix aquestes %d referències:"
+msgid "corrupt patch for submodule %s"
+msgstr "pedaç malmès per al submòdul %s"
 
-#: bundle.c:253
-msgid "Could not spawn pack-objects"
-msgstr "No s'ha pogut executar el pack-objects"
+#: apply.c:4283
+#, c-format
+msgid "unable to stat newly created file '%s'"
+msgstr "no s'ha pogut fer stat al fitxer novament creat '%s'"
 
-#: bundle.c:264
-msgid "pack-objects died"
-msgstr "El pack-objects s'ha mort"
+#: apply.c:4291
+#, c-format
+msgid "unable to create backing store for newly created file %s"
+msgstr ""
+"no s'ha pogut crear un magatzem de recolzament per al fitxer novament creat "
+"%s"
 
-#: bundle.c:304
-msgid "rev-list died"
-msgstr "El rev-list s'ha mort"
+#: apply.c:4297 apply.c:4441
+#, c-format
+msgid "unable to add cache entry for %s"
+msgstr "no s'ha pogut afegir una entrada de cau per a %s"
 
-#: bundle.c:353
+#: apply.c:4338
 #, c-format
-msgid "ref '%s' is excluded by the rev-list options"
-msgstr "les opcions de la llista de revisions exclouen la referència '%s'"
+msgid "failed to write to '%s'"
+msgstr "s'ha fallat en escriure a '%s'"
 
-#: bundle.c:443 builtin/log.c:165 builtin/log.c:1565 builtin/shortlog.c:273
+#: apply.c:4342
 #, c-format
-msgid "unrecognized argument: %s"
-msgstr "paràmetre no reconegut: %s"
+msgid "closing file '%s'"
+msgstr "s'està tancant el fitxer '%s'"
 
-#: bundle.c:451
-msgid "Refusing to create empty bundle."
-msgstr "S'està refusant crear un farcell buit."
+#: apply.c:4412
+#, c-format
+msgid "unable to write file '%s' mode %o"
+msgstr "no s'ha pogut escriure el fitxer '%s' mode %o"
 
-#: bundle.c:463
+#: apply.c:4510
 #, c-format
-msgid "cannot create '%s'"
-msgstr "no es pot crear '%s'"
+msgid "Applied patch %s cleanly."
+msgstr "El pedaç %s s'ha aplicat netament."
 
-#: bundle.c:491
-msgid "index-pack died"
-msgstr "L'index-pack s'ha mort"
+#: apply.c:4518
+msgid "internal error"
+msgstr "error intern"
 
-#: color.c:290
+#: apply.c:4521
 #, c-format
-msgid "invalid color value: %.*s"
-msgstr "valor de color no vàlid: %.*s"
+msgid "Applying patch %%s with %d reject..."
+msgid_plural "Applying patch %%s with %d rejects..."
+msgstr[0] "S'està aplicant el pedaç %%s amb %d rebuig..."
+msgstr[1] "S'està aplicant el pedaç %%s amb %d rebuitjos..."
 
-#: commit.c:40 builtin/am.c:433 builtin/am.c:469 builtin/am.c:1505
-#: builtin/am.c:2119
+#: apply.c:4532
 #, c-format
-msgid "could not parse %s"
-msgstr "no s'ha pogut analitzar %s"
+msgid "truncating .rej filename to %.*s.rej"
+msgstr "s'està truncant el nom del fitxer .rej a %.*s.rej"
 
-#: commit.c:42
+#: apply.c:4540 builtin/fetch.c:740 builtin/fetch.c:989
 #, c-format
-msgid "%s %s is not a commit!"
-msgstr "%s %s no és una comissió!"
+msgid "cannot open %s"
+msgstr "no es pot obrir %s"
 
-#: compat/obstack.c:406 compat/obstack.c:408
-msgid "memory exhausted"
-msgstr "memòria esgotada"
+#: apply.c:4554
+#, c-format
+msgid "Hunk #%d applied cleanly."
+msgstr "El tros #%d s'ha aplicat netament."
 
-#: config.c:516
+#: apply.c:4558
 #, c-format
-msgid "bad config line %d in blob %s"
-msgstr "línia de configuració dolenta %d en el blob %s"
+msgid "Rejected hunk #%d."
+msgstr "S'ha rebutjat el tros #%d."
 
-#: config.c:520
+#: apply.c:4668
 #, c-format
-msgid "bad config line %d in file %s"
-msgstr "línia de configuració dolenta %d en el fitxer %s"
+msgid "Skipped patch '%s'."
+msgstr "S'ha saltat el pedaç '%s'."
 
-#: config.c:524
+#: apply.c:4676
+msgid "unrecognized input"
+msgstr "entrada no reconeguda"
+
+#: apply.c:4695
+msgid "unable to read index file"
+msgstr "no es pot llegir el fitxer d'índex"
+
+#: apply.c:4833
 #, c-format
-msgid "bad config line %d in standard input"
-msgstr "línia de configuració dolenta %d en l'entrada estàndard"
+msgid "can't open patch '%s': %s"
+msgstr "no es pot obrir el pedaç '%s': %s"
 
-#: config.c:528
+#: apply.c:4858
 #, c-format
-msgid "bad config line %d in submodule-blob %s"
-msgstr "línia de configuració dolenta %d en el blob de submòdul %s"
+msgid "squelched %d whitespace error"
+msgid_plural "squelched %d whitespace errors"
+msgstr[0] "s'ha omès %d error d'espai en blanc"
+msgstr[1] "s'han omès %d errors d'espai en blanc"
 
-#: config.c:532
+#: apply.c:4864 apply.c:4879
 #, c-format
-msgid "bad config line %d in command line %s"
-msgstr "línia de configuració dolenta %d en la línia d'ordres %s"
+msgid "%d line adds whitespace errors."
+msgid_plural "%d lines add whitespace errors."
+msgstr[0] "%d línia afegeix errors d'espai en blanc."
+msgstr[1] "%d línies afegeixen errors d'espai en blanc."
 
-#: config.c:536
+#: apply.c:4872
 #, c-format
-msgid "bad config line %d in %s"
-msgstr "línia de configuració dolenta %d en %s"
+msgid "%d line applied after fixing whitespace errors."
+msgid_plural "%d lines applied after fixing whitespace errors."
+msgstr[0] ""
+"S'ha aplicat %d línia desprès d'arreglar els errors d'espai en blanc."
+msgstr[1] ""
+"S'han aplicat %d línies desprès d'arreglar els errors d'espai en blanc."
 
-#: config.c:655
-msgid "out of range"
-msgstr "fora de rang"
+#: apply.c:4888 builtin/add.c:463 builtin/mv.c:286 builtin/rm.c:431
+msgid "Unable to write new index file"
+msgstr "no s'ha pogut escriure un fitxer d'índex nou"
 
-#: config.c:655
-msgid "invalid unit"
-msgstr "unitat no vàlida"
+#: apply.c:4919 apply.c:4922 builtin/am.c:2277 builtin/am.c:2280
+#: builtin/clone.c:95 builtin/fetch.c:98 builtin/pull.c:180
+#: builtin/submodule--helper.c:281 builtin/submodule--helper.c:407
+#: builtin/submodule--helper.c:589 builtin/submodule--helper.c:592
+#: builtin/submodule--helper.c:944 builtin/submodule--helper.c:947
+msgid "path"
+msgstr "camí"
 
-#: config.c:661
-#, c-format
-msgid "bad numeric config value '%s' for '%s': %s"
-msgstr "valor de configuració numèric dolent '%s' per '%s': %s"
+#: apply.c:4920
+msgid "don't apply changes matching the given path"
+msgstr "no apliquis els canvis que coincideixin amb el camí donat"
 
-#: config.c:666
-#, c-format
-msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
-msgstr "valor de configuració numèric dolent '%s' per '%s' en el blob %s: %s"
+#: apply.c:4923
+msgid "apply changes matching the given path"
+msgstr "aplica els canvis que coincideixin amb el camí donat"
 
-#: config.c:669
-#, c-format
-msgid "bad numeric config value '%s' for '%s' in file %s: %s"
-msgstr "valor de configuració numèric dolent '%s' per '%s' en el fitxer %s: %s"
+#: apply.c:4925 builtin/am.c:2286
+msgid "num"
+msgstr "número"
 
-#: config.c:672
-#, c-format
-msgid "bad numeric config value '%s' for '%s' in standard input: %s"
+#: apply.c:4926
+msgid "remove <num> leading slashes from traditional diff paths"
 msgstr ""
-"valor de configuració numèric dolent '%s' per '%s' en l'entrada estàndard: %s"
+"elimina <nombre> barres obliqües inicials dels camins de diferència "
+"tradicionals"
 
-#: config.c:675
-#, c-format
-msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
-msgstr ""
-"valor de configuració numèric dolent '%s' per '%s' en el blob de submòdul "
-"%s: %s"
+#: apply.c:4929
+msgid "ignore additions made by the patch"
+msgstr "ignora afegiments fets pel pedaç"
 
-#: config.c:678
-#, c-format
-msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
+#: apply.c:4931
+msgid "instead of applying the patch, output diffstat for the input"
 msgstr ""
-"valor de configuració numèric dolent '%s' per '%s' en la línia d'ordres %s: "
-"%s"
+"en lloc d'aplicar el pedaç, emet les estadístiques de diferència de l'entrada"
 
-#: config.c:681
-#, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "valor de configuració numèric dolent '%s' per '%s' en %s: %s"
+#: apply.c:4935
+msgid "show number of added and deleted lines in decimal notation"
+msgstr "mostra el nombre de línies afegides i suprimides en notació decimal"
 
-#: config.c:768
-#, c-format
-msgid "failed to expand user dir in: '%s'"
-msgstr "s'ha fallat en expandir el directori d'usuari en '%s'"
+#: apply.c:4937
+msgid "instead of applying the patch, output a summary for the input"
+msgstr "en lloc d'aplicar el pedaç, emet un resum de l'entrada"
 
-#: config.c:849 config.c:860
-#, c-format
-msgid "bad zlib compression level %d"
-msgstr "nivell de compressió de zlib dolent %d"
+#: apply.c:4939
+msgid "instead of applying the patch, see if the patch is applicable"
+msgstr "en lloc d'aplicar el pedaç, veges si el pedaç és aplicable"
 
-#: config.c:978
-#, c-format
-msgid "invalid mode for object creation: %s"
-msgstr "mode de creació d'objecte no vàlid: %s"
+#: apply.c:4941
+msgid "make sure the patch is applicable to the current index"
+msgstr "assegura que el pedaç sigui aplicable a l'índex actual"
 
-#: config.c:1312
-msgid "unable to parse command-line config"
-msgstr "no s'ha pogut analitzar la configuració de la línia d'ordres"
+#: apply.c:4943
+msgid "apply a patch without touching the working tree"
+msgstr "aplica un pedaç sense tocar l'arbre de treball"
 
-#: config.c:1362
-msgid "unknown error occurred while reading the configuration files"
-msgstr "un error desconegut ha ocorregut en llegir els fitxers de configuració"
+#: apply.c:4945
+msgid "accept a patch that touches outside the working area"
+msgstr "accepta un pedaç que toqui fora de l'àrea de treball"
 
-#: config.c:1716
-#, c-format
-msgid "unable to parse '%s' from command-line config"
-msgstr "no s'ha pogut analitzar '%s' de la configuració de la línia d'ordres"
+#: apply.c:4947
+msgid "also apply the patch (use with --stat/--summary/--check)"
+msgstr "aplica el pedaç també (useu amb --stat/--summary/--check)"
 
-#: config.c:1718
-#, c-format
-msgid "bad config variable '%s' in file '%s' at line %d"
-msgstr "variable de configuració dolenta '%s' en el fitxer '%s' a la línia %d"
+#: apply.c:4949
+msgid "attempt three-way merge if a patch does not apply"
+msgstr "intenta una fusió de tres vies si el pedaç no s'aplica"
 
-#: config.c:1777
-#, c-format
-msgid "%s has multiple values"
-msgstr "%s té múltiples valors"
+#: apply.c:4951
+msgid "build a temporary index based on embedded index information"
+msgstr "construeix un índex temporal basat en la informació d'índex incrustada"
 
-#: config.c:2311
-#, c-format
-msgid "could not set '%s' to '%s'"
-msgstr "no s'ha pogut establir '%s' a '%s'"
+#: apply.c:4954 builtin/checkout-index.c:169 builtin/ls-files.c:505
+msgid "paths are separated with NUL character"
+msgstr "els camins se separen amb el caràcter NUL"
 
-#: config.c:2313
-#, c-format
-msgid "could not unset '%s'"
-msgstr "no s'ha pogut desestablir '%s'"
+#: apply.c:4956
+msgid "ensure at least <n> lines of context match"
+msgstr "assegura't que almenys <n> línies de context coincideixin"
 
-#: connected.c:63 builtin/fsck.c:173 builtin/prune.c:140
-msgid "Checking connectivity"
-msgstr "S'està comprovant la connectivitat"
+#: apply.c:4957 builtin/am.c:2265
+msgid "action"
+msgstr "acció"
 
-#: connected.c:74
-msgid "Could not run 'git rev-list'"
-msgstr "No s'ha pogut executar 'git rev-list'"
+#: apply.c:4958
+msgid "detect new or modified lines that have whitespace errors"
+msgstr ""
+"detecta les línies noves o modificades que tinguin errors d'espai en blanc"
 
-#: connected.c:94
-msgid "failed write to rev-list"
-msgstr "escriptura fallada a rev-list"
+#: apply.c:4961 apply.c:4964
+msgid "ignore changes in whitespace when finding context"
+msgstr "ignora els canvis d'espai en blanc en cercar context"
 
-#: connected.c:101
-msgid "failed to close rev-list's stdin"
-msgstr "s'ha fallat en tancar l'stdin del rev-list"
+#: apply.c:4967
+msgid "apply the patch in reverse"
+msgstr "aplica el pedaç al revés"
 
-#: date.c:97
-msgid "in the future"
-msgstr "en el futur"
+#: apply.c:4969
+msgid "don't expect at least one line of context"
+msgstr "no esperis almenys una línia de context"
 
-#: date.c:103
-#, c-format
-msgid "%lu second ago"
-msgid_plural "%lu seconds ago"
-msgstr[0] "fa %lu segon"
-msgstr[1] "fa %lu segons"
+#: apply.c:4971
+msgid "leave the rejected hunks in corresponding *.rej files"
+msgstr "deixa els trossos rebutjats en fitxers *.reg corresponents"
 
-#: date.c:110
-#, c-format
-msgid "%lu minute ago"
-msgid_plural "%lu minutes ago"
-msgstr[0] "fa %lu minut"
-msgstr[1] "fa %lu minuts"
+#: apply.c:4973
+msgid "allow overlapping hunks"
+msgstr "permet trossos encavalcants"
 
-#: date.c:117
-#, c-format
-msgid "%lu hour ago"
-msgid_plural "%lu hours ago"
-msgstr[0] "fa %lu hora"
-msgstr[1] "fa %lu hores"
+#: apply.c:4974 builtin/add.c:267 builtin/check-ignore.c:19
+#: builtin/commit.c:1339 builtin/count-objects.c:94 builtin/fsck.c:593
+#: builtin/log.c:1860 builtin/mv.c:110 builtin/read-tree.c:114
+msgid "be verbose"
+msgstr "sigues detallat"
 
-#: date.c:124
-#, c-format
-msgid "%lu day ago"
-msgid_plural "%lu days ago"
-msgstr[0] "fa %lu dia"
-msgstr[1] "fa %lu dies"
+#: apply.c:4976
+msgid "tolerate incorrectly detected missing new-line at the end of file"
+msgstr "tolera una línia nova incorrectament detectada al final del fitxer"
 
-#: date.c:130
-#, c-format
-msgid "%lu week ago"
-msgid_plural "%lu weeks ago"
-msgstr[0] "fa %lu setmana"
-msgstr[1] "fa %lu setmanes"
+#: apply.c:4979
+msgid "do not trust the line counts in the hunk headers"
+msgstr "no confiïs en els recomptes de línia en les capçaleres dels trossos"
 
-#: date.c:137
-#, c-format
-msgid "%lu month ago"
-msgid_plural "%lu months ago"
-msgstr[0] "fa %lu mes"
-msgstr[1] "fa %lu mesos"
+#: apply.c:4981 builtin/am.c:2274
+msgid "root"
+msgstr "arrel"
 
-#: date.c:148
-#, c-format
-msgid "%lu year"
-msgid_plural "%lu years"
-msgstr[0] "%lu any"
-msgstr[1] "%lu anys"
+#: apply.c:4982
+msgid "prepend <root> to all filenames"
+msgstr "anteposa <arrel> a tots els noms de fitxer"
 
-#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:151
-#, c-format
-msgid "%s, %lu month ago"
-msgid_plural "%s, %lu months ago"
-msgstr[0] "fa %s i %lu mes"
-msgstr[1] "fa %s i %lu mesos"
+#: archive.c:12
+msgid "git archive [<options>] <tree-ish> [<path>...]"
+msgstr "git archive [<opcions>] <arbre> [<camí>...]"
 
-#: date.c:156 date.c:161
-#, c-format
-msgid "%lu year ago"
-msgid_plural "%lu years ago"
-msgstr[0] "fa %lu any"
-msgstr[1] "fa %lu anys"
+#: archive.c:13
+msgid "git archive --list"
+msgstr "git archive --list"
 
-#: diffcore-order.c:24
-#, c-format
-msgid "failed to read orderfile '%s'"
-msgstr "s'ha fallat en llegir el fitxer d'ordres '%s'"
+#: archive.c:14
+msgid ""
+"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
+msgstr ""
+"git archive --remote <dipòsit> [--exec <ordre>] [<opcions>] <arbre> "
+"[<camí>...]"
 
-#: diffcore-rename.c:540
-msgid "Performing inexact rename detection"
-msgstr "S'està realitzant una detecció inexacta de canvis de nom"
+#: archive.c:15
+msgid "git archive --remote <repo> [--exec <cmd>] --list"
+msgstr "git archive --remote <dipòsit> [--exec <ordre>] --list"
 
-#: diff.c:116
+#: archive.c:344 builtin/add.c:152 builtin/add.c:442 builtin/rm.c:327
 #, c-format
-msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
-msgstr "  S'ha fallat en analitzar el percentatge limitant de dirstat '%s'\n"
+msgid "pathspec '%s' did not match any files"
+msgstr "l'especificació de camí '%s' no ha coincidit amb cap fitxer"
 
-#: diff.c:121
-#, c-format
-msgid "  Unknown dirstat parameter '%s'\n"
-msgstr "  Paràmetre de dirstat desconegut '%s'\n"
+#: archive.c:429
+msgid "fmt"
+msgstr "format"
 
-#: diff.c:225
-#, c-format
-msgid "Unknown value for 'diff.submodule' config variable: '%s'"
-msgstr ""
-"Valor desconegut de la variable de configuració de 'diff.submodule': '%s'"
+#: archive.c:429
+msgid "archive format"
+msgstr "format d'arxiu"
 
-#: diff.c:277
-#, c-format
-msgid ""
-"Found errors in 'diff.dirstat' config variable:\n"
-"%s"
-msgstr ""
-"S'han trobat errors en la variable de configuració 'diff.dirstat':\n"
-"%s"
+#: archive.c:430 builtin/log.c:1429
+msgid "prefix"
+msgstr "prefix"
 
-#: diff.c:3017
-#, c-format
-msgid "external diff died, stopping at %s"
-msgstr "El diff external s'ha mort, s'està aturant a %s"
+#: archive.c:431
+msgid "prepend prefix to each pathname in the archive"
+msgstr "anteposa el prefix a cada nom de camí en l'arxiu"
 
-#: diff.c:3415
-msgid "--follow requires exactly one pathspec"
-msgstr "--follow requereix exactament una especificació de camí"
+#: archive.c:432 builtin/blame.c:2603 builtin/blame.c:2604 builtin/config.c:59
+#: builtin/fast-export.c:987 builtin/fast-export.c:989 builtin/grep.c:723
+#: builtin/hash-object.c:101 builtin/ls-files.c:539 builtin/ls-files.c:542
+#: builtin/notes.c:401 builtin/notes.c:564 builtin/read-tree.c:109
+#: parse-options.h:153
+msgid "file"
+msgstr "fitxer"
 
-#: diff.c:3578
-#, c-format
-msgid ""
-"Failed to parse --dirstat/-X option parameter:\n"
-"%s"
-msgstr ""
-"S'ha fallat en analitzar el paràmetre d'opció de --dirstat/-X:\n"
-"%s"
+#: archive.c:433 builtin/archive.c:89
+msgid "write the archive to this file"
+msgstr "escriu l'arxiu a aquest fitxer"
 
-#: diff.c:3592
-#, c-format
-msgid "Failed to parse --submodule option parameter: '%s'"
-msgstr "S'ha fallat en analitzar el paràmetre d'opció de --submodule: %s"
+#: archive.c:435
+msgid "read .gitattributes in working directory"
+msgstr "llegeix .gitattributes en el directori de treball"
 
-#: dir.c:1823
-msgid "failed to get kernel name and information"
-msgstr "s'ha fallat en obtenir el nombre i la informació del nucli"
+#: archive.c:436
+msgid "report archived files on stderr"
+msgstr "informa de fitxers arxivats en stderr"
 
-#: dir.c:1942
-msgid "Untracked cache is disabled on this system or location."
-msgstr ""
-"La memòria cau no seguida està inhabilitada en aquest sistema o ubicació."
+#: archive.c:437
+msgid "store only"
+msgstr "només emmagatzema"
 
-#: gpg-interface.c:178
-msgid "gpg failed to sign the data"
-msgstr "gpg ha fallat en signar les dades"
+#: archive.c:438
+msgid "compress faster"
+msgstr "comprimeix més ràpidament"
 
-#: gpg-interface.c:208
-msgid "could not create temporary file"
-msgstr "no s'ha pogut crear el fitxer temporal"
+#: archive.c:446
+msgid "compress better"
+msgstr "comprimeix millor"
 
-#: gpg-interface.c:210
-#, c-format
-msgid "failed writing detached signature to '%s'"
-msgstr "s'ha fallat en escriure la signatura separada a '%s'"
+#: archive.c:449
+msgid "list supported archive formats"
+msgstr "allista els formats d'arxiu admesos"
 
-#: grep.c:1792
-#, c-format
-msgid "'%s': unable to read %s"
-msgstr "'%s': no s'ha pogut llegir %s"
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:85 builtin/clone.c:88
+#: builtin/submodule--helper.c:601 builtin/submodule--helper.c:953
+msgid "repo"
+msgstr "dipòsit"
 
-#: grep.c:1809 builtin/clone.c:382 builtin/diff.c:84 builtin/rm.c:155
-#, c-format
-msgid "failed to stat '%s'"
-msgstr "s'ha fallat en fer stat a '%s'"
+#: archive.c:452 builtin/archive.c:91
+msgid "retrieve the archive from remote repository <repo>"
+msgstr "recupera l'arxiu del dipòsit remot <dipòsit>"
 
-#: grep.c:1820
-#, c-format
-msgid "'%s': short read"
-msgstr "'%s': lectura curta"
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:485
+msgid "command"
+msgstr "ordre"
 
-#: help.c:205
-#, c-format
-msgid "available git commands in '%s'"
-msgstr "ordres de git disponibles en '%s'"
+#: archive.c:454 builtin/archive.c:93
+msgid "path to the remote git-upload-archive command"
+msgstr "camí a l'ordre git-upload-archive remota"
 
-#: help.c:212
-msgid "git commands available from elsewhere on your $PATH"
-msgstr "ordres de git disponibles d'altres llocs en el vostre $PATH"
+#: archive.c:461
+msgid "Unexpected option --remote"
+msgstr "Opció inesperada --remote"
 
-#: help.c:244
-msgid "These are common Git commands used in various situations:"
-msgstr "Aquestes són ordres del Git comunament usades en diverses situacions:"
+#: archive.c:463
+msgid "Option --exec can only be used together with --remote"
+msgstr "L'opció --exec només es pot usar junt amb --remote"
 
-#: help.c:309
-#, c-format
-msgid ""
-"'%s' appears to be a git command, but we were not\n"
-"able to execute it. Maybe git-%s is broken?"
-msgstr ""
-"'%s' sembla una ordre de git, però no hem pogut\n"
-"executar-la. Pot ser que git-%s estigui estropejat?"
+#: archive.c:465
+msgid "Unexpected option --output"
+msgstr "Opció inesperada --output"
 
-#: help.c:366
-msgid "Uh oh. Your system reports no Git commands at all."
-msgstr "Ai. El vostre sistema no informa de cap ordre de Git."
+#: archive.c:487
+#, c-format
+msgid "Unknown archive format '%s'"
+msgstr "Format d'arxiu desconegut '%s'"
 
-#: help.c:388
+#: archive.c:494
 #, c-format
+msgid "Argument not supported for format '%s': -%d"
+msgstr "Paràmetre no admès per al format '%s': -%d"
+
+#: attr.c:263
 msgid ""
-"WARNING: You called a Git command named '%s', which does not exist.\n"
-"Continuing under the assumption that you meant '%s'"
+"Negative patterns are ignored in git attributes\n"
+"Use '\\!' for literal leading exclamation."
 msgstr ""
-"ADVERTÈNCIA: Heu invocat una ordre de Git amb nom '%s', la qual no "
-"existeix.\n"
-"S'està continuant sota l'assumpció que volíeu dir '%s'"
+"Els patrons negatius s'ignoren en els atributs de git\n"
+"Useu '\\!' per exclamació capdavantera literal."
 
-#: help.c:393
+#: bisect.c:441
 #, c-format
-msgid "in %0.1f seconds automatically..."
-msgstr "en %0.1f segons automàticament..."
+msgid "Could not open file '%s'"
+msgstr "No s'ha pogut obrir el fitxer '%s'"
 
-#: help.c:400
+#: bisect.c:446
 #, c-format
-msgid "git: '%s' is not a git command. See 'git --help'."
-msgstr "git: '%s' no és una ordre de git. Vegeu 'git --help'."
+msgid "Badly quoted content in file '%s': %s"
+msgstr "Comentari amb cometes dolentes en el fitxer '%s': %s"
 
-#: help.c:404 help.c:470
-msgid ""
-"\n"
-"Did you mean this?"
-msgid_plural ""
-"\n"
-"Did you mean one of these?"
-msgstr[0] ""
-"\n"
-"Volíeu dir això?"
-msgstr[1] ""
-"\n"
-"Volíeu dir un d'aquests?"
+#: bisect.c:655
+#, c-format
+msgid "We cannot bisect more!\n"
+msgstr "No podem bisecar més!\n"
 
-#: help.c:466
+#: bisect.c:708
 #, c-format
-msgid "%s: %s - %s"
-msgstr "%s: %s - %s"
+msgid "Not a valid commit name %s"
+msgstr "No és un nom de comissió vàlid %s"
 
-#: lockfile.c:152
+#: bisect.c:732
 #, c-format
 msgid ""
-"Unable to create '%s.lock': %s.\n"
-"\n"
-"Another git process seems to be running in this repository, e.g.\n"
-"an editor opened by 'git commit'. Please make sure all processes\n"
-"are terminated then try again. If it still fails, a git process\n"
-"may have crashed in this repository earlier:\n"
-"remove the file manually to continue."
+"The merge base %s is bad.\n"
+"This means the bug has been fixed between %s and [%s].\n"
 msgstr ""
-"No s'ha pogut crear '%s.lock': %s.\n"
-"\n"
-"Sembla que un altre procés de git s'està executant en aquest\n"
-"dipòsit, per exemple, un editor obert per 'git commit'. Si us\n"
-"plau, assegureu-vos que tots els processos s'hagin terminat i\n"
-"llavors trobeu de nou. Si encara falla, potser que un procés de\n"
-"git ha tingut una pana:\n"
-"elimineu el fitxer manualment per a continuar."
+"La base de fusió %s és dolenta.\n"
+"Això vol dir que el defecte s'ha arreglat entre %s i [%s].\n"
 
-#: lockfile.c:160
+#: bisect.c:737
 #, c-format
-msgid "Unable to create '%s.lock': %s"
-msgstr "No es pot crear '%s.lock': %s"
+msgid ""
+"The merge base %s is new.\n"
+"The property has changed between %s and [%s].\n"
+msgstr ""
+"La base de fusió %s és nova.\n"
+"La propietat s'ha canviat entre %s i [%s].\n"
 
-#: merge.c:41
-msgid "failed to read the cache"
-msgstr "s'ha fallat en llegir la memòria cau"
+#: bisect.c:742
+#, c-format
+msgid ""
+"The merge base %s is %s.\n"
+"This means the first '%s' commit is between %s and [%s].\n"
+msgstr ""
+"La base de fusió %s és %s.\n"
+"Això vol dir que la primera comissió '%s' és entre %s i [%s].\n"
 
-#: merge.c:94 builtin/am.c:1992 builtin/am.c:2027 builtin/checkout.c:375
-#: builtin/checkout.c:589 builtin/clone.c:732
-msgid "unable to write new index file"
-msgstr "no s'ha pogut escriure un fitxer d'índex nou"
+#: bisect.c:750
+#, c-format
+msgid ""
+"Some %s revs are not ancestor of the %s rev.\n"
+"git bisect cannot work properly in this case.\n"
+"Maybe you mistook %s and %s revs?\n"
+msgstr ""
+"Unes revisions %s no són els avantpassats de la revisió %s.\n"
+"git bisect no pot funcionar correctament en aquest cas.\n"
+"Potser heu confós les revisions %s i %s?\n"
 
-#: merge-recursive.c:209
-msgid "(bad commit)\n"
-msgstr "(comissió dolenta)\n"
+#: bisect.c:763
+#, c-format
+msgid ""
+"the merge base between %s and [%s] must be skipped.\n"
+"So we cannot be sure the first %s commit is between %s and %s.\n"
+"We continue anyway."
+msgstr ""
+"s'ha de saltar la base de fusió entre %s i [%s].\n"
+"Llavors, no podem estar segurs de que la primera comissió %s sigui entre %s "
+"i %s.\n"
+"Continuem de totes maneres."
 
-#: merge-recursive.c:231
+#: bisect.c:798
 #, c-format
-msgid "addinfo_cache failed for path '%s'"
-msgstr "addinfo_cache ha fallat per al camí '%s'"
+msgid "Bisecting: a merge base must be tested\n"
+msgstr "Bisecant: s'ha de provar una base de fusió\n"
 
-#: merge-recursive.c:301
-msgid "error building trees"
-msgstr "error en construir arbres"
+#: bisect.c:849
+#, c-format
+msgid "a %s revision is needed"
+msgstr "es necessita una revisió %s"
 
-#: merge-recursive.c:720
+#: bisect.c:866 builtin/notes.c:174 builtin/tag.c:248
 #, c-format
-msgid "failed to create path '%s'%s"
-msgstr "s'ha fallat en crear el camí '%s' %s"
+msgid "could not create file '%s'"
+msgstr "no s'ha pogut crear el fitxer '%s'"
 
-#: merge-recursive.c:731
+#: bisect.c:917
 #, c-format
-msgid "Removing %s to make room for subdirectory\n"
-msgstr "S'està eliminant %s per a fer espai per al subdirectori\n"
+msgid "could not read file '%s'"
+msgstr "no s'ha pogut llegir el fitxer '%s'"
 
-#: merge-recursive.c:745 merge-recursive.c:764
-msgid ": perhaps a D/F conflict?"
-msgstr ": potser un conflicte D/F?"
+#: bisect.c:947
+msgid "reading bisect refs failed"
+msgstr "la lectura de les referències de bisecció ha fallat"
 
-#: merge-recursive.c:754
+#: bisect.c:967
 #, c-format
-msgid "refusing to lose untracked file at '%s'"
-msgstr "s'està refusant perdre el fitxer no seguit a '%s'"
+msgid "%s was both %s and %s\n"
+msgstr "%s era ambdós %s i %s\n"
 
-#: merge-recursive.c:796
+#: bisect.c:975
 #, c-format
-msgid "cannot read object %s '%s'"
-msgstr "no es pot llegir l'objecte %s '%s'"
+msgid ""
+"No testable commit found.\n"
+"Maybe you started with bad path parameters?\n"
+msgstr ""
+"No s'ha trobat cap comissió provable.\n"
+"Potser heu començat amb paràmetres de camí dolents?\n"
 
-#: merge-recursive.c:798
+#: bisect.c:994
 #, c-format
-msgid "blob expected for %s '%s'"
-msgstr "blob esperat per a %s '%s'"
+msgid "(roughly %d step)"
+msgid_plural "(roughly %d steps)"
+msgstr[0] "(aproximadament %d pas)"
+msgstr[1] "(aproximadament %d passos)"
 
-#: merge-recursive.c:822
+#. TRANSLATORS: the last %s will be replaced with
+#. "(roughly %d steps)" translation
+#: bisect.c:998
 #, c-format
-msgid "failed to open '%s': %s"
-msgstr "s'ha fallat en obrir '%s': %s"
+msgid "Bisecting: %d revision left to test after this %s\n"
+msgid_plural "Bisecting: %d revisions left to test after this %s\n"
+msgstr[0] "Bisecant: manca %d revisió a provar després d'aquesta %s\n"
+msgstr[1] "Bisecant: manquen %d revisions a provar després d'aquesta %s\n"
 
-#: merge-recursive.c:833
+#: branch.c:53
 #, c-format
-msgid "failed to symlink '%s': %s"
-msgstr "s'ha fallat en fer l'enllaç simbòlic '%s': %s"
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Després de corregir la causa de l'error, podeu\n"
+"intentar corregir la informació de seguiment remot\n"
+"invocant \"git branch --set-upstream-to=%s%s%s\"."
 
-#: merge-recursive.c:838
+#: branch.c:67
 #, c-format
-msgid "do not know what to do with %06o %s '%s'"
-msgstr "no se sap què fer amb %06o %s '%s'"
-
-#: merge-recursive.c:978
-msgid "Failed to execute internal merge"
-msgstr "S'ha fallat en executar la fusió interna"
+msgid "Not setting branch %s as its own upstream."
+msgstr "No s'està establint la branca %s com a la seva pròpia font."
 
-#: merge-recursive.c:982
+#: branch.c:93
 #, c-format
-msgid "Unable to add %s to database"
-msgstr "no s'ha pogut afegir %s a la base de dades"
+msgid "Branch %s set up to track remote branch %s from %s by rebasing."
+msgstr ""
+"La branca %s està configurada per a seguir la branca remota %s de %s per "
+"rebasar."
 
-#: merge-recursive.c:1081 merge-recursive.c:1095
+#: branch.c:94
 #, c-format
-msgid ""
-"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
-"in tree."
-msgstr ""
-"CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
-"s'ha deixat en l'arbre."
+msgid "Branch %s set up to track remote branch %s from %s."
+msgstr "La branca %s està configurada per a seguir la branca remota %s de %s."
 
-#: merge-recursive.c:1087 merge-recursive.c:1100
+#: branch.c:98
 #, c-format
-msgid ""
-"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
-"in tree at %s."
+msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr ""
-"CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
-"s'ha deixat en l'arbre a %s."
-
-#: merge-recursive.c:1143
-msgid "rename"
-msgstr "canvia de nom"
-
-#: merge-recursive.c:1143
-msgid "renamed"
-msgstr "canviat de nom"
+"La branca %s està configurada per a seguir la branca local %s per rebasar."
 
-#: merge-recursive.c:1200
+#: branch.c:99
 #, c-format
-msgid "%s is a directory in %s adding as %s instead"
-msgstr "%s és un directori en %s; s'està afegint com a %s en lloc d'això"
+msgid "Branch %s set up to track local branch %s."
+msgstr "La branca %s està configurada per a seguir la branca local %s."
 
-#: merge-recursive.c:1225
+#: branch.c:104
 #, c-format
-msgid ""
-"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
-"\"->\"%s\" in \"%s\"%s"
+msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr ""
-"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom \"%s\"->\"%s\" en la "
-"branca \"%s\" canvi de nom \"%s\"->\"%s\" en \"%s\"%s"
+"La branca %s està configurada per a seguir la referència remota %s per "
+"rebasar."
 
-#: merge-recursive.c:1230
-msgid " (left unresolved)"
-msgstr " (deixat sense resolució)"
+#: branch.c:105
+#, c-format
+msgid "Branch %s set up to track remote ref %s."
+msgstr "La branca %s està configurada per a seguir la referència remota %s."
 
-#: merge-recursive.c:1292
+#: branch.c:109
 #, c-format
-msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
+msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
-"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom %s->%s en %s. Canvi de "
-"nom %s->%s en %s"
+"La branca %s està configurada per a seguir la referència local %s per "
+"rebasar."
 
-#: merge-recursive.c:1325
+#: branch.c:110
 #, c-format
-msgid "Renaming %s to %s and %s to %s instead"
-msgstr "S'està canviant el nom de %s a %s i %s a %s en lloc d'això"
+msgid "Branch %s set up to track local ref %s."
+msgstr "La branca %s està configurada per a seguir la referència local %s."
 
-#: merge-recursive.c:1531
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "No es pot escriure la configuració de la branca font"
+
+#: branch.c:156
 #, c-format
-msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
-msgstr ""
-"CONFLICTE (canvi de nom/afegiment): Canvi de nom %s->%s en %s. %s afegit en "
-"%s"
+msgid "Not tracking: ambiguous information for ref %s"
+msgstr "No seguint: informació ambigua per a la referència %s"
 
-#: merge-recursive.c:1546
+#: branch.c:185
 #, c-format
-msgid "Adding merged %s"
-msgstr "S'està afegint %s fusionat"
+msgid "'%s' is not a valid branch name."
+msgstr "'%s' no és un nom de branca vàlid."
 
-#: merge-recursive.c:1553 merge-recursive.c:1766
+#: branch.c:190
 #, c-format
-msgid "Adding as %s instead"
-msgstr "S'està afegint com a %s en lloc d'això"
+msgid "A branch named '%s' already exists."
+msgstr "Una branca amb nom '%s' ja existeix."
 
-#: merge-recursive.c:1610
+#: branch.c:198
+msgid "Cannot force update the current branch."
+msgstr "No es pot actualitzar la branca actual a la força."
+
+#: branch.c:218
 #, c-format
-msgid "cannot read object %s"
-msgstr "no es pot llegir l'objecte %s"
+msgid "Cannot setup tracking information; starting point '%s' is not a branch."
+msgstr ""
+"No es pot configurar la informació de seguiment; el punt inicial '%s' no és "
+"una branca."
 
-#: merge-recursive.c:1613
+#: branch.c:220
 #, c-format
-msgid "object %s is not a blob"
-msgstr "L'objecte %s no és un blob"
+msgid "the requested upstream branch '%s' does not exist"
+msgstr "la branca font demanada '%s' no existeix"
 
-#: merge-recursive.c:1666
-msgid "modify"
-msgstr "modifica"
+#: branch.c:222
+msgid ""
+"\n"
+"If you are planning on basing your work on an upstream\n"
+"branch that already exists at the remote, you may need to\n"
+"run \"git fetch\" to retrieve it.\n"
+"\n"
+"If you are planning to push out a new local branch that\n"
+"will track its remote counterpart, you may want to use\n"
+"\"git push -u\" to set the upstream config as you push."
+msgstr ""
+"\n"
+"Si teniu pensat basar el vostre treball en una branca\n"
+"font que ja existeix al remot, pot ser que necessiteu\n"
+"executar \"git fetch\" per a obtenir-la.\n"
+"\n"
+"Si teniu pensat pujar una branca local nova que seguirà\n"
+"la seva contrapart remota, pot ser que vulgueu usar\n"
+"\"git push -u\" per a establir la configuració font\n"
+"mentre pugeu."
 
-#: merge-recursive.c:1666
-msgid "modified"
-msgstr "modificat"
+#: branch.c:265
+#, c-format
+msgid "Not a valid object name: '%s'."
+msgstr "No és un nom d'objecte vàlid: '%s'."
 
-#: merge-recursive.c:1676
-msgid "content"
-msgstr "contingut"
+#: branch.c:285
+#, c-format
+msgid "Ambiguous object name: '%s'."
+msgstr "Nom d'objecte ambigu: '%s'."
 
-#: merge-recursive.c:1683
-msgid "add/add"
-msgstr "afegiment/afegiment"
+#: branch.c:290
+#, c-format
+msgid "Not a valid branch point: '%s'."
+msgstr "No és un punt de ramificació vàlid: '%s'."
 
-#: merge-recursive.c:1718
+#: branch.c:344
 #, c-format
-msgid "Skipped %s (merged same as existing)"
-msgstr "S'ha saltat %s (el fusionat és igual a l'existent)"
+msgid "'%s' is already checked out at '%s'"
+msgstr "'%s' ja s'ha agafat a '%s'"
 
-#: merge-recursive.c:1732
+#: branch.c:363
 #, c-format
-msgid "Auto-merging %s"
-msgstr "S'està autofusionant %s"
+msgid "HEAD of working tree %s is not updated"
+msgstr "La HEAD de l'arbre de treball %s no està actualitzat"
 
-#: merge-recursive.c:1736 git-submodule.sh:919
-msgid "submodule"
-msgstr "submòdul"
+#: bundle.c:34
+#, c-format
+msgid "'%s' does not look like a v2 bundle file"
+msgstr "'%s' no sembla un fitxer de farcell v2"
 
-#: merge-recursive.c:1737
+#: bundle.c:61
 #, c-format
-msgid "CONFLICT (%s): Merge conflict in %s"
-msgstr "CONFLICTE (%s): Conflicte de fusió en %s"
+msgid "unrecognized header: %s%s (%d)"
+msgstr "capçalera no reconeguda: %s%s (%d)"
 
-#: merge-recursive.c:1831
+#: bundle.c:87 sequencer.c:963 builtin/commit.c:777
 #, c-format
-msgid "Removing %s"
-msgstr "S'està eliminant %s"
+msgid "could not open '%s'"
+msgstr "no s'ha pogut obrir '%s'"
 
-#: merge-recursive.c:1857
-msgid "file/directory"
-msgstr "fitxer/directori"
+#: bundle.c:139
+msgid "Repository lacks these prerequisite commits:"
+msgstr "Al dipòsit li manquen aquestes comissions prerequisits:"
 
-#: merge-recursive.c:1863
-msgid "directory/file"
-msgstr "directori/fitxer"
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:830 sequencer.c:1374
+#: builtin/blame.c:2814 builtin/commit.c:1061 builtin/log.c:348
+#: builtin/log.c:890 builtin/log.c:1340 builtin/log.c:1666 builtin/log.c:1909
+#: builtin/merge.c:356 builtin/shortlog.c:170
+msgid "revision walk setup failed"
+msgstr "la configuració del passeig per revisions ha fallat"
 
-#: merge-recursive.c:1868
+#: bundle.c:185
 #, c-format
-msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
-msgstr ""
-"CONFLICTE (%s): Hi ha un directori amb nom %s en %s. S'està afegint %s com a "
-"%s"
-
-#: merge-recursive.c:1877
-#, c-format
-msgid "Adding %s"
-msgstr "S'està afegint %s"
+msgid "The bundle contains this ref:"
+msgid_plural "The bundle contains these %d refs:"
+msgstr[0] "El farcell conté aquesta referència:"
+msgstr[1] "El farcell conté aquestes %d referències:"
 
-#: merge-recursive.c:1914
-msgid "Already up-to-date!"
-msgstr "Ja està al dia!"
+#: bundle.c:192
+msgid "The bundle records a complete history."
+msgstr "El farcell registra una història completa."
 
-#: merge-recursive.c:1923
+#: bundle.c:194
 #, c-format
-msgid "merging of trees %s and %s failed"
-msgstr "la fusió dels arbres %s i %s ha fallat"
+msgid "The bundle requires this ref:"
+msgid_plural "The bundle requires these %d refs:"
+msgstr[0] "El farcell requereix aquesta referència:"
+msgstr[1] "El farcell requereix aquestes %d referències:"
 
-#: merge-recursive.c:2006
-msgid "Merging:"
-msgstr "Fusionant:"
+#: bundle.c:253
+msgid "Could not spawn pack-objects"
+msgstr "No s'ha pogut executar el pack-objects"
 
-#: merge-recursive.c:2019
-#, c-format
-msgid "found %u common ancestor:"
-msgid_plural "found %u common ancestors:"
-msgstr[0] "s'ha trobat %u avantpassat:"
-msgstr[1] "s'han trobat %u avantpassats:"
+#: bundle.c:264
+msgid "pack-objects died"
+msgstr "El pack-objects s'ha mort"
 
-#: merge-recursive.c:2058
-msgid "merge returned no commit"
-msgstr "la fusió no ha retornat cap comissió"
+#: bundle.c:304
+msgid "rev-list died"
+msgstr "El rev-list s'ha mort"
 
-#: merge-recursive.c:2121
+#: bundle.c:353
 #, c-format
-msgid "Could not parse object '%s'"
-msgstr "No s'ha pogut analitzar l'objecte '%s'"
+msgid "ref '%s' is excluded by the rev-list options"
+msgstr "les opcions de la llista de revisions exclouen la referència '%s'"
 
-#: merge-recursive.c:2135 builtin/merge.c:641 builtin/merge.c:788
-msgid "Unable to write index."
-msgstr "No s'ha pogut escriure l'índex."
+#: bundle.c:443 builtin/log.c:165 builtin/log.c:1572 builtin/shortlog.c:273
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "paràmetre no reconegut: %s"
 
-#: notes-utils.c:41
-msgid "Cannot commit uninitialized/unreferenced notes tree"
-msgstr "No es pot cometre un arbre de notes no inicialitzat / no referenciat"
+#: bundle.c:451
+msgid "Refusing to create empty bundle."
+msgstr "S'està refusant crear un farcell buit."
 
-#: notes-utils.c:100
+#: bundle.c:463
 #, c-format
-msgid "Bad notes.rewriteMode value: '%s'"
-msgstr "Valor de notes.rewriteMode dolent: '%s'"
+msgid "cannot create '%s'"
+msgstr "no es pot crear '%s'"
 
-#: notes-utils.c:110
+#: bundle.c:491
+msgid "index-pack died"
+msgstr "L'index-pack s'ha mort"
+
+#: color.c:290
 #, c-format
-msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
-msgstr "S'està refusant reescriure les notes en %s (fora de refs/notes/)"
+msgid "invalid color value: %.*s"
+msgstr "valor de color no vàlid: %.*s"
 
-#. TRANSLATORS: The first %s is the name of the
-#. environment variable, the second %s is its value
-#: notes-utils.c:137
+#: commit.c:40 builtin/am.c:421 builtin/am.c:457 builtin/am.c:1493
+#: builtin/am.c:2127
 #, c-format
-msgid "Bad %s value: '%s'"
-msgstr "Valor dolent de %s: '%s'"
+msgid "could not parse %s"
+msgstr "no s'ha pogut analitzar %s"
 
-#: object.c:242
+#: commit.c:42
 #, c-format
-msgid "unable to parse object: %s"
-msgstr "no s'ha pogut analitzar l'objecte: %s"
+msgid "%s %s is not a commit!"
+msgstr "%s %s no és una comissió!"
 
-#: parse-options.c:572
-msgid "..."
-msgstr "..."
+#: commit.c:1514
+msgid ""
+"Warning: commit message did not conform to UTF-8.\n"
+"You may want to amend it after fixing the message, or set the config\n"
+"variable i18n.commitencoding to the encoding your project uses.\n"
+msgstr ""
+"Advertència: el missatge de comissió no conformava a UTF-8.\n"
+"Potser voleu esemenar-lo després de corregir el missatge, o establir\n"
+"la variable de configuració i18n.commitencoding a la codificació que\n"
+"usi el vostre projecte.\n"
 
-#: parse-options.c:590
+#: compat/obstack.c:406 compat/obstack.c:408
+msgid "memory exhausted"
+msgstr "memòria esgotada"
+
+#: config.c:516
 #, c-format
-msgid "usage: %s"
-msgstr "ús: %s"
+msgid "bad config line %d in blob %s"
+msgstr "línia de configuració dolenta %d en el blob %s"
 
-#. TRANSLATORS: the colon here should align with the
-#. one in "usage: %s" translation
-#: parse-options.c:594
+#: config.c:520
 #, c-format
-msgid "   or: %s"
-msgstr " o: %s"
+msgid "bad config line %d in file %s"
+msgstr "línia de configuració dolenta %d en el fitxer %s"
 
-#: parse-options.c:597
+#: config.c:524
 #, c-format
-msgid "    %s"
-msgstr "    %s"
+msgid "bad config line %d in standard input"
+msgstr "línia de configuració dolenta %d en l'entrada estàndard"
 
-#: parse-options.c:631
-msgid "-NUM"
-msgstr "-NUM"
+#: config.c:528
+#, c-format
+msgid "bad config line %d in submodule-blob %s"
+msgstr "línia de configuració dolenta %d en el blob de submòdul %s"
 
-#: parse-options-cb.c:108
+#: config.c:532
 #, c-format
-msgid "malformed object name '%s'"
-msgstr "nom de camp mal format '%s'"
+msgid "bad config line %d in command line %s"
+msgstr "línia de configuració dolenta %d en la línia d'ordres %s"
 
-#: path.c:798
+#: config.c:536
 #, c-format
-msgid "Could not make %s writable by group"
-msgstr "No s'ha pogut fer %s escrivible pel grup"
+msgid "bad config line %d in %s"
+msgstr "línia de configuració dolenta %d en %s"
 
-#: pathspec.c:133
-msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
-msgstr ""
-"els ajusts d'especificació de camí 'glob' i 'noglob' globals són "
-"incompatibles"
+#: config.c:655
+msgid "out of range"
+msgstr "fora de rang"
 
-#: pathspec.c:143
-msgid ""
-"global 'literal' pathspec setting is incompatible with all other global "
-"pathspec settings"
-msgstr ""
-"l'ajust d'especificació de camí 'literal' global és incompatible amb tots "
-"els altres ajusts d'especificació de camí globals"
+#: config.c:655
+msgid "invalid unit"
+msgstr "unitat no vàlida"
 
-#: pathspec.c:177
-msgid "invalid parameter for pathspec magic 'prefix'"
-msgstr "paràmetre no vàlid per a la màgia d'especificació de camí 'prefix'"
+#: config.c:661
+#, c-format
+msgid "bad numeric config value '%s' for '%s': %s"
+msgstr "valor de configuració numèric dolent '%s' per '%s': %s"
 
-#: pathspec.c:183
+#: config.c:666
 #, c-format
-msgid "Invalid pathspec magic '%.*s' in '%s'"
-msgstr "Màgia d'especificació de camí no vàlida '%.*s' en '%s'"
+msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
+msgstr "valor de configuració numèric dolent '%s' per '%s' en el blob %s: %s"
 
-#: pathspec.c:187
+#: config.c:669
 #, c-format
-msgid "Missing ')' at the end of pathspec magic in '%s'"
-msgstr "')' mancant al final de la màgia d'especificació de camí en '%s'"
+msgid "bad numeric config value '%s' for '%s' in file %s: %s"
+msgstr "valor de configuració numèric dolent '%s' per '%s' en el fitxer %s: %s"
 
-#: pathspec.c:205
+#: config.c:672
 #, c-format
-msgid "Unimplemented pathspec magic '%c' in '%s'"
-msgstr "Màgia d'especificació de camí no implementada '%c' en '%s'"
+msgid "bad numeric config value '%s' for '%s' in standard input: %s"
+msgstr ""
+"valor de configuració numèric dolent '%s' per '%s' en l'entrada estàndard: %s"
 
-#: pathspec.c:230
+#: config.c:675
 #, c-format
-msgid "%s: 'literal' and 'glob' are incompatible"
-msgstr "%s: 'literal' i 'glob' són incompatibles"
+msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
+msgstr ""
+"valor de configuració numèric dolent '%s' per '%s' en el blob de submòdul "
+"%s: %s"
 
-#: pathspec.c:241
+#: config.c:678
 #, c-format
-msgid "%s: '%s' is outside repository"
-msgstr "%s: '%s' és fora del dipòsit"
+msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
+msgstr ""
+"valor de configuració numèric dolent '%s' per '%s' en la línia d'ordres %s: "
+"%s"
 
-#: pathspec.c:291
+#: config.c:681
 #, c-format
-msgid "Pathspec '%s' is in submodule '%.*s'"
-msgstr "L'especificació '%s' és en el submòdul '%.*s'"
+msgid "bad numeric config value '%s' for '%s' in %s: %s"
+msgstr "valor de configuració numèric dolent '%s' per '%s' en %s: %s"
 
-#: pathspec.c:353
+#: config.c:768
 #, c-format
-msgid "%s: pathspec magic not supported by this command: %s"
-msgstr ""
-"%s: aquesta ordre no és compatible amb la màgia d'especificació de camí: %s"
+msgid "failed to expand user dir in: '%s'"
+msgstr "s'ha fallat en expandir el directori d'usuari en: '%s'"
 
-#: pathspec.c:433
+#: config.c:852 config.c:863
 #, c-format
-msgid "pathspec '%s' is beyond a symbolic link"
-msgstr "l'especificació de camí '%s' és més enllà d'un enllaç simbòlic"
+msgid "bad zlib compression level %d"
+msgstr "nivell de compressió de zlib dolent %d"
 
-#: pathspec.c:442
-msgid ""
-"There is nothing to exclude from by :(exclude) patterns.\n"
-"Perhaps you forgot to add either ':/' or '.' ?"
-msgstr ""
-"No hi ha res a excloure per patrons :(exclusió).\n"
-"Potser heu oblidat afegir o ':/' o '.' ?"
+#: config.c:978
+#, c-format
+msgid "invalid mode for object creation: %s"
+msgstr "mode de creació d'objecte no vàlid: %s"
 
-#: pretty.c:973
-msgid "unable to parse --pretty format"
-msgstr "no s'ha pogut analitzar el format --pretty"
+#: config.c:1312
+msgid "unable to parse command-line config"
+msgstr "no s'ha pogut analitzar la configuració de la línia d'ordres"
 
-#: progress.c:235
-msgid "done"
-msgstr "fet"
+#: config.c:1362
+msgid "unknown error occurred while reading the configuration files"
+msgstr "un error desconegut ha ocorregut en llegir els fitxers de configuració"
 
-#: read-cache.c:1281
+#: config.c:1716
 #, c-format
-msgid ""
-"index.version set, but the value is invalid.\n"
-"Using version %i"
-msgstr ""
-"index.version establert, però el valor no és vàlid.\n"
-"S'està usant la versió %i"
+msgid "unable to parse '%s' from command-line config"
+msgstr "no s'ha pogut analitzar '%s' de la configuració de la línia d'ordres"
 
-#: read-cache.c:1291
+#: config.c:1718
 #, c-format
-msgid ""
-"GIT_INDEX_VERSION set, but the value is invalid.\n"
-"Using version %i"
-msgstr ""
-"GIT_INDEX_VERSION establert, però el valor no és vàlid.\n"
-"S'està usant la versió %i"
+msgid "bad config variable '%s' in file '%s' at line %d"
+msgstr "variable de configuració dolenta '%s' en el fitxer '%s' a la línia %d"
 
-#: refs.c:551 builtin/merge.c:840
+#: config.c:1777
 #, c-format
-msgid "Could not open '%s' for writing"
-msgstr "No s'ha pogut obrir '%s' per a escriptura"
+msgid "%s has multiple values"
+msgstr "%s té múltiples valors"
 
-#: refs/files-backend.c:2534
+#: config.c:2311
 #, c-format
-msgid "could not delete reference %s: %s"
-msgstr "no s'ha pogut suprimir la referència %s: %s"
+msgid "could not set '%s' to '%s'"
+msgstr "no s'ha pogut establir '%s' a '%s'"
 
-#: refs/files-backend.c:2537
+#: config.c:2313
 #, c-format
-msgid "could not delete references: %s"
-msgstr "no s'ha pogut suprimir les referències: %s"
+msgid "could not unset '%s'"
+msgstr "no s'ha pogut desestablir '%s'"
+
+#: connect.c:49
+msgid "The remote end hung up upon initial contact"
+msgstr "El costat remot ha penjat en el moment de contacte inicial"
+
+#: connect.c:51
+msgid ""
+"Could not read from remote repository.\n"
+"\n"
+"Please make sure you have the correct access rights\n"
+"and the repository exists."
+msgstr ""
+"No s'ha pogut llegir del dipòsit remot.\n"
+"\n"
+"Si us plau, assegureu-vos que tingueu els drets\n"
+"d'accés correctes i que el dipòsit existeixi."
+
+#: connected.c:63 builtin/fsck.c:173 builtin/prune.c:140
+msgid "Checking connectivity"
+msgstr "S'està comprovant la connectivitat"
+
+#: connected.c:75
+msgid "Could not run 'git rev-list'"
+msgstr "No s'ha pogut executar 'git rev-list'"
+
+#: connected.c:95
+msgid "failed write to rev-list"
+msgstr "escriptura fallada al rev-list"
 
-#: refs/files-backend.c:2546
+#: connected.c:102
+msgid "failed to close rev-list's stdin"
+msgstr "s'ha fallat en tancar l'stdin del rev-list"
+
+#: convert.c:201
 #, c-format
-msgid "could not remove reference %s"
-msgstr "no s'ha pogut eliminar la referència %s"
+msgid ""
+"CRLF will be replaced by LF in %s.\n"
+"The file will have its original line endings in your working directory."
+msgstr ""
+"LF reemplaçarà CRLF en %s.\n"
+"El fitxer tindrà els seus terminadors de línia originals en el vostre "
+"directori de treball."
 
-#: ref-filter.c:55
+#: convert.c:205
 #, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "format esperat: %%(color:<color>)"
+msgid "CRLF would be replaced by LF in %s."
+msgstr "LF reemplaçaria CRLF en %s."
 
-#: ref-filter.c:57
+#: convert.c:211
 #, c-format
-msgid "unrecognized color: %%(color:%s)"
-msgstr "color no reconegut: %%(color:%s)"
+msgid ""
+"LF will be replaced by CRLF in %s.\n"
+"The file will have its original line endings in your working directory."
+msgstr ""
+"CRLF reemplaçarà LF en %s.\n"
+"El fitxer tindrà els seus terminadors de línia originals en el vostre "
+"directori de treball."
 
-#: ref-filter.c:71
+#: convert.c:215
 #, c-format
-msgid "unrecognized format: %%(%s)"
-msgstr "format no reconegut: %%(%s)"
+msgid "LF would be replaced by CRLF in %s"
+msgstr "CRLF reemplaçaria LF en %s"
 
-#: ref-filter.c:77
+#: date.c:97
+msgid "in the future"
+msgstr "en el futur"
+
+#: date.c:103
 #, c-format
-msgid "%%(body) does not take arguments"
-msgstr "%%(body) no accepta paràmetres"
+msgid "%lu second ago"
+msgid_plural "%lu seconds ago"
+msgstr[0] "fa %lu segon"
+msgstr[1] "fa %lu segons"
 
-#: ref-filter.c:84
+#: date.c:110
 #, c-format
-msgid "%%(subject) does not take arguments"
-msgstr "%%(subject) no accepta paràmetres"
+msgid "%lu minute ago"
+msgid_plural "%lu minutes ago"
+msgstr[0] "fa %lu minut"
+msgstr[1] "fa %lu minuts"
 
-#: ref-filter.c:101
+#: date.c:117
 #, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "valor positiu esperat contents:lines=%s"
+msgid "%lu hour ago"
+msgid_plural "%lu hours ago"
+msgstr[0] "fa %lu hora"
+msgstr[1] "fa %lu hores"
 
-#: ref-filter.c:103
+#: date.c:124
 #, c-format
-msgid "unrecognized %%(contents) argument: %s"
-msgstr "paràmetre %%(contents) no reconegut: %s"
+msgid "%lu day ago"
+msgid_plural "%lu days ago"
+msgstr[0] "fa %lu dia"
+msgstr[1] "fa %lu dies"
 
-#: ref-filter.c:113
+#: date.c:130
 #, c-format
-msgid "unrecognized %%(objectname) argument: %s"
-msgstr "paràmetre %%(objectname) no reconegut: %s"
+msgid "%lu week ago"
+msgid_plural "%lu weeks ago"
+msgstr[0] "fa %lu setmana"
+msgstr[1] "fa %lu setmanes"
 
-#: ref-filter.c:135
+#: date.c:137
 #, c-format
-msgid "expected format: %%(align:<width>,<position>)"
-msgstr "format esperat: %%(align:<amplada>,<posició>)"
+msgid "%lu month ago"
+msgid_plural "%lu months ago"
+msgstr[0] "fa %lu mes"
+msgstr[1] "fa %lu mesos"
 
-#: ref-filter.c:147
+#: date.c:148
 #, c-format
-msgid "unrecognized position:%s"
-msgstr "posició no reconeguda:%s"
+msgid "%lu year"
+msgid_plural "%lu years"
+msgstr[0] "%lu any"
+msgstr[1] "%lu anys"
 
-#: ref-filter.c:151
+#. TRANSLATORS: "%s" is "<n> years"
+#: date.c:151
 #, c-format
-msgid "unrecognized width:%s"
-msgstr "amplada no reconeguda:%s"
+msgid "%s, %lu month ago"
+msgid_plural "%s, %lu months ago"
+msgstr[0] "fa %s i %lu mes"
+msgstr[1] "fa %s i %lu mesos"
 
-#: ref-filter.c:157
+#: date.c:156 date.c:161
 #, c-format
-msgid "unrecognized %%(align) argument: %s"
-msgstr "paràmetre %%(align) no reconegut: %s"
+msgid "%lu year ago"
+msgid_plural "%lu years ago"
+msgstr[0] "fa %lu any"
+msgstr[1] "fa %lu anys"
 
-#: ref-filter.c:161
+#: diffcore-order.c:24
 #, c-format
-msgid "positive width expected with the %%(align) atom"
-msgstr "amplada positiva esperada amb l'àtom %%(align)"
+msgid "failed to read orderfile '%s'"
+msgstr "s'ha fallat en llegir el fitxer d'ordres '%s'"
 
-#: ref-filter.c:244
+#: diffcore-rename.c:536
+msgid "Performing inexact rename detection"
+msgstr "S'està realitzant una detecció inexacta de canvis de nom"
+
+#: diff.c:62
 #, c-format
-msgid "malformed field name: %.*s"
-msgstr "nom d'objecte mal format: %.*s"
+msgid "option '%s' requires a value"
+msgstr "l'opció '%s' requereix un valor"
 
-#: ref-filter.c:270
+#: diff.c:124
 #, c-format
-msgid "unknown field name: %.*s"
-msgstr "nom de camp desconegut: %.*s"
+msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
+msgstr "  S'ha fallat en analitzar el percentatge limitant de dirstat '%s'\n"
 
-#: ref-filter.c:372
+#: diff.c:129
 #, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "format: s'ha usat l'àtom %%(end) sense l'àtom corresponent"
+msgid "  Unknown dirstat parameter '%s'\n"
+msgstr "  Paràmetre de dirstat desconegut '%s'\n"
 
-#: ref-filter.c:424
+#: diff.c:283
 #, c-format
-msgid "malformed format string %s"
-msgstr "cadena de format mal format %s"
+msgid "Unknown value for 'diff.submodule' config variable: '%s'"
+msgstr ""
+"Valor desconegut de la variable de configuració de 'diff.submodule': '%s'"
 
-#: ref-filter.c:878
-msgid ":strip= requires a positive integer argument"
-msgstr ":strip= requereix un paràmetre enter positiu"
+#: diff.c:346
+#, c-format
+msgid ""
+"Found errors in 'diff.dirstat' config variable:\n"
+"%s"
+msgstr ""
+"S'han trobat errors en la variable de configuració 'diff.dirstat':\n"
+"%s"
 
-#: ref-filter.c:883
+#: diff.c:3087
 #, c-format
-msgid "ref '%s' does not have %ld components to :strip"
-msgstr "la referència '%s' no té %ld components per a :strip"
+msgid "external diff died, stopping at %s"
+msgstr "el diff external s'ha mort, s'està aturant a %s"
 
-#: ref-filter.c:1046
+#: diff.c:3412
+msgid "--name-only, --name-status, --check and -s are mutually exclusive"
+msgstr "--name-only, --name-status, --check i -s són mutualment exclusius"
+
+#: diff.c:3502
+msgid "--follow requires exactly one pathspec"
+msgstr "--follow requereix exactament una especificació de camí"
+
+#: diff.c:3665
 #, c-format
-msgid "unknown %.*s format %s"
-msgstr "format de %.*s desconegut %s"
+msgid ""
+"Failed to parse --dirstat/-X option parameter:\n"
+"%s"
+msgstr ""
+"S'ha fallat en analitzar el paràmetre d'opció de --dirstat/-X:\n"
+"%s"
 
-#: ref-filter.c:1066 ref-filter.c:1097
+#: diff.c:3679
 #, c-format
-msgid "missing object %s for %s"
-msgstr "manca l'objecte %s per a %s"
+msgid "Failed to parse --submodule option parameter: '%s'"
+msgstr "S'ha fallat en analitzar el paràmetre d'opció de --submodule: '%s'"
 
-#: ref-filter.c:1069 ref-filter.c:1100
+#: diff.c:4700
+msgid "inexact rename detection was skipped due to too many files."
+msgstr "s'ha saltat la detecció de canvi de nom a causa de massa fitxers."
+
+#: diff.c:4703
+msgid "only found copies from modified paths due to too many files."
+msgstr ""
+"només s'han trobat còpies des de camins modificats a causa de massa fitxers."
+
+#: diff.c:4706
 #, c-format
-msgid "parse_object_buffer failed on %s for %s"
-msgstr "parse_object_buffer ha fallat en %s per a %s"
+msgid ""
+"you may want to set your %s variable to at least %d and retry the command."
+msgstr ""
+"potser voleu establir la vostra variable %s a almenys %d i tornar a intentar "
+"l'ordre."
 
-#: ref-filter.c:1311
+#: dir.c:1866
+msgid "failed to get kernel name and information"
+msgstr "s'ha fallat en obtenir el nombre i la informació del nucli"
+
+#: dir.c:1985
+msgid "Untracked cache is disabled on this system or location."
+msgstr ""
+"La memòria cau no seguida està inhabilitada en aquest sistema o ubicació."
+
+#: fetch-pack.c:213
+msgid "git fetch-pack: expected shallow list"
+msgstr "git fetch-pack: llista superficial esperada"
+
+#: fetch-pack.c:225
+msgid "git fetch-pack: expected ACK/NAK, got EOF"
+msgstr "git fetch-pack: ACK/NAK esperat, EOF rebut"
+
+#: fetch-pack.c:243
 #, c-format
-msgid "malformed object at '%s'"
-msgstr "objecte mal format a '%s'"
+msgid "git fetch-pack: expected ACK/NAK, got '%s'"
+msgstr "git fetch-pack: ACK/NAK esperat, '%s' rebut"
 
-#: ref-filter.c:1373
+#: fetch-pack.c:295
+msgid "--stateless-rpc requires multi_ack_detailed"
+msgstr "--stateless-rpc requereix multi_ack_detailed"
+
+#: fetch-pack.c:381
 #, c-format
-msgid "ignoring ref with broken name %s"
-msgstr "s'està ignorant la referència amb nom trencat %s"
+msgid "invalid shallow line: %s"
+msgstr "línia de shallow no vàlida: %s"
 
-#: ref-filter.c:1378
+#: fetch-pack.c:387
 #, c-format
-msgid "ignoring broken ref %s"
-msgstr "s'està ignorant la referència trencada %s"
+msgid "invalid unshallow line: %s"
+msgstr "línia d'unshallow no vàlida: %s"
 
-#: ref-filter.c:1651
+#: fetch-pack.c:389
 #, c-format
-msgid "format: %%(end) atom missing"
-msgstr "format: manca l'àtom %%(end)"
+msgid "object not found: %s"
+msgstr "objecte no trobat: %s"
 
-#: ref-filter.c:1705
+#: fetch-pack.c:392
 #, c-format
-msgid "malformed object name %s"
-msgstr "nom d'objecte %s mal format"
+msgid "error in object: %s"
+msgstr "error en objecte: %s"
 
-#: remote.c:746
+#: fetch-pack.c:394
 #, c-format
-msgid "Cannot fetch both %s and %s to %s"
-msgstr "No es pot obtenir ambdós %s i %s a %s"
+msgid "no shallow found: %s"
+msgstr "no s'ha trobat cap superficial: %s"
 
-#: remote.c:750
+#: fetch-pack.c:397
 #, c-format
-msgid "%s usually tracks %s, not %s"
-msgstr "%s generalment segueix %s, no %s"
+msgid "expected shallow/unshallow, got %s"
+msgstr "s'esperava shallow/unshallow, s'ha rebut %s"
 
-#: remote.c:754
+#: fetch-pack.c:436
 #, c-format
-msgid "%s tracks both %s and %s"
-msgstr "%s segueix ambdós %s i %s"
+msgid "got %s %d %s"
+msgstr "%s %d %s rebut"
 
-#: remote.c:762
-msgid "Internal error"
-msgstr "Error intern"
+#: fetch-pack.c:450
+#, c-format
+msgid "invalid commit %s"
+msgstr "comissió no vàlida %s"
 
-#: remote.c:1677 remote.c:1720
-msgid "HEAD does not point to a branch"
-msgstr "HEAD no assenyala cap branca"
+#: fetch-pack.c:483
+msgid "giving up"
+msgstr "s'està rendint"
 
-#: remote.c:1686
-#, c-format
-msgid "no such branch: '%s'"
-msgstr "no hi ha tal branca: '%s'"
+#: fetch-pack.c:493 progress.c:235
+msgid "done"
+msgstr "fet"
 
-#: remote.c:1689
+#: fetch-pack.c:505
 #, c-format
-msgid "no upstream configured for branch '%s'"
-msgstr "cap font configurada per a la branca '%s'"
+msgid "got %s (%d) %s"
+msgstr "s'ha rebut %s (%d) %s"
 
-#: remote.c:1695
+#: fetch-pack.c:551
 #, c-format
-msgid "upstream branch '%s' not stored as a remote-tracking branch"
-msgstr "La branca font '%s' no s'emmagatzema com a branca amb seguiment remot"
+msgid "Marking %s as complete"
+msgstr "S'està marcant %s com a complet"
 
-#: remote.c:1710
+#: fetch-pack.c:697
 #, c-format
-msgid "push destination '%s' on remote '%s' has no local tracking branch"
-msgstr ""
-"el destí de pujada '%s' en el remot '%s' no té cap branca seguidora local"
+msgid "already have %s (%s)"
+msgstr "ja es té %s (%s)"
 
-#: remote.c:1725
+#: fetch-pack.c:735
+msgid "fetch-pack: unable to fork off sideband demultiplexer"
+msgstr "fetch-pack: no s'ha pogut bifurcar del demultiplexor de banda lateral"
+
+#: fetch-pack.c:743
+msgid "protocol error: bad pack header"
+msgstr "error de protocol: capçalera de paquet dolent"
+
+#: fetch-pack.c:799
 #, c-format
-msgid "branch '%s' has no remote for pushing"
-msgstr "la branca '%s' no té cap remot al qual pujar"
+msgid "fetch-pack: unable to fork off %s"
+msgstr "fetch-pack: no es pot bifurcar de %s"
 
-#: remote.c:1736
+#: fetch-pack.c:815
 #, c-format
-msgid "push refspecs for '%s' do not include '%s'"
-msgstr "les especificacions de referència de '%s' no inclouen '%s'"
+msgid "%s failed"
+msgstr "%s ha fallat"
 
-#: remote.c:1749
-msgid "push has no destination (push.default is 'nothing')"
-msgstr "push no té destí (push.default és 'nothing')"
+#: fetch-pack.c:817
+msgid "error in sideband demultiplexer"
+msgstr "error en demultiplexor de banda lateral"
 
-#: remote.c:1771
-msgid "cannot resolve 'simple' push to a single destination"
-msgstr "no es pot resoldre una pujada 'simple' a un sol destí"
+#: fetch-pack.c:844
+msgid "Server does not support shallow clients"
+msgstr "El servidor no permet clients superficials"
 
-#: remote.c:2073
-#, c-format
-msgid "Your branch is based on '%s', but the upstream is gone.\n"
-msgstr "La vostra branca està basada en '%s', però la font no hi és.\n"
-
-#: remote.c:2077
-msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
-msgstr "  (useu \"git branch --unset-upstream\" per a arreglar)\n"
-
-#: remote.c:2080
-#, c-format
-msgid "Your branch is up-to-date with '%s'.\n"
-msgstr "La vostra branca està al dia amb '%s'.\n"
+#: fetch-pack.c:848
+msgid "Server supports multi_ack_detailed"
+msgstr "El servidor accepta multi_ack_detailed"
 
-#: remote.c:2084
-#, c-format
-msgid "Your branch is ahead of '%s' by %d commit.\n"
-msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "La vostra branca està davant de '%s' per %d comissió.\n"
-msgstr[1] "La vostra branca està davant de '%s' per %d comissions.\n"
+#: fetch-pack.c:851
+msgid "Server supports no-done"
+msgstr "El servidor accepta no-done"
 
-#: remote.c:2090
-msgid "  (use \"git push\" to publish your local commits)\n"
-msgstr "  (useu \"git push\" per a publicar les vostres comissions locals)\n"
+#: fetch-pack.c:857
+msgid "Server supports multi_ack"
+msgstr "El servidor accepta multi_ack"
 
-#: remote.c:2093
-#, c-format
-msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
-msgid_plural ""
-"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
-msgstr[0] ""
-"La vostra branca està darrere de '%s' per %d comissió, i pot avançar-se "
-"ràpidament.\n"
-msgstr[1] ""
-"La vostra branca està darrere de '%s' per %d comissions, i pot avançar-se "
-"ràpidament.\n"
+#: fetch-pack.c:861
+msgid "Server supports side-band-64k"
+msgstr "El servidor accepta side-band-64k"
 
-#: remote.c:2101
-msgid "  (use \"git pull\" to update your local branch)\n"
-msgstr " (useu \"git pull\" per a actualitzar la vostra branca local)\n"
+#: fetch-pack.c:865
+msgid "Server supports side-band"
+msgstr "El servidor accepta banda lateral"
 
-#: remote.c:2104
-#, c-format
-msgid ""
-"Your branch and '%s' have diverged,\n"
-"and have %d and %d different commit each, respectively.\n"
-msgid_plural ""
-"Your branch and '%s' have diverged,\n"
-"and have %d and %d different commits each, respectively.\n"
-msgstr[0] ""
-"La vostra branca i '%s' s'han divergit,\n"
-"i tenen %d i %d comissió distinta cada una, respectivament.\n"
-msgstr[1] ""
-"La vostra branca i '%s' s'han divergit,\n"
-"i tenen %d i %d comissions distintes cada una, respectivament.\n"
+#: fetch-pack.c:869
+msgid "Server supports allow-tip-sha1-in-want"
+msgstr "El servidor accepta allow-tip-sha1-in-want"
 
-#: remote.c:2114
-msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
-msgstr "  (useu \"git pull\" per a fusionar la branca remota a la vostra)\n"
+#: fetch-pack.c:873
+msgid "Server supports allow-reachable-sha1-in-want"
+msgstr "El servidor accepta allow-reachable-sha1-in-want"
 
-#: revision.c:2132
-msgid "your current branch appears to be broken"
-msgstr "la vostra branca actual sembla trencada"
+#: fetch-pack.c:883
+msgid "Server supports ofs-delta"
+msgstr "El servidor accepta ofs-delta"
 
-#: revision.c:2135
+#: fetch-pack.c:890
 #, c-format
-msgid "your current branch '%s' does not have any commits yet"
-msgstr "la vostra branca actual '%s' encara no té cap comissió"
-
-#: revision.c:2329
-msgid "--first-parent is incompatible with --bisect"
-msgstr "--first-parent és incompatible amb --bisect"
-
-#: run-command.c:92
-msgid "open /dev/null failed"
-msgstr "s'ha fallat en obrir /dev/null"
+msgid "Server version is %.*s"
+msgstr "La versió del servidor és %.*s"
 
-#: run-command.c:94
-#, c-format
-msgid "dup2(%d,%d) failed"
-msgstr "dup2(%d,%d) ha fallat"
+#: fetch-pack.c:896
+msgid "Server does not support --shallow-since"
+msgstr "El servidor no admet --shallow-since"
 
-#: send-pack.c:298
-msgid "failed to sign the push certificate"
-msgstr "s'ha fallat en signar el certificat de pujada"
+#: fetch-pack.c:900
+msgid "Server does not support --shallow-exclude"
+msgstr "El servidor no admet --shallow-exclude"
 
-#: send-pack.c:411
-msgid "the receiving end does not support --signed push"
-msgstr "el destí receptor no admet pujar --signed"
+#: fetch-pack.c:902
+msgid "Server does not support --deepen"
+msgstr "El servidor no admet --deepen"
 
-#: send-pack.c:413
-msgid ""
-"not sending a push certificate since the receiving end does not support --"
-"signed push"
-msgstr ""
-"no s'està enviant una certificació de pujada perquè el destí receptor no "
-"admet pujar --signed"
+#: fetch-pack.c:913
+msgid "no common commits"
+msgstr "cap comissió en comú"
 
-#: send-pack.c:425
-msgid "the receiving end does not support --atomic push"
-msgstr "el destí receptor no admet pujar --atomic"
+#: fetch-pack.c:925
+msgid "git fetch-pack: fetch failed."
+msgstr "git fetch-pack: l'obtenció ha fallat."
 
-#: send-pack.c:430
-msgid "the receiving end does not support push options"
-msgstr "el destí receptor no admet opcions de pujada"
+#: fetch-pack.c:1087
+msgid "no matching remote head"
+msgstr "no hi ha cap cap remot coincident"
 
-#: sequencer.c:174
-msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'"
-msgstr ""
-"després de resoldre els conflictes, marqueu els camins\n"
-"corregits amb 'git add <camins>' o 'git rm <camins>'"
+#: gpg-interface.c:185
+msgid "gpg failed to sign the data"
+msgstr "gpg ha fallat en signar les dades"
 
-#: sequencer.c:177
-msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'\n"
-"and commit the result with 'git commit'"
-msgstr ""
-"després de resoldre els conflictes, marqueu els camins\n"
-"corregits amb 'git add <camins>' o 'git rm <camins>'\n"
-"i cometeu el resultat amb 'git commit'"
+#: gpg-interface.c:215
+msgid "could not create temporary file"
+msgstr "no s'ha pogut crear el fitxer temporal"
 
-#: sequencer.c:190 sequencer.c:841 sequencer.c:924
+#: gpg-interface.c:217
 #, c-format
-msgid "Could not write to %s"
-msgstr "No s'ha pogut escriure a %s"
+msgid "failed writing detached signature to '%s'"
+msgstr "s'ha fallat en escriure la signatura separada a '%s'"
 
-#: sequencer.c:193 sequencer.c:843 sequencer.c:928
+#: grep.c:1782
 #, c-format
-msgid "Error wrapping up %s."
-msgstr "Ha hagut un error en finalitzar %s."
-
-#: sequencer.c:208
-msgid "Your local changes would be overwritten by cherry-pick."
-msgstr "Els vostres canvis locals se sobreescriurien pel recull de cireres."
-
-#: sequencer.c:210
-msgid "Your local changes would be overwritten by revert."
-msgstr "Els vostres canvis locals se sobreescriurien per la reversió."
-
-#: sequencer.c:213
-msgid "Commit your changes or stash them to proceed."
-msgstr "Cometeu els vostres canvis o emmagatzemeu-los per a procedir."
+msgid "'%s': unable to read %s"
+msgstr "'%s': no s'ha pogut llegir %s"
 
-#: sequencer.c:228
+#: grep.c:1799 builtin/clone.c:381 builtin/diff.c:84 builtin/rm.c:155
 #, c-format
-msgid "%s: fast-forward"
-msgstr "%s: avanç ràpid"
+msgid "failed to stat '%s'"
+msgstr "s'ha fallat en fer stat a '%s'"
 
-#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:303
+#: grep.c:1810
 #, c-format
-msgid "%s: Unable to write new index file"
-msgstr "%s: No s'ha pogut escriure un fitxer d'índex nou"
-
-#: sequencer.c:321
-msgid "Could not resolve HEAD commit\n"
-msgstr "No s'ha pogut resoldre la comissió HEAD\n"
-
-#: sequencer.c:341
-msgid "Unable to update cache tree\n"
-msgstr "No s'ha pogut actualitzar l'arbre cau\n"
+msgid "'%s': short read"
+msgstr "'%s': lectura curta"
 
-#: sequencer.c:393
+#: help.c:203
 #, c-format
-msgid "Could not parse commit %s\n"
-msgstr "No s'ha pogut analitzar la comissió %s\n"
+msgid "available git commands in '%s'"
+msgstr "ordres de git disponibles en '%s'"
 
-#: sequencer.c:398
-#, c-format
-msgid "Could not parse parent commit %s\n"
-msgstr "No s'ha pogut analitzar la comissió mare %s\n"
+#: help.c:210
+msgid "git commands available from elsewhere on your $PATH"
+msgstr "ordres de git disponibles d'altres llocs en el vostre $PATH"
 
-#: sequencer.c:463
-msgid "Your index file is unmerged."
-msgstr "El vostre fitxer d'índex està sense fusionar."
+#: help.c:241
+msgid "These are common Git commands used in various situations:"
+msgstr "Aquestes són ordres del Git comunament usades en diverses situacions:"
 
-#: sequencer.c:482
+#: help.c:306
 #, c-format
-msgid "Commit %s is a merge but no -m option was given."
-msgstr "La comissió %s és una fusió però no s'ha donat cap opció -m."
+msgid ""
+"'%s' appears to be a git command, but we were not\n"
+"able to execute it. Maybe git-%s is broken?"
+msgstr ""
+"'%s' sembla una ordre de git, però no hem pogut\n"
+"executar-la. Pot ser que git-%s estigui estropejat?"
 
-#: sequencer.c:490
-#, c-format
-msgid "Commit %s does not have parent %d"
-msgstr "La comissió %s no té mare %d"
+#: help.c:361
+msgid "Uh oh. Your system reports no Git commands at all."
+msgstr "Ai. El vostre sistema no informa de cap ordre de Git."
 
-#: sequencer.c:494
+#: help.c:383
 #, c-format
-msgid "Mainline was specified but commit %s is not a merge."
+msgid ""
+"WARNING: You called a Git command named '%s', which does not exist.\n"
+"Continuing under the assumption that you meant '%s'"
 msgstr ""
-"S'ha especificat la línia principal però la comissió %s no és una fusió."
+"ADVERTÈNCIA: Heu invocat una ordre de Git amb nom '%s', la qual no "
+"existeix.\n"
+"S'està continuant sota l'assumpció que volíeu dir '%s'"
 
-#. TRANSLATORS: The first %s will be "revert" or
-#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:507
+#: help.c:388
 #, c-format
-msgid "%s: cannot parse parent commit %s"
-msgstr "%s: no es pot analitzar la comissió mare %s"
+msgid "in %0.1f seconds automatically..."
+msgstr "en %0.1f segons automàticament..."
 
-#: sequencer.c:511
+#: help.c:395
 #, c-format
-msgid "Cannot get commit message for %s"
-msgstr "No es pot obtenir el missatge de comissió de %s"
+msgid "git: '%s' is not a git command. See 'git --help'."
+msgstr "git: '%s' no és una ordre de git. Vegeu 'git --help'."
 
-#: sequencer.c:597
-#, c-format
-msgid "could not revert %s... %s"
-msgstr "no s'ha pogut revertir %s...%s"
+#: help.c:399 help.c:465
+msgid ""
+"\n"
+"Did you mean this?"
+msgid_plural ""
+"\n"
+"Did you mean one of these?"
+msgstr[0] ""
+"\n"
+"Volíeu dir això?"
+msgstr[1] ""
+"\n"
+"Volíeu dir un d'aquests?"
 
-#: sequencer.c:598
+#: help.c:461
 #, c-format
-msgid "could not apply %s... %s"
-msgstr "no s'ha pogut aplicar %s...%s"
+msgid "%s: %s - %s"
+msgstr "%s: %s - %s"
 
-#: sequencer.c:633
-msgid "empty commit set passed"
-msgstr "conjunt de comissions buit passat"
+#: ident.c:334
+msgid ""
+"\n"
+"*** Please tell me who you are.\n"
+"\n"
+"Run\n"
+"\n"
+"  git config --global user.email \"you@example.com\"\n"
+"  git config --global user.name \"Your Name\"\n"
+"\n"
+"to set your account's default identity.\n"
+"Omit --global to set the identity only in this repository.\n"
+"\n"
+msgstr ""
+"\n"
+"*** Si us plau, digueu-me qui sou.\n"
+"\n"
+"Executeu\n"
+"\n"
+"  git config --global user.email \"vós@example.com\"\n"
+"  git config --global user.name \"El Vostre Nom\"\n"
+"\n"
+"per a establir la identitat predeterminat del vostre compte.\n"
+"Ometeu --global per a establir la identitat només en aquest dipòsit.\n"
 
-#: sequencer.c:641
+#: lockfile.c:152
 #, c-format
-msgid "git %s: failed to read the index"
-msgstr "git %s: s'ha fallat en llegir l'índex"
+msgid ""
+"Unable to create '%s.lock': %s.\n"
+"\n"
+"Another git process seems to be running in this repository, e.g.\n"
+"an editor opened by 'git commit'. Please make sure all processes\n"
+"are terminated then try again. If it still fails, a git process\n"
+"may have crashed in this repository earlier:\n"
+"remove the file manually to continue."
+msgstr ""
+"No s'ha pogut crear '%s.lock': %s.\n"
+"\n"
+"Sembla que un altre procés de git s'està executant en aquest\n"
+"dipòsit, per exemple, un editor obert per 'git commit'. Si us\n"
+"plau, assegureu-vos que tots els processos s'hagin terminat i\n"
+"llavors trobeu de nou. Si encara falla, potser que un procés de\n"
+"git ha tingut una pana:\n"
+"elimineu el fitxer manualment per a continuar."
 
-#: sequencer.c:645
+#: lockfile.c:160
 #, c-format
-msgid "git %s: failed to refresh the index"
-msgstr "git %s: s'ha fallat en actualitzar l'índex"
-
-#: sequencer.c:705
-msgid "Cannot revert during another revert."
-msgstr "No es pot revertir durant una altra reversió."
+msgid "Unable to create '%s.lock': %s"
+msgstr "No s'ha pogut crear '%s.lock': %s"
 
-#: sequencer.c:706
-msgid "Cannot revert during a cherry-pick."
-msgstr "No es pot revertir durant un recull de cireres."
+#: merge.c:41
+msgid "failed to read the cache"
+msgstr "s'ha fallat en llegir la memòria cau"
 
-#: sequencer.c:709
-msgid "Cannot cherry-pick during a revert."
-msgstr "No es pot recollir cireres durant una reversió."
+#: merge.c:96 builtin/am.c:2000 builtin/am.c:2035 builtin/checkout.c:374
+#: builtin/checkout.c:588 builtin/clone.c:731
+msgid "unable to write new index file"
+msgstr "no s'ha pogut escriure un fitxer d'índex nou"
 
-#: sequencer.c:710
-msgid "Cannot cherry-pick during another cherry-pick."
-msgstr "No es pot recollir cireres durant altre recull de cireres."
+#: merge-recursive.c:209
+msgid "(bad commit)\n"
+msgstr "(comissió dolenta)\n"
 
-#: sequencer.c:732
+#: merge-recursive.c:231
 #, c-format
-msgid "Could not parse line %d."
-msgstr "No s'ha pogut analitzar la línia %d."
+msgid "addinfo_cache failed for path '%s'"
+msgstr "addinfo_cache ha fallat per al camí '%s'"
 
-#: sequencer.c:737
-msgid "No commits parsed."
-msgstr "No s'ha analitzat cap comissió."
+#: merge-recursive.c:301
+msgid "error building trees"
+msgstr "error en construir arbres"
 
-#: sequencer.c:749
+#: merge-recursive.c:720
 #, c-format
-msgid "Could not open %s"
-msgstr "No s'ha pogut obrir %s"
+msgid "failed to create path '%s'%s"
+msgstr "s'ha fallat en crear el camí '%s'%s"
 
-#: sequencer.c:753
+#: merge-recursive.c:731
 #, c-format
-msgid "Could not read %s."
-msgstr "No s'ha pogut llegir %s."
+msgid "Removing %s to make room for subdirectory\n"
+msgstr "S'està eliminant %s per a fer espai per al subdirectori\n"
 
-#: sequencer.c:760
-#, c-format
-msgid "Unusable instruction sheet: %s"
-msgstr "Full d'instruccions inusable: %s"
+#: merge-recursive.c:745 merge-recursive.c:764
+msgid ": perhaps a D/F conflict?"
+msgstr ": potser un conflicte D/F?"
 
-#: sequencer.c:790
+#: merge-recursive.c:754
 #, c-format
-msgid "Invalid key: %s"
-msgstr "Clau no vàlida: %s"
+msgid "refusing to lose untracked file at '%s'"
+msgstr "s'està refusant perdre el fitxer no seguit a '%s'"
 
-#: sequencer.c:793 builtin/pull.c:50 builtin/pull.c:52
+#: merge-recursive.c:796 builtin/cat-file.c:34
 #, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Valor no vàlid per a %s: %s"
+msgid "cannot read object %s '%s'"
+msgstr "no es pot llegir l'objecte %s '%s'"
 
-#: sequencer.c:803
+#: merge-recursive.c:798
 #, c-format
-msgid "Malformed options sheet: %s"
-msgstr "Full d'opcions mal format: %s"
-
-#: sequencer.c:822
-msgid "a cherry-pick or revert is already in progress"
-msgstr "un recull de cireres o una reversió ja està en curs"
-
-#: sequencer.c:823
-msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
-msgstr "intenteu \"git cherry-pick (--continue | --quit | --abort)\""
+msgid "blob expected for %s '%s'"
+msgstr "blob esperat per a %s '%s'"
 
-#: sequencer.c:827
+#: merge-recursive.c:822
 #, c-format
-msgid "Could not create sequencer directory %s"
-msgstr "No s'ha pogut crear el directori de seqüenciador %s"
-
-#: sequencer.c:862 sequencer.c:998
-msgid "no cherry-pick or revert in progress"
-msgstr "ni hi ha cap recull de cireres ni cap reversió en curs"
-
-#: sequencer.c:864
-msgid "cannot resolve HEAD"
-msgstr "no es pot resoldre HEAD"
-
-#: sequencer.c:866 sequencer.c:900
-msgid "cannot abort from a branch yet to be born"
-msgstr "no es pot avortar des d'una branca que encara ha de nàixer"
+msgid "failed to open '%s': %s"
+msgstr "s'ha fallat en obrir '%s': %s"
 
-#: sequencer.c:886 builtin/fetch.c:724 builtin/fetch.c:970
+#: merge-recursive.c:833
 #, c-format
-msgid "cannot open %s"
-msgstr "no es pot obrir %s"
+msgid "failed to symlink '%s': %s"
+msgstr "s'ha fallat en fer l'enllaç simbòlic '%s': %s"
 
-#: sequencer.c:888
+#: merge-recursive.c:838
 #, c-format
-msgid "cannot read %s: %s"
-msgstr "no es pot llegir %s: %s"
-
-#: sequencer.c:889
-msgid "unexpected end of file"
-msgstr "final de fitxer inesperat"
-
-#: sequencer.c:895
-#, c-format
-msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
-msgstr "el fitxer HEAD emmagatzemat abans del recull de cireres '%s' és malmès"
-
-#: sequencer.c:921
-#, c-format
-msgid "Could not format %s."
-msgstr "No s'ha pogut formatar %s."
-
-#: sequencer.c:1066
-#, c-format
-msgid "%s: can't cherry-pick a %s"
-msgstr "%s: no es pot recollir com a cirera un %s"
-
-#: sequencer.c:1069
-#, c-format
-msgid "%s: bad revision"
-msgstr "%s: revisió dolenta"
+msgid "do not know what to do with %06o %s '%s'"
+msgstr "no se sap què fer amb %06o %s '%s'"
 
-#: sequencer.c:1102
-msgid "Can't revert as initial commit"
-msgstr "No es pot revertir com a comissió inicial"
+#: merge-recursive.c:978
+msgid "Failed to execute internal merge"
+msgstr "S'ha fallat en executar la fusió interna"
 
-#: setup.c:160
+#: merge-recursive.c:982
 #, c-format
-msgid ""
-"%s: no such path in the working tree.\n"
-"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
-msgstr ""
-"%s: no hi ha tal camí en l'arbre de treball.\n"
-"Useu 'git <ordre> -- <camí>...' per a especificar camins que no existeixin "
-"localment."
+msgid "Unable to add %s to database"
+msgstr "no s'ha pogut afegir %s a la base de dades"
 
-#: setup.c:173
+#: merge-recursive.c:1081 merge-recursive.c:1095
 #, c-format
 msgid ""
-"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
-"Use '--' to separate paths from revisions, like this:\n"
-"'git <command> [<revision>...] -- [<file>...]'"
+"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
+"in tree."
 msgstr ""
-"paràmetre ambigu '%s': revisió no coneguda o camí no en l'arbre de treball.\n"
-"Useu '--' per a separar els camins de les revisions, com això:\n"
-"'git <ordre> [<revisió>...] -- [<fitxer>...]'"
+"CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
+"s'ha deixat en l'arbre."
 
-#: setup.c:223
+#: merge-recursive.c:1087 merge-recursive.c:1100
 #, c-format
 msgid ""
-"ambiguous argument '%s': both revision and filename\n"
-"Use '--' to separate paths from revisions, like this:\n"
-"'git <command> [<revision>...] -- [<file>...]'"
+"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
+"in tree at %s."
 msgstr ""
-"paràmetre ambigu '%s': ambdós una revisió i un nom de fitxer\n"
-"Useu '--' per a separar els camins de les revisions, com això:\n"
-"'git <ordre> [<revisió>...] -- [<fitxer>...]'"
-
-#: setup.c:248 builtin/apply.c:3362 builtin/apply.c:3373 builtin/apply.c:3419
-#, c-format
-msgid "failed to read %s"
-msgstr "s'ha fallat en llegir %s"
+"CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
+"s'ha deixat en l'arbre a %s."
 
-#: setup.c:468
-#, c-format
-msgid "Expected git repo version <= %d, found %d"
-msgstr "S'esperava una versió de dipòsit de git <= %d, s'ha trobat %d"
+#: merge-recursive.c:1143
+msgid "rename"
+msgstr "canvi de nom"
 
-#: setup.c:476
-msgid "unknown repository extensions found:"
-msgstr "s'han trobat extensions de dipòsit desconegudes:"
+#: merge-recursive.c:1143
+msgid "renamed"
+msgstr "canviat de nom"
 
-#: setup.c:762
+#: merge-recursive.c:1200
 #, c-format
-msgid "Not a git repository (or any of the parent directories): %s"
-msgstr "No un dipòsit de git (ni cap dels directoris pares): %s"
-
-#: setup.c:764 setup.c:915 builtin/index-pack.c:1641
-msgid "Cannot come back to cwd"
-msgstr "No es pot tornar al directori de treball actual"
-
-#: setup.c:845
-msgid "Unable to read current working directory"
-msgstr "No s'ha pogut llegir el directori de treball actual"
+msgid "%s is a directory in %s adding as %s instead"
+msgstr "%s és un directori en %s; s'està afegint com a %s en lloc d'això"
 
-#: setup.c:920
+#: merge-recursive.c:1225
 #, c-format
 msgid ""
-"Not a git repository (or any parent up to mount point %s)\n"
-"Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
+"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
+"\"->\"%s\" in \"%s\"%s"
 msgstr ""
-"No un dipòsit de git (ni cap pare fins el punt de muntatge %s)\n"
-"S'atura a la frontera de sistema de fitxers (GIT_DISCOVERY_ACROSS_FILESYSTEM "
-"no està establert)."
+"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom \"%s\"->\"%s\" en la "
+"branca \"%s\" canvi de nom \"%s\"->\"%s\" en \"%s\"%s"
 
-#: setup.c:927
-#, c-format
-msgid "Cannot change to '%s/..'"
-msgstr "No es pot canviar a '%s/..'"
+#: merge-recursive.c:1230
+msgid " (left unresolved)"
+msgstr " (deixat sense resolució)"
 
-#: setup.c:989
+#: merge-recursive.c:1292
 #, c-format
-msgid ""
-"Problem with core.sharedRepository filemode value (0%.3o).\n"
-"The owner of files must always have read and write permissions."
+msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
-"Problema amb el valor de mode de fitxer core.sharedRepository (0%.3o).\n"
-"El propietari dels fitxers sempre ha de tenir permissions de lectura i "
-"escriptura."
-
-#: sha1_file.c:1046
-msgid "offset before end of packfile (broken .idx?)"
-msgstr "desplaçament abans de la fi del fitxer de paquet (.idx trencat?)"
+"CONFLICTE (canvi de nom/canvi de nom): Canvi de nom %s->%s en %s. Canvi de "
+"nom %s->%s en %s"
 
-#: sha1_file.c:2434
+#: merge-recursive.c:1325
 #, c-format
-msgid "offset before start of pack index for %s (corrupt index?)"
-msgstr ""
-"desplaçament abans d'inici d'índex de paquet per a %s (índex corromput?)"
+msgid "Renaming %s to %s and %s to %s instead"
+msgstr "S'està canviant el nom de %s a %s i %s a %s en lloc d'això"
 
-#: sha1_file.c:2438
+#: merge-recursive.c:1531
 #, c-format
-msgid "offset beyond end of pack index for %s (truncated index?)"
-msgstr ""
-"desplaçament més enllà de la fi d'índex de paquet per a %s (índex truncat?)"
-
-#: sha1_name.c:462
-msgid ""
-"Git normally never creates a ref that ends with 40 hex characters\n"
-"because it will be ignored when you just specify 40-hex. These refs\n"
-"may be created by mistake. For example,\n"
-"\n"
-"  git checkout -b $br $(git rev-parse ...)\n"
-"\n"
-"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n"
-"examine these refs and maybe delete them. Turn this message off by\n"
-"running \"git config advice.objectNameWarning false\""
+msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
-"Git normalment mai crea una referència que acabi amb 40 caràcters\n"
-"hexadecimals perquè s'ignorarà quan només especifiqueu 40 caràcters\n"
-"hexadecimals. Aquestes referències es poden crear per error. Per\n"
-"exemple,\n"
-"\n"
-"  git checkout -b $br $(git rev-parse ...)\n"
-"\n"
-"on \"$br\" és d'alguna manera buit i una referència de 40 caràcters\n"
-"hexadecimals. Si us plau, examineu aquestes referències i potser\n"
-"suprimiu-les. Desactiveu aquest missatge executant\n"
-"\"git config advice.objectNameWarning false\""
+"CONFLICTE (canvi de nom/afegiment): Canvi de nom %s->%s en %s. %s afegit en "
+"%s"
 
-#: submodule.c:64 submodule.c:98
-msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
-msgstr ""
-"No es pot canviar un .gitmodules no fusionat, primer resoldreu els "
-"conflictes de fusió"
+#: merge-recursive.c:1546
+#, c-format
+msgid "Adding merged %s"
+msgstr "S'està afegint %s fusionat"
 
-#: submodule.c:68 submodule.c:102
+#: merge-recursive.c:1553 merge-recursive.c:1766
 #, c-format
-msgid "Could not find section in .gitmodules where path=%s"
-msgstr "No s'ha pogut trobar la secció en .gitmodules on path=%s"
+msgid "Adding as %s instead"
+msgstr "S'està afegint com a %s en lloc d'això"
 
-#: submodule.c:76
+#: merge-recursive.c:1610
 #, c-format
-msgid "Could not update .gitmodules entry %s"
-msgstr "No s'ha pogut actualitzar l'entrada de .gitmodules %s"
+msgid "cannot read object %s"
+msgstr "no es pot llegir l'objecte %s"
 
-#: submodule.c:109
+#: merge-recursive.c:1613
 #, c-format
-msgid "Could not remove .gitmodules entry for %s"
-msgstr "No s'ha pogut eliminar l'entrada de .gitmodules per a %s"
+msgid "object %s is not a blob"
+msgstr "l'objecte %s no és un blob"
 
-#: submodule.c:120
-msgid "staging updated .gitmodules failed"
-msgstr "L'allistament del .gitmodules actualitzat ha fallat"
+#: merge-recursive.c:1666
+msgid "modify"
+msgstr "modificació"
 
-#: submodule.c:177
-msgid "negative values not allowed for submodule.fetchJobs"
-msgstr "no es permeten els valors negatius a submodule.fetchJobs"
+#: merge-recursive.c:1666
+msgid "modified"
+msgstr "modificat"
 
-#: submodule-config.c:358
-#, c-format
-msgid "invalid value for %s"
-msgstr "valor no vàlid per a %s"
+#: merge-recursive.c:1676
+msgid "content"
+msgstr "contingut"
 
-#: trailer.c:237
-#, c-format
-msgid "running trailer command '%s' failed"
-msgstr "l'execució de l'ordre de remolc '%s' ha fallat"
+#: merge-recursive.c:1683
+msgid "add/add"
+msgstr "afegiment/afegiment"
 
-#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
-#: trailer.c:562
+#: merge-recursive.c:1718
 #, c-format
-msgid "unknown value '%s' for key '%s'"
-msgstr "valor desconegut '%s' per a la clau '%s'"
+msgid "Skipped %s (merged same as existing)"
+msgstr "S'ha saltat %s (el fusionat és igual a l'existent)"
 
-#: trailer.c:544 trailer.c:549 builtin/remote.c:289
+#: merge-recursive.c:1732
 #, c-format
-msgid "more than one %s"
-msgstr "més d'un %s"
+msgid "Auto-merging %s"
+msgstr "S'està autofusionant %s"
+
+#: merge-recursive.c:1736 git-submodule.sh:924
+msgid "submodule"
+msgstr "submòdul"
 
-#: trailer.c:582
+#: merge-recursive.c:1737
 #, c-format
-msgid "empty trailer token in trailer '%.*s'"
-msgstr "fitxa de remolc buida en el remolc '%.*s'"
+msgid "CONFLICT (%s): Merge conflict in %s"
+msgstr "CONFLICTE (%s): Conflicte de fusió en %s"
 
-#: trailer.c:702
+#: merge-recursive.c:1831
 #, c-format
-msgid "could not read input file '%s'"
-msgstr "no s'ha pogut llegir el fitxer d'entrada '%s'"
+msgid "Removing %s"
+msgstr "S'està eliminant %s"
 
-#: trailer.c:705
-msgid "could not read from stdin"
-msgstr "No s'ha pogut llegir des d'stdin"
+#: merge-recursive.c:1857
+msgid "file/directory"
+msgstr "fitxer/directori"
 
-#: trailer.c:857 builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "no s'ha pogut fer stat a %s"
+#: merge-recursive.c:1863
+msgid "directory/file"
+msgstr "directori/fitxer"
 
-#: trailer.c:859
+#: merge-recursive.c:1868
 #, c-format
-msgid "file %s is not a regular file"
-msgstr "el fitxer %s no és un fitxer regular"
+msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
+msgstr ""
+"CONFLICTE (%s): Hi ha un directori amb nom %s en %s. S'està afegint %s com a "
+"%s"
 
-#: trailer.c:861
+#: merge-recursive.c:1877
 #, c-format
-msgid "file %s is not writable by user"
-msgstr "el fitxer %s no és gravable per l'usuari"
+msgid "Adding %s"
+msgstr "S'està afegint %s"
 
-#: trailer.c:873
-msgid "could not open temporary file"
-msgstr "no s'ha pogut obrir el fitxer temporal"
+#: merge-recursive.c:1914
+msgid "Already up-to-date!"
+msgstr "Ja està al dia!"
 
-#: trailer.c:912
+#: merge-recursive.c:1923
 #, c-format
-msgid "could not rename temporary file to %s"
-msgstr "no s'ha pogut canviar el nom del fitxer temporal a %s"
+msgid "merging of trees %s and %s failed"
+msgstr "la fusió dels arbres %s i %s ha fallat"
 
-#: transport.c:62
+#: merge-recursive.c:2006
+msgid "Merging:"
+msgstr "Fusionant:"
+
+#: merge-recursive.c:2019
 #, c-format
-msgid "Would set upstream of '%s' to '%s' of '%s'\n"
-msgstr "Canviaria la font de '%s' a '%s' de '%s'\n"
+msgid "found %u common ancestor:"
+msgid_plural "found %u common ancestors:"
+msgstr[0] "s'ha trobat %u avantpassat en comú:"
+msgstr[1] "s'han trobat %u avantpassats en comú:"
 
-#: transport.c:151
+#: merge-recursive.c:2058
+msgid "merge returned no commit"
+msgstr "la fusió no ha retornat cap comissió"
+
+#: merge-recursive.c:2121
 #, c-format
-msgid "transport: invalid depth option '%s'"
-msgstr "transport: opció de profunditat no vàlida '%s'"
+msgid "Could not parse object '%s'"
+msgstr "No s'ha pogut analitzar l'objecte '%s'"
+
+#: merge-recursive.c:2135 builtin/merge.c:641 builtin/merge.c:788
+msgid "Unable to write index."
+msgstr "No s'ha pogut escriure l'índex."
 
-#: transport.c:771
+#: notes-merge.c:273
 #, c-format
 msgid ""
-"The following submodule paths contain changes that can\n"
-"not be found on any remote:\n"
+"You have not concluded your previous notes merge (%s exists).\n"
+"Please, use 'git notes merge --commit' or 'git notes merge --abort' to "
+"commit/abort the previous merge before you start a new notes merge."
 msgstr ""
-"Els camins de submòdul següents contenen canvis que no\n"
-"es poden trobar en cap remot:\n"
+"No heu conclòs la vostra fusió de notes prèvia (%s existeix).\n"
+"Si us plau, useu 'git notes merge --commit' o 'git notes merge --abort' per "
+"a cometre/avortar la fusió prèvia abans de començar una fusió de notes nova."
 
-#: transport.c:775
+#: notes-merge.c:280
 #, c-format
-msgid ""
-"\n"
-"Please try\n"
-"\n"
-"\tgit push --recurse-submodules=on-demand\n"
-"\n"
-"or cd to the path and use\n"
-"\n"
-"\tgit push\n"
-"\n"
-"to push them to a remote.\n"
-"\n"
-msgstr ""
-"\n"
-"Si us plau, intenteu\n"
-"\n"
-"\tgit push --recurse-submodules=on-demand\n"
-"\n"
-"o canviar de directori al camí i useu\n"
-"\n"
-"\tgit push\n"
-"\n"
-"per a pujar-los a un remot.\n"
+msgid "You have not concluded your notes merge (%s exists)."
+msgstr "No heu conclòs la vostra fusió de notes (%s existeix)."
 
-#: transport.c:783
-msgid "Aborting."
-msgstr "S'està avortant."
+#: notes-utils.c:41
+msgid "Cannot commit uninitialized/unreferenced notes tree"
+msgstr "No es pot cometre un arbre de notes no inicialitzat / no referenciat"
 
-#: transport-helper.c:1041
+#: notes-utils.c:100
 #, c-format
-msgid "Could not read ref %s"
-msgstr "No s'ha pogut llegir la referència %s"
+msgid "Bad notes.rewriteMode value: '%s'"
+msgstr "Valor de notes.rewriteMode dolent: '%s'"
 
-#: unpack-trees.c:64
+#: notes-utils.c:110
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by checkout:\n"
-"%%sPlease commit your changes or stash them before you switch branches."
-msgstr ""
-"Els vostres canvis locals als fitxers següents se sobreescriurien per "
-"agafar:\n"
-"%%sSi us plau, cometeu els vostres canvis o emmagatzemeu-los abans de "
-"canviar de branca."
+msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
+msgstr "S'està refusant reescriure les notes en %s (fora de refs/notes/)"
 
-#: unpack-trees.c:66
+#. TRANSLATORS: The first %s is the name of the
+#. environment variable, the second %s is its value
+#: notes-utils.c:137
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by checkout:\n"
-"%%s"
-msgstr ""
-"Els vostres canvis locals als fitxers següents se sobreescriurien per "
-"agafar:\n"
-"%%s"
+msgid "Bad %s value: '%s'"
+msgstr "Valor dolent de %s: '%s'"
 
-#: unpack-trees.c:69
+#: object.c:242
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-"%%sPlease commit your changes or stash them before you merge."
-msgstr ""
-"Els vostres canvis locals als fitxers següents se sobreescriurien per "
-"fusionar:\n"
-"%%sSi us plau, cometeu els vostres canvis o emmagatzemeu-los abans de "
-"fusionar."
+msgid "unable to parse object: %s"
+msgstr "no s'ha pogut analitzar l'objecte: %s"
 
-#: unpack-trees.c:71
+#: parse-options.c:572
+msgid "..."
+msgstr "..."
+
+#: parse-options.c:590
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-"%%s"
-msgstr ""
-"Els vostres canvis locals als fitxers següents se sobreescriurien per "
-"fusionar:\n"
-"%%s"
+msgid "usage: %s"
+msgstr "ús: %s"
 
-#: unpack-trees.c:74
+#. TRANSLATORS: the colon here should align with the
+#. one in "usage: %s" translation
+#: parse-options.c:594
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by %s:\n"
-"%%sPlease commit your changes or stash them before you %s."
-msgstr ""
-"Els vostres canvis locals als fitxers següents se sobreescriurien per %s:\n"
-"%%sSi us plau, cometeu els vostres canvis o emmagatzemeu-los abans de %s."
+msgid "   or: %s"
+msgstr " o: %s"
 
-#: unpack-trees.c:76
+#: parse-options.c:597
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by %s:\n"
-"%%s"
-msgstr ""
-"Els vostres canvis locals als fitxers següents se sobreescriurien per %s:\n"
-"%%s"
+msgid "    %s"
+msgstr "    %s"
 
-#: unpack-trees.c:81
+#: parse-options.c:631
+msgid "-NUM"
+msgstr "-NUM"
+
+#: parse-options-cb.c:108
 #, c-format
-msgid ""
-"Updating the following directories would lose untracked files in it:\n"
-"%s"
-msgstr ""
-"Actualitzar els directoris següents perdria fitxers no seguits en el:\n"
-"%s"
+msgid "malformed object name '%s'"
+msgstr "nom d'objecte mal format '%s'"
 
-#: unpack-trees.c:85
+#: path.c:826
 #, c-format
-msgid ""
-"The following untracked working tree files would be removed by checkout:\n"
-"%%sPlease move or remove them before you switch branches."
+msgid "Could not make %s writable by group"
+msgstr "No s'ha pogut fer %s escrivible pel grup"
+
+#: pathspec.c:133
+msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
-"agafar:\n"
-"%%sSi us plau, moveu-los o elimineu-los abans de canviar de branca."
+"els ajusts d'especificació de camí 'glob' i 'noglob' globals són "
+"incompatibles"
 
-#: unpack-trees.c:87
-#, c-format
+#: pathspec.c:143
 msgid ""
-"The following untracked working tree files would be removed by checkout:\n"
-"%%s"
+"global 'literal' pathspec setting is incompatible with all other global "
+"pathspec settings"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
-"agafar:\n"
-"%%s"
+"l'ajust d'especificació de camí 'literal' global és incompatible amb tots "
+"els altres ajusts d'especificació de camí globals"
 
-#: unpack-trees.c:90
+#: pathspec.c:177
+msgid "invalid parameter for pathspec magic 'prefix'"
+msgstr "paràmetre no vàlid per a la màgia d'especificació de camí 'prefix'"
+
+#: pathspec.c:183
 #, c-format
-msgid ""
-"The following untracked working tree files would be removed by merge:\n"
-"%%sPlease move or remove them before you merge."
-msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
-"fusionar:\n"
-"%%sSi us plau, moveu-los o elimineu-los abans de fusionar."
+msgid "Invalid pathspec magic '%.*s' in '%s'"
+msgstr "Màgia d'especificació de camí no vàlida '%.*s' en '%s'"
 
-#: unpack-trees.c:92
+#: pathspec.c:187
 #, c-format
-msgid ""
-"The following untracked working tree files would be removed by merge:\n"
-"%%s"
-msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
-"fusionar:\n"
-"%%s"
+msgid "Missing ')' at the end of pathspec magic in '%s'"
+msgstr "')' mancant al final de la màgia d'especificació de camí en '%s'"
 
-#: unpack-trees.c:95
+#: pathspec.c:205
+#, c-format
+msgid "Unimplemented pathspec magic '%c' in '%s'"
+msgstr "Màgia d'especificació de camí no implementada '%c' en '%s'"
+
+#: pathspec.c:230
+#, c-format
+msgid "%s: 'literal' and 'glob' are incompatible"
+msgstr "%s: 'literal' i 'glob' són incompatibles"
+
+#: pathspec.c:241
+#, c-format
+msgid "%s: '%s' is outside repository"
+msgstr "%s: '%s' és fora del dipòsit"
+
+#: pathspec.c:291
 #, c-format
+msgid "Pathspec '%s' is in submodule '%.*s'"
+msgstr "L'especificació '%s' és en el submòdul '%.*s'"
+
+#: pathspec.c:353
+#, c-format
+msgid "%s: pathspec magic not supported by this command: %s"
+msgstr ""
+"%s: aquesta ordre no és compatible amb la màgia d'especificació de camí: %s"
+
+#: pathspec.c:408
 msgid ""
-"The following untracked working tree files would be removed by %s:\n"
-"%%sPlease move or remove them before you %s."
+"empty strings as pathspecs will be made invalid in upcoming releases. please "
+"use . instead if you meant to match all paths"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per %s:\n"
-"%%sSi us plau, moveu-los o elimineu-los abans de %s."
+"es faran no vàlides les cadenes buides com especificacions de camí en "
+"versions futures. si us plau, useu . en lloc d'això si volíeu coincidir amb "
+"tots els camins"
 
-#: unpack-trees.c:97
+#: pathspec.c:440
 #, c-format
+msgid "pathspec '%s' is beyond a symbolic link"
+msgstr "l'especificació de camí '%s' és més enllà d'un enllaç simbòlic"
+
+#: pathspec.c:449
 msgid ""
-"The following untracked working tree files would be removed by %s:\n"
-"%%s"
+"There is nothing to exclude from by :(exclude) patterns.\n"
+"Perhaps you forgot to add either ':/' or '.' ?"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per %s:\n"
-"%%s"
+"No hi ha res a excloure per patrons :(exclusió).\n"
+"Potser heu oblidat afegir o ':/' o '.' ?"
 
-#: unpack-trees.c:102
+#: pretty.c:971
+msgid "unable to parse --pretty format"
+msgstr "no s'ha pogut analitzar el format --pretty"
+
+#: read-cache.c:1315
 #, c-format
 msgid ""
-"The following untracked working tree files would be overwritten by "
-"checkout:\n"
-"%%sPlease move or remove them before you switch branches."
+"index.version set, but the value is invalid.\n"
+"Using version %i"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
-"agafar:\n"
-"%%sSi us plau, moveu-los o elimineu-los abans de canviar de branca."
+"index.version està establerta, però el valor no és vàlid.\n"
+"S'està usant la versió %i"
 
-#: unpack-trees.c:104
+#: read-cache.c:1325
 #, c-format
 msgid ""
-"The following untracked working tree files would be overwritten by "
-"checkout:\n"
-"%%s"
+"GIT_INDEX_VERSION set, but the value is invalid.\n"
+"Using version %i"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
-"agafar:\n"
-"%%s"
+"GIT_INDEX_VERSION està establerta, però el valor no és vàlid.\n"
+"S'està usant la versió %i"
 
-#: unpack-trees.c:107
+#: refs.c:576 builtin/merge.c:840
 #, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by merge:\n"
-"%%sPlease move or remove them before you merge."
-msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
-"fusionar:\n"
-"%%sSi us plau, moveu-los o elimineu-los abans de fusionar."
+msgid "Could not open '%s' for writing"
+msgstr "No s'ha pogut obrir '%s' per a escriptura"
 
-#: unpack-trees.c:109
+#: refs/files-backend.c:2481
 #, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by merge:\n"
-"%%s"
-msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
-"fusionar:\n"
-"%%s"
+msgid "could not delete reference %s: %s"
+msgstr "no s'ha pogut suprimir la referència %s: %s"
 
-#: unpack-trees.c:112
+#: refs/files-backend.c:2484
 #, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by %s:\n"
-"%%sPlease move or remove them before you %s."
+msgid "could not delete references: %s"
+msgstr "no s'ha pogut suprimir les referències: %s"
+
+#: refs/files-backend.c:2493
+#, c-format
+msgid "could not remove reference %s"
+msgstr "no s'ha pogut eliminar la referència %s"
+
+#: ref-filter.c:55
+#, c-format
+msgid "expected format: %%(color:<color>)"
+msgstr "format esperat: %%(color:<color>)"
+
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "color no reconegut: %%(color:%s)"
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "format no reconegut: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) no accepta paràmetres"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) no accepta paràmetres"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "valor positiu esperat contents:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "paràmetre %%(contents) no reconegut: %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "paràmetre %%(objectname) no reconegut: %s"
+
+#: ref-filter.c:135
+#, c-format
+msgid "expected format: %%(align:<width>,<position>)"
+msgstr "format esperat: %%(align:<amplada>,<posició>)"
+
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "posició no reconeguda:%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "amplada no reconeguda:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "paràmetre %%(align) no reconegut: %s"
+
+#: ref-filter.c:161
+#, c-format
+msgid "positive width expected with the %%(align) atom"
+msgstr "amplada positiva esperada amb l'àtom %%(align)"
+
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "nom de camp mal format: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "nom de camp desconegut: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "format: s'ha usat l'àtom %%(end) sense l'àtom corresponent"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "cadena de format mal format %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= requereix un paràmetre enter positiu"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "la referència '%s' no té %ld components per a :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "format de %.*s desconegut %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "manca l'objecte %s per a %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer ha fallat en %s per a %s"
+
+#: ref-filter.c:1311
+#, c-format
+msgid "malformed object at '%s'"
+msgstr "objecte mal format a '%s'"
+
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "s'està ignorant la referència amb nom trencat %s"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "s'està ignorant la referència trencada %s"
+
+#: ref-filter.c:1633
+#, c-format
+msgid "format: %%(end) atom missing"
+msgstr "format: manca l'àtom %%(end)"
+
+#: ref-filter.c:1687
+#, c-format
+msgid "malformed object name %s"
+msgstr "nom d'objecte %s mal format"
+
+#: remote.c:746
+#, c-format
+msgid "Cannot fetch both %s and %s to %s"
+msgstr "No es pot obtenir ambdós %s i %s a %s"
+
+#: remote.c:750
+#, c-format
+msgid "%s usually tracks %s, not %s"
+msgstr "%s generalment segueix %s, no %s"
+
+#: remote.c:754
+#, c-format
+msgid "%s tracks both %s and %s"
+msgstr "%s segueix ambdós %s i %s"
+
+#: remote.c:762
+msgid "Internal error"
+msgstr "Error intern"
+
+#: remote.c:1677 remote.c:1720
+msgid "HEAD does not point to a branch"
+msgstr "HEAD no assenyala cap branca"
+
+#: remote.c:1686
+#, c-format
+msgid "no such branch: '%s'"
+msgstr "no hi ha tal branca: '%s'"
+
+#: remote.c:1689
+#, c-format
+msgid "no upstream configured for branch '%s'"
+msgstr "cap font configurada per a la branca '%s'"
+
+#: remote.c:1695
+#, c-format
+msgid "upstream branch '%s' not stored as a remote-tracking branch"
+msgstr "la branca font '%s' no s'emmagatzema com a branca amb seguiment remot"
+
+#: remote.c:1710
+#, c-format
+msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
-"%s:\n"
-"%%sSi us plau, moveu-los o elimineu-los abans de %s."
+"el destí de pujada '%s' en el remot '%s' no té cap branca seguidora local"
 
-#: unpack-trees.c:114
+#: remote.c:1725
+#, c-format
+msgid "branch '%s' has no remote for pushing"
+msgstr "la branca '%s' no té cap remot al qual pujar"
+
+#: remote.c:1736
+#, c-format
+msgid "push refspecs for '%s' do not include '%s'"
+msgstr "les especificacions de referència de '%s' no inclouen '%s'"
+
+#: remote.c:1749
+msgid "push has no destination (push.default is 'nothing')"
+msgstr "push no té destí (push.default és 'nothing')"
+
+#: remote.c:1771
+msgid "cannot resolve 'simple' push to a single destination"
+msgstr "no es pot resoldre una pujada 'simple' a un sol destí"
+
+#: remote.c:2073
+#, c-format
+msgid "Your branch is based on '%s', but the upstream is gone.\n"
+msgstr "La vostra branca està basada en '%s', però la font no hi és.\n"
+
+#: remote.c:2077
+msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
+msgstr "  (useu \"git branch --unset-upstream\" per a arreglar)\n"
+
+#: remote.c:2080
+#, c-format
+msgid "Your branch is up-to-date with '%s'.\n"
+msgstr "La vostra branca està al dia amb '%s'.\n"
+
+#: remote.c:2084
+#, c-format
+msgid "Your branch is ahead of '%s' by %d commit.\n"
+msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
+msgstr[0] "La vostra branca està davant de '%s' per %d comissió.\n"
+msgstr[1] "La vostra branca està davant de '%s' per %d comissions.\n"
+
+#: remote.c:2090
+msgid "  (use \"git push\" to publish your local commits)\n"
+msgstr "  (useu \"git push\" per a publicar les vostres comissions locals)\n"
+
+#: remote.c:2093
+#, c-format
+msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
+msgid_plural ""
+"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
+msgstr[0] ""
+"La vostra branca està darrere de '%s' per %d comissió, i pot avançar-se "
+"ràpidament.\n"
+msgstr[1] ""
+"La vostra branca està darrere de '%s' per %d comissions, i pot avançar-se "
+"ràpidament.\n"
+
+#: remote.c:2101
+msgid "  (use \"git pull\" to update your local branch)\n"
+msgstr " (useu \"git pull\" per a actualitzar la vostra branca local)\n"
+
+#: remote.c:2104
 #, c-format
 msgid ""
-"The following untracked working tree files would be overwritten by %s:\n"
-"%%s"
-msgstr ""
-"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
-"%s:\n"
-"%%s"
+"Your branch and '%s' have diverged,\n"
+"and have %d and %d different commit each, respectively.\n"
+msgid_plural ""
+"Your branch and '%s' have diverged,\n"
+"and have %d and %d different commits each, respectively.\n"
+msgstr[0] ""
+"La vostra branca i '%s' s'han divergit,\n"
+"i tenen %d i %d comissió distinta cada una, respectivament.\n"
+msgstr[1] ""
+"La vostra branca i '%s' s'han divergit,\n"
+"i tenen %d i %d comissions distintes cada una, respectivament.\n"
 
-#: unpack-trees.c:121
+#: remote.c:2114
+msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
+msgstr "  (useu \"git pull\" per a fusionar la branca remota a la vostra)\n"
+
+#: revision.c:2158
+msgid "your current branch appears to be broken"
+msgstr "la vostra branca actual sembla trencada"
+
+#: revision.c:2161
 #, c-format
-msgid "Entry '%s' overlaps with '%s'.  Cannot bind."
-msgstr "L'entrada '%s' encavalca amb '%s'.  No es pot vincular."
+msgid "your current branch '%s' does not have any commits yet"
+msgstr "la vostra branca actual '%s' encara no té cap comissió"
 
-#: unpack-trees.c:124
+#: revision.c:2355
+msgid "--first-parent is incompatible with --bisect"
+msgstr "--first-parent és incompatible amb --bisect"
+
+#: run-command.c:106
+msgid "open /dev/null failed"
+msgstr "s'ha fallat en obrir /dev/null"
+
+#: run-command.c:108
 #, c-format
+msgid "dup2(%d,%d) failed"
+msgstr "dup2(%d,%d) ha fallat"
+
+#: send-pack.c:297
+msgid "failed to sign the push certificate"
+msgstr "s'ha fallat en signar el certificat de pujada"
+
+#: send-pack.c:410
+msgid "the receiving end does not support --signed push"
+msgstr "el destí receptor no admet pujar --signed"
+
+#: send-pack.c:412
 msgid ""
-"Cannot update sparse checkout: the following entries are not up-to-date:\n"
-"%s"
+"not sending a push certificate since the receiving end does not support --"
+"signed push"
 msgstr ""
-"No es pot actualitzar l'agafament parcial: les entrades següents no estan al "
-"dia:\n"
-"%s"
+"no s'està enviant una certificació de pujada perquè el destí receptor no "
+"admet pujar --signed"
 
-#: unpack-trees.c:126
-#, c-format
+#: send-pack.c:424
+msgid "the receiving end does not support --atomic push"
+msgstr "el destí receptor no admet pujar --atomic"
+
+#: send-pack.c:429
+msgid "the receiving end does not support push options"
+msgstr "el destí receptor no admet opcions de pujada"
+
+#: sequencer.c:171
+msgid "revert"
+msgstr "revertir"
+
+#: sequencer.c:171
+msgid "cherry-pick"
+msgstr "recollir cireres"
+
+#: sequencer.c:228
 msgid ""
-"The following Working tree files would be overwritten by sparse checkout "
-"update:\n"
-"%s"
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'"
 msgstr ""
-"Els fitxers següents en l'arbre de treball se sobreescriurien per "
-"actualitzar l'agafament parcial:\n"
-"%s"
+"després de resoldre els conflictes, marqueu els camins\n"
+"corregits amb 'git add <camins>' o 'git rm <camins>'"
 
-#: unpack-trees.c:128
-#, c-format
+#: sequencer.c:231
 msgid ""
-"The following Working tree files would be removed by sparse checkout "
-"update:\n"
-"%s"
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'\n"
+"and commit the result with 'git commit'"
 msgstr ""
-"Els fitxers següents en l'arbre de treball s'eliminarien per actualitzar "
-"l'agafament parcial:\n"
-"%s"
+"després de resoldre els conflictes, marqueu els camins\n"
+"corregits amb 'git add <camins>' o 'git rm <camins>'\n"
+"i cometeu el resultat amb 'git commit'"
 
-#: unpack-trees.c:205
+#: sequencer.c:244 sequencer.c:1209
 #, c-format
-msgid "Aborting\n"
-msgstr "S'està avortant\n"
+msgid "could not lock '%s'"
+msgstr "no s'ha pogut bloquejar '%s'"
 
-#: unpack-trees.c:237
-msgid "Checking out files"
-msgstr "S'està agafant fitxers"
+#: sequencer.c:247 sequencer.c:1125 sequencer.c:1214
+#, c-format
+msgid "could not write to '%s'"
+msgstr "no s'ha pogut escriure a '%s'"
 
-#: urlmatch.c:120
-msgid "invalid URL scheme name or missing '://' suffix"
-msgstr "l'esquema d'URL no és vàlid o li manca el sufix '://'"
+#: sequencer.c:251
+#, c-format
+msgid "could not write eol to '%s'"
+msgstr "no s'ha pogut escriure el terminador de línia a '%s'"
 
-#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#: sequencer.c:255 sequencer.c:1130 sequencer.c:1216
 #, c-format
-msgid "invalid %XX escape sequence"
-msgstr "seqüència d'escapament %XX no vàlida"
+msgid "failed to finalize '%s'."
+msgstr "s'ha fallat en finalitzar '%s'."
 
-#: urlmatch.c:172
-msgid "missing host and scheme is not 'file:'"
-msgstr "manca la màquina i l'esquema no és 'file:'"
+#: sequencer.c:279 builtin/am.c:259 builtin/commit.c:749 builtin/merge.c:1032
+#, c-format
+msgid "could not read '%s'"
+msgstr "no s'ha pogut llegir '%s'"
 
-#: urlmatch.c:189
-msgid "a 'file:' URL may not have a port number"
-msgstr "un URL 'file:' no pot tenir número de port"
+#: sequencer.c:305
+#, c-format
+msgid "your local changes would be overwritten by %s."
+msgstr "els vostres canvis locals se sobreescriurien per %s."
 
-#: urlmatch.c:199
-msgid "invalid characters in host name"
-msgstr "hi ha caràcters no vàlids en el nom de màquina"
+#: sequencer.c:309
+msgid "commit your changes or stash them to proceed."
+msgstr "cometeu els vostres canvis o emmagatzemeu-los per a procedir."
 
-#: urlmatch.c:244 urlmatch.c:255
-msgid "invalid port number"
-msgstr "número de port no vàlid"
+#: sequencer.c:324
+#, c-format
+msgid "%s: fast-forward"
+msgstr "%s: avanç ràpid"
+
+#. TRANSLATORS: %s will be "revert" or "cherry-pick"
+#: sequencer.c:399
+#, c-format
+msgid "%s: Unable to write new index file"
+msgstr "%s: No s'ha pogut escriure un fitxer d'índex nou"
 
-#: urlmatch.c:322
-msgid "invalid '..' path segment"
-msgstr "segment de camí '..' no vàlid"
+#: sequencer.c:418
+msgid "could not resolve HEAD commit\n"
+msgstr "no s'ha pogut resoldre la comissió HEAD\n"
 
-#: worktree.c:282
-#, c-format
-msgid "failed to read '%s'"
-msgstr "s'ha fallat en llegir '%s'"
+#: sequencer.c:438
+msgid "unable to update cache tree\n"
+msgstr "no s'ha pogut actualitzar l'arbre cau\n"
 
-#: wrapper.c:222 wrapper.c:392
+#: sequencer.c:483
 #, c-format
-msgid "could not open '%s' for reading and writing"
-msgstr "no s'ha pogut obrir '%s' per a lectura i escriptura"
+msgid ""
+"you have staged changes in your working tree\n"
+"If these changes are meant to be squashed into the previous commit, run:\n"
+"\n"
+"  git commit --amend %s\n"
+"\n"
+"If they are meant to go into a new commit, run:\n"
+"\n"
+"  git commit %s\n"
+"\n"
+"In both cases, once you're done, continue with:\n"
+"\n"
+"  git rebase --continue\n"
+msgstr ""
+"teniu canvis allistats en el vostre arbre de treball\n"
+"Si aquests canvis són per a aixafar-se a la comissió prèvia, executeu:\n"
+"\n"
+"  git commit --amend %s\n"
+"\n"
+"Si són per a formar una comissió nova, executeu:\n"
+"\n"
+"  git commit %s\n"
+"\n"
+"En ambdós cassos, quan hàgiu terminat, continueu amb:\n"
+"\n"
+"  git rebase --continue\n"
 
-#: wrapper.c:224 wrapper.c:394 builtin/am.c:778
+#: sequencer.c:567
 #, c-format
-msgid "could not open '%s' for writing"
-msgstr "no s'ha pogut obrir '%s' per a escriptura"
+msgid "could not parse commit %s\n"
+msgstr "no s'ha pogut analitzar la comissió %s\n"
 
-#: wrapper.c:226 wrapper.c:396 builtin/am.c:324 builtin/am.c:771
-#: builtin/am.c:859 builtin/commit.c:1712 builtin/merge.c:1029
-#: builtin/pull.c:407
+#: sequencer.c:572
 #, c-format
-msgid "could not open '%s' for reading"
-msgstr "no s'ha pogut obrir '%s' per a lectura"
+msgid "could not parse parent commit %s\n"
+msgstr "no s'ha pogut analitzar la comissió mare %s\n"
 
-#: wrapper.c:605 wrapper.c:626
+#: sequencer.c:656
+msgid "your index file is unmerged."
+msgstr "el vostre fitxer d'índex està sense fusionar."
+
+#: sequencer.c:675
 #, c-format
-msgid "unable to access '%s'"
-msgstr "no s'ha pogut accedir a '%s'"
+msgid "commit %s is a merge but no -m option was given."
+msgstr "la comissió %s és una fusió però no s'ha donat cap opció -m."
 
-#: wrapper.c:634
-msgid "unable to get current working directory"
-msgstr "no s'ha pogut obtenir el directori de treball actual"
+#: sequencer.c:683
+#, c-format
+msgid "commit %s does not have parent %d"
+msgstr "la comissió %s no té mare %d"
 
-#: wrapper.c:658
+#: sequencer.c:687
 #, c-format
-msgid "could not write to %s"
-msgstr "no s'ha pogut escriure a %s"
+msgid "mainline was specified but commit %s is not a merge."
+msgstr ""
+"s'ha especificat la línia principal però la comissió %s no és una fusió."
 
-#: wrapper.c:660
+#. TRANSLATORS: The first %s will be a "todo" command like
+#. "revert" or "pick", the second %s a SHA1.
+#: sequencer.c:700
 #, c-format
-msgid "could not close %s"
-msgstr "no s'ha pogut tancar %s"
+msgid "%s: cannot parse parent commit %s"
+msgstr "%s: no es pot analitzar la comissió mare %s"
 
-#: wt-status.c:150
-msgid "Unmerged paths:"
-msgstr "Camins sense fusionar:"
+#: sequencer.c:705
+#, c-format
+msgid "cannot get commit message for %s"
+msgstr "no es pot obtenir el missatge de comissió de %s"
 
-#: wt-status.c:177 wt-status.c:204
+#: sequencer.c:797
 #, c-format
-msgid "  (use \"git reset %s <file>...\" to unstage)"
-msgstr "  (useu \"git reset %s <fitxer>...\" per a desallistar)"
+msgid "could not revert %s... %s"
+msgstr "no s'ha pogut revertir %s... %s"
 
-#: wt-status.c:179 wt-status.c:206
-msgid "  (use \"git rm --cached <file>...\" to unstage)"
-msgstr "  (useu \"git rm --cached <fitxer>...\" per a desallistar)"
+#: sequencer.c:798
+#, c-format
+msgid "could not apply %s... %s"
+msgstr "no s'ha pogut aplicar %s... %s"
 
-#: wt-status.c:183
-msgid "  (use \"git add <file>...\" to mark resolution)"
-msgstr "  (useu \"git add <fitxer>...\" per a senyalar resolució)"
+#: sequencer.c:833
+msgid "empty commit set passed"
+msgstr "conjunt de comissions buit passat"
 
-#: wt-status.c:185 wt-status.c:189
-msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
-msgstr ""
-"  (useu \"git add/rm <fitxer>...\" segons sigui apropiat per a senyalar "
-"resolució)"
+#: sequencer.c:843
+#, c-format
+msgid "git %s: failed to read the index"
+msgstr "git %s: s'ha fallat en llegir l'índex"
 
-#: wt-status.c:187
-msgid "  (use \"git rm <file>...\" to mark resolution)"
-msgstr "  (useu \"git rm <fitxer>...\" per a senyalar resolució)"
+#: sequencer.c:850
+#, c-format
+msgid "git %s: failed to refresh the index"
+msgstr "git %s: s'ha fallat en actualitzar l'índex"
 
-#: wt-status.c:198 wt-status.c:882
-msgid "Changes to be committed:"
-msgstr "Canvis a cometre:"
+#: sequencer.c:944
+#, c-format
+msgid "invalid line %d: %.*s"
+msgstr "línia no vàlida %d: %.*s"
 
-#: wt-status.c:216 wt-status.c:891
-msgid "Changes not staged for commit:"
-msgstr "Canvis no allistats per a cometre:"
+#: sequencer.c:950
+msgid "no commits parsed."
+msgstr "no s'ha analitzat cap comissió."
 
-#: wt-status.c:220
-msgid "  (use \"git add <file>...\" to update what will be committed)"
-msgstr "  (useu \"git add <fitxer>...\" per a actualitzar què es cometrà)"
+#: sequencer.c:966
+#, c-format
+msgid "could not read '%s'."
+msgstr "no s'ha pogut llegir '%s'."
 
-#: wt-status.c:222
-msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
-msgstr "  (useu \"git add/rm <fitxer>...\" per a actualitzar què es cometrà)"
+#: sequencer.c:972
+#, c-format
+msgid "unusable instruction sheet: '%s'"
+msgstr "full d'instruccions inusable: '%s'"
 
-#: wt-status.c:223
-msgid ""
-"  (use \"git checkout -- <file>...\" to discard changes in working directory)"
-msgstr ""
-"  (useu \"git checkout -- <fitxer>...\" per a descartar els canvis en el "
-"directori de treball)"
+#: sequencer.c:983
+msgid "cannot cherry-pick during a revert."
+msgstr "no es pot recollir cireres durant una reversió."
 
-#: wt-status.c:225
-msgid "  (commit or discard the untracked or modified content in submodules)"
-msgstr ""
-"  (cometeu o descarteu el contingut modificat o no seguit en els submòduls)"
+#: sequencer.c:985
+msgid "cannot revert during a cherry-pick."
+msgstr "no es pot revertir durant un recull de cireres."
 
-#: wt-status.c:237
+#: sequencer.c:1028
 #, c-format
-msgid "  (use \"git %s <file>...\" to include in what will be committed)"
-msgstr "  (useu \"git %s <fitxer>...\" per a incloure-ho en què es cometrà)"
-
-#: wt-status.c:252
-msgid "both deleted:"
-msgstr "suprimit per ambdós:"
+msgid "invalid key: %s"
+msgstr "clau no vàlida: %s"
 
-#: wt-status.c:254
-msgid "added by us:"
-msgstr "afegit per nosaltres:"
-
-#: wt-status.c:256
-msgid "deleted by them:"
-msgstr "suprimit per ells:"
+#: sequencer.c:1031
+#, c-format
+msgid "invalid value for %s: %s"
+msgstr "valor no vàlid per a %s: %s"
 
-#: wt-status.c:258
-msgid "added by them:"
-msgstr "afegit per ells:"
+#: sequencer.c:1063
+#, c-format
+msgid "malformed options sheet: '%s'"
+msgstr "full d'opcions mal format: '%s'"
 
-#: wt-status.c:260
-msgid "deleted by us:"
-msgstr "suprimit per nosaltres:"
+#: sequencer.c:1101
+msgid "a cherry-pick or revert is already in progress"
+msgstr "un recull de cireres o una reversió ja està en curs"
 
-#: wt-status.c:262
-msgid "both added:"
-msgstr "afegit per ambdós:"
+#: sequencer.c:1102
+msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
+msgstr "intenteu \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: wt-status.c:264
-msgid "both modified:"
-msgstr "modificat per ambdós:"
+#: sequencer.c:1106
+#, c-format
+msgid "could not create sequencer directory '%s'"
+msgstr "no s'ha pogut crear el directori de seqüenciador '%s'"
 
-#: wt-status.c:274
-msgid "new file:"
-msgstr "fitxer nou:"
+#: sequencer.c:1120
+msgid "could not lock HEAD"
+msgstr "no s'ha pogut bloquejar HEAD"
 
-#: wt-status.c:276
-msgid "copied:"
-msgstr "copiat:"
+#: sequencer.c:1151 sequencer.c:1289
+msgid "no cherry-pick or revert in progress"
+msgstr "ni hi ha cap recull de cireres ni cap reversió en curs"
 
-#: wt-status.c:278
-msgid "deleted:"
-msgstr "suprimit:"
+#: sequencer.c:1153
+msgid "cannot resolve HEAD"
+msgstr "no es pot resoldre HEAD"
 
-#: wt-status.c:280
-msgid "modified:"
-msgstr "modificat:"
+#: sequencer.c:1155 sequencer.c:1189
+msgid "cannot abort from a branch yet to be born"
+msgstr "no es pot avortar des d'una branca que encara ha de nàixer"
 
-#: wt-status.c:282
-msgid "renamed:"
-msgstr "canviat de nom:"
+#: sequencer.c:1175 builtin/grep.c:578
+#, c-format
+msgid "cannot open '%s'"
+msgstr "no es pot obrir '%s'"
 
-#: wt-status.c:284
-msgid "typechange:"
-msgstr "canviat de tipus:"
+#: sequencer.c:1177
+#, c-format
+msgid "cannot read '%s': %s"
+msgstr "no es pot llegir '%s': %s"
 
-#: wt-status.c:286
-msgid "unknown:"
-msgstr "desconegut:"
+#: sequencer.c:1178
+msgid "unexpected end of file"
+msgstr "final de fitxer inesperat"
 
-#: wt-status.c:288
-msgid "unmerged:"
-msgstr "sense fusionar:"
+#: sequencer.c:1184
+#, c-format
+msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
+msgstr "el fitxer HEAD emmagatzemat abans del recull de cireres '%s' és malmès"
 
-#: wt-status.c:370
-msgid "new commits, "
-msgstr "comissions noves, "
+#: sequencer.c:1354
+#, c-format
+msgid "%s: can't cherry-pick a %s"
+msgstr "%s: no es pot recollir com a cirera un %s"
 
-#: wt-status.c:372
-msgid "modified content, "
-msgstr "contingut modificat, "
+#: sequencer.c:1358
+#, c-format
+msgid "%s: bad revision"
+msgstr "%s: revisió dolenta"
 
-#: wt-status.c:374
-msgid "untracked content, "
-msgstr "contingut no seguit, "
+#: sequencer.c:1391
+msgid "can't revert as initial commit"
+msgstr "no es pot revertir com a comissió inicial"
 
-#: wt-status.c:756
-msgid "Submodules changed but not updated:"
-msgstr "Submòduls canviats però no actualitzats:"
+#: setup.c:160
+#, c-format
+msgid ""
+"%s: no such path in the working tree.\n"
+"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
+msgstr ""
+"%s: no hi ha tal camí en l'arbre de treball.\n"
+"Useu 'git <ordre> -- <camí>...' per a especificar camins que no existeixin "
+"localment."
 
-#: wt-status.c:758
-msgid "Submodule changes to be committed:"
-msgstr "Canvis de submòdul a cometre:"
+#: setup.c:173
+#, c-format
+msgid ""
+"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
+"Use '--' to separate paths from revisions, like this:\n"
+"'git <command> [<revision>...] -- [<file>...]'"
+msgstr ""
+"paràmetre ambigu '%s': revisió no coneguda o camí no en l'arbre de treball.\n"
+"Useu '--' per a separar els camins de les revisions, com això:\n"
+"'git <ordre> [<revisió>...] -- [<fitxer>...]'"
 
-#: wt-status.c:839
+#: setup.c:223
+#, c-format
 msgid ""
-"Do not touch the line above.\n"
-"Everything below will be removed."
+"ambiguous argument '%s': both revision and filename\n"
+"Use '--' to separate paths from revisions, like this:\n"
+"'git <command> [<revision>...] -- [<file>...]'"
 msgstr ""
-"No toqueu la línia de sobre.\n"
-"Tot el que hi ha a sota s'eliminarà."
+"paràmetre ambigu '%s': ambdós una revisió i un nom de fitxer\n"
+"Useu '--' per a separar els camins de les revisions, com això:\n"
+"'git <ordre> [<revisió>...] -- [<fitxer>...]'"
 
-#: wt-status.c:950
-msgid "You have unmerged paths."
-msgstr "Teniu camins sense fusionar."
+#: setup.c:468
+#, c-format
+msgid "Expected git repo version <= %d, found %d"
+msgstr "S'esperava una versió de dipòsit de git <= %d, s'ha trobat %d"
 
-#: wt-status.c:953
-msgid "  (fix conflicts and run \"git commit\")"
-msgstr "  (arregleu els conflictes i executeu \"git commit\")"
+#: setup.c:476
+msgid "unknown repository extensions found:"
+msgstr "s'han trobat extensions de dipòsit desconegudes:"
 
-#: wt-status.c:955
-msgid "  (use \"git merge --abort\" to abort the merge)"
-msgstr "  (useu \"git merge --abort\" per a avortar la fusió)"
+#: setup.c:762
+#, c-format
+msgid "Not a git repository (or any of the parent directories): %s"
+msgstr "No és un dipòsit de git (ni cap dels directoris pares): %s"
 
-#: wt-status.c:960
-msgid "All conflicts fixed but you are still merging."
-msgstr "Tots els conflictes estan arreglats però encara esteu fusionant."
+#: setup.c:764 setup.c:915 builtin/index-pack.c:1641
+msgid "Cannot come back to cwd"
+msgstr "No es pot tornar al directori de treball actual"
 
-#: wt-status.c:963
-msgid "  (use \"git commit\" to conclude merge)"
-msgstr "  (useu \"git commit\" per a concloure la fusió)"
+#: setup.c:845
+msgid "Unable to read current working directory"
+msgstr "No s'ha pogut llegir el directori de treball actual"
 
-#: wt-status.c:973
-msgid "You are in the middle of an am session."
-msgstr "Esteu enmig d'una sessió am."
+#: setup.c:920
+#, c-format
+msgid ""
+"Not a git repository (or any parent up to mount point %s)\n"
+"Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
+msgstr ""
+"No un dipòsit de git (ni cap pare fins el punt de muntatge %s)\n"
+"S'atura a la frontera de sistema de fitxers (GIT_DISCOVERY_ACROSS_FILESYSTEM "
+"no està establert)."
 
-#: wt-status.c:976
-msgid "The current patch is empty."
-msgstr "El pedaç actual està buit."
+#: setup.c:927
+#, c-format
+msgid "Cannot change to '%s/..'"
+msgstr "No es pot canviar a '%s/..'"
 
-#: wt-status.c:980
-msgid "  (fix conflicts and then run \"git am --continue\")"
-msgstr "  (arregleu els conflictes i després executeu \"git am --continue\")"
+#: setup.c:989
+#, c-format
+msgid ""
+"Problem with core.sharedRepository filemode value (0%.3o).\n"
+"The owner of files must always have read and write permissions."
+msgstr ""
+"Hi ha un problema amb el valor de mode de fitxer core.sharedRepository "
+"(0%.3o).\n"
+"El propietari dels fitxers sempre ha de tenir permissions de lectura i "
+"escriptura."
 
-#: wt-status.c:982
-msgid "  (use \"git am --skip\" to skip this patch)"
-msgstr "  (useu \"git am --skip\" per a ometre aquest pedaç)"
+#: sha1_file.c:473
+#, c-format
+msgid "path '%s' does not exist"
+msgstr "el camí '%s' no existeix"
 
-#: wt-status.c:984
-msgid "  (use \"git am --abort\" to restore the original branch)"
-msgstr "  (useu \"git am --abort\" per a restaurar la branca original)"
+#: sha1_file.c:499
+#, c-format
+msgid "reference repository '%s' as a linked checkout is not supported yet."
+msgstr ""
+"Encara no se suporta el dipòsit de referència '%s' com a agafament enllaçat."
 
-#: wt-status.c:1109
-msgid "No commands done."
-msgstr "No s'ha fet cap ordre."
+#: sha1_file.c:505
+#, c-format
+msgid "reference repository '%s' is not a local repository."
+msgstr "el dipòsit de referència '%s' no és un dipòsit local."
 
-#: wt-status.c:1112
+#: sha1_file.c:511
 #, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Última ordre feta (%d ordre feta):"
-msgstr[1] "Últimes ordres fetes (%d ordres fetes):"
+msgid "reference repository '%s' is shallow"
+msgstr "el dipòsit de referència '%s' és superficial"
 
-#: wt-status.c:1123
+#: sha1_file.c:519
 #, c-format
-msgid "  (see more in file %s)"
-msgstr "  (vegeu més en el fitxer %s)"
+msgid "reference repository '%s' is grafted"
+msgstr "el dipòsit de referència '%s' és empeltat"
 
-#: wt-status.c:1128
-msgid "No commands remaining."
-msgstr "No manca cap ordre."
+#: sha1_file.c:1159
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "desplaçament abans de la fi del fitxer de paquet (.idx trencat?)"
 
-#: wt-status.c:1131
+#: sha1_file.c:2592
 #, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Ordre següent a fer (manca %d ordre):"
-msgstr[1] "Ordres següents a fer (manquen %d ordres):"
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr ""
+"desplaçament abans d'inici d'índex de paquet per a %s (índex corromput?)"
 
-#: wt-status.c:1139
-msgid "  (use \"git rebase --edit-todo\" to view and edit)"
-msgstr "  (useu \"git rebase --edit-todo\" per a veure i editar)"
+#: sha1_file.c:2596
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr ""
+"desplaçament més enllà de la fi d'índex de paquet per a %s (índex truncat?)"
 
-#: wt-status.c:1152
+#: sha1_name.c:407
 #, c-format
-msgid "You are currently rebasing branch '%s' on '%s'."
-msgstr "Actualment esteu rebasant la branca '%s' en '%s'."
+msgid "short SHA1 %s is ambiguous"
+msgstr "l'SHA1 %s curt és ambigu"
 
-#: wt-status.c:1157
-msgid "You are currently rebasing."
-msgstr "Actualment esteu rebasant."
+#: sha1_name.c:418
+msgid "The candidates are:"
+msgstr "Els candidats són:"
 
-#: wt-status.c:1171
-msgid "  (fix conflicts and then run \"git rebase --continue\")"
+#: sha1_name.c:578
+msgid ""
+"Git normally never creates a ref that ends with 40 hex characters\n"
+"because it will be ignored when you just specify 40-hex. These refs\n"
+"may be created by mistake. For example,\n"
+"\n"
+"  git checkout -b $br $(git rev-parse ...)\n"
+"\n"
+"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n"
+"examine these refs and maybe delete them. Turn this message off by\n"
+"running \"git config advice.objectNameWarning false\""
 msgstr ""
-"  (arregleu els conflictes i després executeu \"git rebase --continue\")"
+"Git normalment mai crea una referència que acabi amb 40 caràcters\n"
+"hexadecimals perquè s'ignorarà quan només especifiqueu 40 caràcters\n"
+"hexadecimals. Aquestes referències es poden crear per error. Per\n"
+"exemple,\n"
+"\n"
+"  git checkout -b $br $(git rev-parse ...)\n"
+"\n"
+"on \"$br\" és d'alguna manera buida i una referència de 40 caràcters\n"
+"hexadecimals. Si us plau, examineu aquestes referències i potser\n"
+"suprimiu-les. Desactiveu aquest missatge executant\n"
+"\"git config advice.objectNameWarning false\""
 
-#: wt-status.c:1173
-msgid "  (use \"git rebase --skip\" to skip this patch)"
-msgstr "  (useu \"git rebase --skip\" per a saltar aquest pedaç)"
+#: submodule.c:64 submodule.c:98
+msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
+msgstr ""
+"No es pot canviar un .gitmodules no fusionat, primer resoldreu els "
+"conflictes de fusió"
 
-#: wt-status.c:1175
-msgid "  (use \"git rebase --abort\" to check out the original branch)"
-msgstr "  (useu \"git rebase --abort\" per a agafar la branca original)"
+#: submodule.c:68 submodule.c:102
+#, c-format
+msgid "Could not find section in .gitmodules where path=%s"
+msgstr "No s'ha pogut trobar la secció en .gitmodules on path=%s"
 
-#: wt-status.c:1181
-msgid "  (all conflicts fixed: run \"git rebase --continue\")"
-msgstr "  (tots els conflictes arreglats: executeu \"git rebase --continue\")"
+#: submodule.c:76
+#, c-format
+msgid "Could not update .gitmodules entry %s"
+msgstr "No s'ha pogut actualitzar l'entrada de .gitmodules %s"
 
-#: wt-status.c:1185
+#: submodule.c:109
 #, c-format
-msgid ""
-"You are currently splitting a commit while rebasing branch '%s' on '%s'."
-msgstr ""
-"Actualment esteu dividint una comissió mentre rebaseu la branca '%s' en '%s'."
+msgid "Could not remove .gitmodules entry for %s"
+msgstr "No s'ha pogut eliminar l'entrada de .gitmodules per a %s"
 
-#: wt-status.c:1190
-msgid "You are currently splitting a commit during a rebase."
-msgstr "Actualment esteu dividint una comissió durant un rebasament."
+#: submodule.c:120
+msgid "staging updated .gitmodules failed"
+msgstr "l'allistament del .gitmodules actualitzat ha fallat"
 
-#: wt-status.c:1193
-msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
-msgstr ""
-"  (Una vegada que el vostre directori de treball sigui net, executeu \"git "
-"rebase --continue\")"
+#: submodule.c:158
+msgid "negative values not allowed for submodule.fetchJobs"
+msgstr "no es permeten els valors negatius a submodule.fetchJobs"
 
-#: wt-status.c:1197
+#: submodule-config.c:358
 #, c-format
-msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
-msgstr ""
-"Actualment esteu editant una comissió mentre rebaseu la branca '%s' en '%s'."
+msgid "invalid value for %s"
+msgstr "valor no vàlid per a %s"
 
-#: wt-status.c:1202
-msgid "You are currently editing a commit during a rebase."
-msgstr "Actualment esteu editant una comissió durant un rebasament."
+#: trailer.c:238
+#, c-format
+msgid "running trailer command '%s' failed"
+msgstr "l'execució de l'ordre de remolc '%s' ha fallat"
 
-#: wt-status.c:1205
-msgid "  (use \"git commit --amend\" to amend the current commit)"
-msgstr "  (useu \"git commit --amend\" per a esmenar la comissió actual)"
+#: trailer.c:471 trailer.c:475 trailer.c:479 trailer.c:533 trailer.c:537
+#: trailer.c:541
+#, c-format
+msgid "unknown value '%s' for key '%s'"
+msgstr "valor desconegut '%s' per a la clau '%s'"
 
-#: wt-status.c:1207
-msgid ""
-"  (use \"git rebase --continue\" once you are satisfied with your changes)"
-msgstr ""
-"  (useu \"git rebase --continue\" una vegada que esteu satisfet amb els "
-"vostres canvis)"
+#: trailer.c:523 trailer.c:528 builtin/remote.c:289
+#, c-format
+msgid "more than one %s"
+msgstr "més d'un %s"
 
-#: wt-status.c:1217
+#: trailer.c:672
 #, c-format
-msgid "You are currently cherry-picking commit %s."
-msgstr "Actualment esteu recollint com a cirera la comissió %s."
+msgid "empty trailer token in trailer '%.*s'"
+msgstr "fitxa de remolc buida en el remolc '%.*s'"
 
-#: wt-status.c:1222
-msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
-msgstr "  (arregleu els conflictes i executeu \"git cherry-pick --continue\")"
+#: trailer.c:695
+#, c-format
+msgid "could not read input file '%s'"
+msgstr "no s'ha pogut llegir el fitxer d'entrada '%s'"
 
-#: wt-status.c:1225
-msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
-msgstr ""
-"  (tots els conflictes arreglats: executeu \"git cherry-pick --continue\")"
+#: trailer.c:698
+msgid "could not read from stdin"
+msgstr "no s'ha pogut llegir des d'stdin"
 
-#: wt-status.c:1227
-msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
-msgstr ""
-"  (useu \"git cherry-pick --abort\" per a cancel·lar l'operació de recull de "
-"cireres)"
+#: trailer.c:929 builtin/am.c:44
+#, c-format
+msgid "could not stat %s"
+msgstr "no s'ha pogut fer stat a %s"
 
-#: wt-status.c:1236
+#: trailer.c:931
 #, c-format
-msgid "You are currently reverting commit %s."
-msgstr "Actualment esteu revertint la comissió %s."
+msgid "file %s is not a regular file"
+msgstr "el fitxer %s no és un fitxer regular"
 
-#: wt-status.c:1241
-msgid "  (fix conflicts and run \"git revert --continue\")"
-msgstr "  (arregleu els conflictes i executeu \"git revert --continue\")"
+#: trailer.c:933
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "el fitxer %s no és gravable per l'usuari"
 
-#: wt-status.c:1244
-msgid "  (all conflicts fixed: run \"git revert --continue\")"
-msgstr ""
-"  (tots els conflictes estan arreglats: executeu \"git revert --continue\")"
+#: trailer.c:945
+msgid "could not open temporary file"
+msgstr "no s'ha pogut obrir el fitxer temporal"
 
-#: wt-status.c:1246
-msgid "  (use \"git revert --abort\" to cancel the revert operation)"
-msgstr ""
-"  (useu \"git revert --abort\" per a cancel·lar l'operació de reversió)"
+#: trailer.c:983
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "no s'ha pogut canviar el nom del fitxer temporal a %s"
 
-#: wt-status.c:1257
+#: transport.c:62
 #, c-format
-msgid "You are currently bisecting, started from branch '%s'."
-msgstr "Actualment esteu bisecant, heu començat des de la branca '%s'."
+msgid "Would set upstream of '%s' to '%s' of '%s'\n"
+msgstr "Canviaria la font de '%s' a '%s' de '%s'\n"
 
-#: wt-status.c:1261
-msgid "You are currently bisecting."
-msgstr "Actualment esteu bisecant."
+#: transport.c:151
+#, c-format
+msgid "transport: invalid depth option '%s'"
+msgstr "transport: opció de profunditat no vàlida '%s'"
 
-#: wt-status.c:1264
-msgid "  (use \"git bisect reset\" to get back to the original branch)"
-msgstr "  (useu \"git bisect reset\" per a tornar a la branca original)"
+#: transport.c:817
+#, c-format
+msgid ""
+"The following submodule paths contain changes that can\n"
+"not be found on any remote:\n"
+msgstr ""
+"Els camins de submòdul següents contenen canvis que no\n"
+"es poden trobar en cap remot:\n"
 
-#: wt-status.c:1464
-msgid "On branch "
-msgstr "En la branca "
+#: transport.c:821
+#, c-format
+msgid ""
+"\n"
+"Please try\n"
+"\n"
+"\tgit push --recurse-submodules=on-demand\n"
+"\n"
+"or cd to the path and use\n"
+"\n"
+"\tgit push\n"
+"\n"
+"to push them to a remote.\n"
+"\n"
+msgstr ""
+"\n"
+"Si us plau, intenteu\n"
+"\n"
+"\tgit push --recurse-submodules=on-demand\n"
+"\n"
+"o canviar de directori al camí i useu\n"
+"\n"
+"\tgit push\n"
+"\n"
+"per a pujar-los a un remot.\n"
 
-#: wt-status.c:1470
-msgid "interactive rebase in progress; onto "
-msgstr "rebasament interactiu en progrés; sobre "
+#: transport.c:829
+msgid "Aborting."
+msgstr "S'està avortant."
 
-#: wt-status.c:1472
-msgid "rebase in progress; onto "
-msgstr "rebasament en progrés; sobre "
+#: transport-helper.c:1075
+#, c-format
+msgid "Could not read ref %s"
+msgstr "No s'ha pogut llegir la referència %s"
 
-#: wt-status.c:1477
-msgid "HEAD detached at "
-msgstr "HEAD separat a "
+#: tree-walk.c:31
+msgid "too-short tree object"
+msgstr "objecte d'arbre massa curt"
 
-#: wt-status.c:1479
-msgid "HEAD detached from "
-msgstr "HEAD separat de "
+#: tree-walk.c:37
+msgid "malformed mode in tree entry"
+msgstr "mode mal format en entrada d'arbre"
 
-#: wt-status.c:1482
-msgid "Not currently on any branch."
-msgstr "Actualment no s'és en cap branca."
+#: tree-walk.c:41
+msgid "empty filename in tree entry"
+msgstr "nom de fitxer buit en entrada de arbre"
 
-#: wt-status.c:1500
-msgid "Initial commit"
-msgstr "Comissió inicial"
+#: tree-walk.c:113
+msgid "too-short tree file"
+msgstr "fitxer d'arbre massa curt"
 
-#: wt-status.c:1514
-msgid "Untracked files"
-msgstr "Fitxers no seguits"
+#: unpack-trees.c:64
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by checkout:\n"
+"%%sPlease commit your changes or stash them before you switch branches."
+msgstr ""
+"Els vostres canvis locals als fitxers següents se sobreescriurien per "
+"agafar:\n"
+"%%sSi us plau, cometeu els vostres canvis o emmagatzemeu-los abans de "
+"canviar de branca."
 
-#: wt-status.c:1516
-msgid "Ignored files"
-msgstr "Fitxers ignorats"
+#: unpack-trees.c:66
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by checkout:\n"
+"%%s"
+msgstr ""
+"Els vostres canvis locals als fitxers següents se sobreescriurien per "
+"agafar:\n"
+"%%s"
+
+#: unpack-trees.c:69
+#, c-format
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+"%%sPlease commit your changes or stash them before you merge."
+msgstr ""
+"Els vostres canvis locals als fitxers següents se sobreescriurien per "
+"fusionar:\n"
+"%%sSi us plau, cometeu els vostres canvis o emmagatzemeu-los abans de "
+"fusionar."
 
-#: wt-status.c:1520
+#: unpack-trees.c:71
 #, c-format
 msgid ""
-"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
-"may speed it up, but you have to be careful not to forget to add\n"
-"new files yourself (see 'git help status')."
+"Your local changes to the following files would be overwritten by merge:\n"
+"%%s"
 msgstr ""
-"S'ha trigat %.2f segons a enumerar fitxers no seguits.\n"
-"'status -uno' pot accelerar-ho, però heu d'anar amb compte de no\n"
-"oblidar-vos d'afegir fitxers nous per vós mateix (vegeu\n"
-"'git help status')."
+"Els vostres canvis locals als fitxers següents se sobreescriurien per "
+"fusionar:\n"
+"%%s"
 
-#: wt-status.c:1526
+#: unpack-trees.c:74
 #, c-format
-msgid "Untracked files not listed%s"
-msgstr "Els fitxers no seguits no estan llistats%s"
-
-#: wt-status.c:1528
-msgid " (use -u option to show untracked files)"
-msgstr " (useu l'opció -u per a mostrar els fitxers no seguits)"
-
-#: wt-status.c:1534
-msgid "No changes"
-msgstr "Sense canvis"
+msgid ""
+"Your local changes to the following files would be overwritten by %s:\n"
+"%%sPlease commit your changes or stash them before you %s."
+msgstr ""
+"Els vostres canvis locals als fitxers següents se sobreescriurien per %s:\n"
+"%%sSi us plau, cometeu els vostres canvis o emmagatzemeu-los abans de %s."
 
-#: wt-status.c:1539
+#: unpack-trees.c:76
 #, c-format
-msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
+msgid ""
+"Your local changes to the following files would be overwritten by %s:\n"
+"%%s"
 msgstr ""
-"no hi ha canvis afegits a cometre (useu \"git add\" o \"git commit -a\")\n"
+"Els vostres canvis locals als fitxers següents se sobreescriurien per %s:\n"
+"%%s"
 
-#: wt-status.c:1542
+#: unpack-trees.c:81
 #, c-format
-msgid "no changes added to commit\n"
-msgstr "no hi ha canvis afegits a cometre\n"
+msgid ""
+"Updating the following directories would lose untracked files in it:\n"
+"%s"
+msgstr ""
+"Actualitzar els directoris següents perdria fitxers no seguits en el:\n"
+"%s"
 
-#: wt-status.c:1545
+#: unpack-trees.c:85
 #, c-format
 msgid ""
-"nothing added to commit but untracked files present (use \"git add\" to "
-"track)\n"
+"The following untracked working tree files would be removed by checkout:\n"
+"%%sPlease move or remove them before you switch branches."
 msgstr ""
-"no hi ha res afegit a cometre però fitxers no seguits estan presents (useu "
-"\"git add\" per a seguir-los)\n"
+"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
+"agafar:\n"
+"%%sSi us plau, moveu-los o elimineu-los abans de canviar de branca."
 
-#: wt-status.c:1548
+#: unpack-trees.c:87
 #, c-format
-msgid "nothing added to commit but untracked files present\n"
-msgstr "no hi ha res afegit a cometre però fitxers no seguits estan presents\n"
+msgid ""
+"The following untracked working tree files would be removed by checkout:\n"
+"%%s"
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
+"agafar:\n"
+"%%s"
 
-#: wt-status.c:1551
+#: unpack-trees.c:90
 #, c-format
-msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
+msgid ""
+"The following untracked working tree files would be removed by merge:\n"
+"%%sPlease move or remove them before you merge."
 msgstr ""
-"no hi ha res a cometre (creeu/copieu fitxers i useu \"git add\" per a seguir-"
-"los)\n"
+"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
+"fusionar:\n"
+"%%sSi us plau, moveu-los o elimineu-los abans de fusionar."
 
-#: wt-status.c:1554 wt-status.c:1559
+#: unpack-trees.c:92
 #, c-format
-msgid "nothing to commit\n"
-msgstr "no hi ha res a cometre\n"
+msgid ""
+"The following untracked working tree files would be removed by merge:\n"
+"%%s"
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per "
+"fusionar:\n"
+"%%s"
 
-#: wt-status.c:1557
+#: unpack-trees.c:95
 #, c-format
-msgid "nothing to commit (use -u to show untracked files)\n"
+msgid ""
+"The following untracked working tree files would be removed by %s:\n"
+"%%sPlease move or remove them before you %s."
 msgstr ""
-"no hi ha res a cometre (useu -u per a mostrar els fitxers no seguits)\n"
+"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per %s:\n"
+"%%sSi us plau, moveu-los o elimineu-los abans de %s."
 
-#: wt-status.c:1561
+#: unpack-trees.c:97
 #, c-format
-msgid "nothing to commit, working tree clean\n"
-msgstr "no hi ha res a cometre, l'arbre de treball està net\n"
-
-#: wt-status.c:1668
-msgid "Initial commit on "
-msgstr "Comissió inicial en "
-
-#: wt-status.c:1672
-msgid "HEAD (no branch)"
-msgstr "HEAD (sense branca)"
-
-#: wt-status.c:1701
-msgid "gone"
-msgstr "no hi és"
-
-#: wt-status.c:1703 wt-status.c:1711
-msgid "behind "
-msgstr "darrere "
-
-#: wt-status.c:1706 wt-status.c:1709
-msgid "ahead "
-msgstr "davant per "
+msgid ""
+"The following untracked working tree files would be removed by %s:\n"
+"%%s"
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball s'eliminarien per %s:\n"
+"%%s"
 
-#: compat/precompose_utf8.c:57 builtin/clone.c:415
+#: unpack-trees.c:102
 #, c-format
-msgid "failed to unlink '%s'"
-msgstr "s'ha fallat en desenllaçar '%s'"
-
-#: builtin/add.c:22
-msgid "git add [<options>] [--] <pathspec>..."
-msgstr "git add [<opcions>] [--] <especificació-de-camí>..."
+msgid ""
+"The following untracked working tree files would be overwritten by "
+"checkout:\n"
+"%%sPlease move or remove them before you switch branches."
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
+"agafar:\n"
+"%%sSi us plau, moveu-los o elimineu-los abans de canviar de branca."
 
-#: builtin/add.c:65
+#: unpack-trees.c:104
 #, c-format
-msgid "unexpected diff status %c"
-msgstr "estat de diff inesperat %c"
-
-#: builtin/add.c:71 builtin/commit.c:281
-msgid "updating files failed"
-msgstr "s'ha fallat en actualitzar els fitxers"
+msgid ""
+"The following untracked working tree files would be overwritten by "
+"checkout:\n"
+"%%s"
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
+"agafar:\n"
+"%%s"
 
-#: builtin/add.c:81
+#: unpack-trees.c:107
 #, c-format
-msgid "remove '%s'\n"
-msgstr "elimina '%s'\n"
+msgid ""
+"The following untracked working tree files would be overwritten by merge:\n"
+"%%sPlease move or remove them before you merge."
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
+"fusionar:\n"
+"%%sSi us plau, moveu-los o elimineu-los abans de fusionar."
 
-#: builtin/add.c:136
-msgid "Unstaged changes after refreshing the index:"
-msgstr "Canvis no allistats després d'actualitzar l'índex:"
+#: unpack-trees.c:109
+#, c-format
+msgid ""
+"The following untracked working tree files would be overwritten by merge:\n"
+"%%s"
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
+"fusionar:\n"
+"%%s"
 
-#: builtin/add.c:196 builtin/rev-parse.c:811
-msgid "Could not read the index"
-msgstr "No s'ha pogut llegir l'índex"
+#: unpack-trees.c:112
+#, c-format
+msgid ""
+"The following untracked working tree files would be overwritten by %s:\n"
+"%%sPlease move or remove them before you %s."
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
+"%s:\n"
+"%%sSi us plau, moveu-los o elimineu-los abans de %s."
 
-#: builtin/add.c:207
+#: unpack-trees.c:114
 #, c-format
-msgid "Could not open '%s' for writing."
-msgstr "No s'ha pogut obrir '%s' per a escriptura."
+msgid ""
+"The following untracked working tree files would be overwritten by %s:\n"
+"%%s"
+msgstr ""
+"Els següents fitxers no seguits en l'arbre de treball se sobreescriurien per "
+"%s:\n"
+"%%s"
 
-#: builtin/add.c:211
-msgid "Could not write patch"
-msgstr "No s'ha pogut escriure el pedaç"
+#: unpack-trees.c:121
+#, c-format
+msgid "Entry '%s' overlaps with '%s'.  Cannot bind."
+msgstr "L'entrada '%s' encavalca amb '%s'.  No es pot vincular."
 
-#: builtin/add.c:214
-msgid "editing patch failed"
-msgstr "l'edició del pedaç ha fallat"
+#: unpack-trees.c:124
+#, c-format
+msgid ""
+"Cannot update sparse checkout: the following entries are not up-to-date:\n"
+"%s"
+msgstr ""
+"No es pot actualitzar l'agafament parcial: les entrades següents no estan al "
+"dia:\n"
+"%s"
 
-#: builtin/add.c:217
+#: unpack-trees.c:126
 #, c-format
-msgid "Could not stat '%s'"
-msgstr "No s'ha pogut fer stat a '%s'"
+msgid ""
+"The following working tree files would be overwritten by sparse checkout "
+"update:\n"
+"%s"
+msgstr ""
+"Els fitxers següents en l'arbre de treball se sobreescriurien per "
+"actualitzar l'agafament parcial:\n"
+"%s"
 
-#: builtin/add.c:219
-msgid "Empty patch. Aborted."
-msgstr "El pedaç és buit. S'ha avortat."
+#: unpack-trees.c:128
+#, c-format
+msgid ""
+"The following working tree files would be removed by sparse checkout "
+"update:\n"
+"%s"
+msgstr ""
+"Els fitxers següents en l'arbre de treball s'eliminarien per actualitzar "
+"l'agafament parcial:\n"
+"%s"
 
-#: builtin/add.c:224
+#: unpack-trees.c:205
 #, c-format
-msgid "Could not apply '%s'"
-msgstr "No s'ha pogut aplicar '%s'"
+msgid "Aborting\n"
+msgstr "S'està avortant\n"
 
-#: builtin/add.c:234
-msgid "The following paths are ignored by one of your .gitignore files:\n"
-msgstr ""
-"Els camins següents s'ignoren per un dels vostres fitxers .gitignore:\n"
+#: unpack-trees.c:237
+msgid "Checking out files"
+msgstr "S'està agafant fitxers"
 
-#: builtin/add.c:253 builtin/clean.c:870 builtin/fetch.c:113 builtin/mv.c:111
-#: builtin/prune-packed.c:55 builtin/pull.c:197 builtin/push.c:521
-#: builtin/remote.c:1327 builtin/rm.c:268 builtin/send-pack.c:162
-msgid "dry run"
-msgstr "marxa en sec"
+#: urlmatch.c:120
+msgid "invalid URL scheme name or missing '://' suffix"
+msgstr "l'esquema d'URL no és vàlid o li manca el sufix '://'"
 
-#: builtin/add.c:254 builtin/apply.c:4854 builtin/check-ignore.c:19
-#: builtin/commit.c:1334 builtin/count-objects.c:85 builtin/fsck.c:593
-#: builtin/log.c:1852 builtin/mv.c:110 builtin/read-tree.c:114
-msgid "be verbose"
-msgstr "sigues detallat"
+#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#, c-format
+msgid "invalid %XX escape sequence"
+msgstr "seqüència d'escapament %XX no vàlida"
+
+#: urlmatch.c:172
+msgid "missing host and scheme is not 'file:'"
+msgstr "manca la màquina i l'esquema no és 'file:'"
 
-#: builtin/add.c:256
-msgid "interactive picking"
-msgstr "recull interactiu"
+#: urlmatch.c:189
+msgid "a 'file:' URL may not have a port number"
+msgstr "un URL 'file:' no pot tenir número de port"
 
-#: builtin/add.c:257 builtin/checkout.c:1157 builtin/reset.c:286
-msgid "select hunks interactively"
-msgstr "selecciona els trossos interactivament"
+#: urlmatch.c:199
+msgid "invalid characters in host name"
+msgstr "hi ha caràcters no vàlids en el nom de màquina"
 
-#: builtin/add.c:258
-msgid "edit current diff and apply"
-msgstr "edita la diferència actual i aplica-la"
+#: urlmatch.c:244 urlmatch.c:255
+msgid "invalid port number"
+msgstr "número de port no vàlid"
 
-#: builtin/add.c:259
-msgid "allow adding otherwise ignored files"
-msgstr "permet afegir fitxers que d'altra manera s'ignoren"
+#: urlmatch.c:322
+msgid "invalid '..' path segment"
+msgstr "segment de camí '..' no vàlid"
 
-#: builtin/add.c:260
-msgid "update tracked files"
-msgstr "actualitza els fitxers seguits"
+#: worktree.c:282
+#, c-format
+msgid "failed to read '%s'"
+msgstr "s'ha fallat en llegir '%s'"
 
-#: builtin/add.c:261
-msgid "record only the fact that the path will be added later"
-msgstr "registra només el fet que el camí s'afegirà més tard"
+#: wrapper.c:222 wrapper.c:392
+#, c-format
+msgid "could not open '%s' for reading and writing"
+msgstr "no s'ha pogut obrir '%s' per a lectura i escriptura"
 
-#: builtin/add.c:262
-msgid "add changes from all tracked and untracked files"
-msgstr "afegeix els canvis de tots els fitxers seguits i no seguits"
+#: wrapper.c:224 wrapper.c:394 builtin/am.c:766
+#, c-format
+msgid "could not open '%s' for writing"
+msgstr "no s'ha pogut obrir '%s' per a escriptura"
 
-#: builtin/add.c:265
-msgid "ignore paths removed in the working tree (same as --no-all)"
-msgstr ""
-"ignora els camins eliminats en l'arbre de treball (el mateix que --no-all)"
+#: wrapper.c:226 wrapper.c:396 builtin/am.c:320 builtin/am.c:759
+#: builtin/am.c:847 builtin/commit.c:1705 builtin/merge.c:1029
+#: builtin/pull.c:341
+#, c-format
+msgid "could not open '%s' for reading"
+msgstr "no s'ha pogut obrir '%s' per a lectura"
 
-#: builtin/add.c:267
-msgid "don't add, only refresh the index"
-msgstr "no afegeixis, només actualitza l'índex"
+#: wrapper.c:605 wrapper.c:626
+#, c-format
+msgid "unable to access '%s'"
+msgstr "no s'ha pogut accedir a '%s'"
 
-#: builtin/add.c:268
-msgid "just skip files which cannot be added because of errors"
-msgstr "només omet els fitxers que no es poden afegir a causa d'errors"
+#: wrapper.c:634
+msgid "unable to get current working directory"
+msgstr "no s'ha pogut obtenir el directori de treball actual"
 
-#: builtin/add.c:269
-msgid "check if - even missing - files are ignored in dry run"
-msgstr ""
-"comproveu si els fitxers - fins i tot els absents - s'ignoren en marxa en sec"
+#: wrapper.c:658
+#, c-format
+msgid "could not write to %s"
+msgstr "no s'ha pogut escriure a %s"
 
-#: builtin/add.c:270 builtin/update-index.c:958
-msgid "(+/-)x"
-msgstr "(+/-)x"
+#: wrapper.c:660
+#, c-format
+msgid "could not close %s"
+msgstr "no s'ha pogut tancar %s"
 
-#: builtin/add.c:270 builtin/update-index.c:959
-msgid "override the executable bit of the listed files"
-msgstr "passa per alt el bit executable dels fitxers llistats"
+#: wt-status.c:151
+msgid "Unmerged paths:"
+msgstr "Camins sense fusionar:"
 
-#: builtin/add.c:292
+#: wt-status.c:178 wt-status.c:205
 #, c-format
-msgid "Use -f if you really want to add them.\n"
-msgstr "Useu -f si realment els voleu afegir.\n"
+msgid "  (use \"git reset %s <file>...\" to unstage)"
+msgstr "  (useu \"git reset %s <fitxer>...\" per a desallistar)"
 
-#: builtin/add.c:300
-msgid "adding files failed"
-msgstr "l'afegiment de fitxers ha fallat"
+#: wt-status.c:180 wt-status.c:207
+msgid "  (use \"git rm --cached <file>...\" to unstage)"
+msgstr "  (useu \"git rm --cached <fitxer>...\" per a desallistar)"
 
-#: builtin/add.c:336
-msgid "-A and -u are mutually incompatible"
-msgstr "-A i -u són mutualment incompatibles"
+#: wt-status.c:184
+msgid "  (use \"git add <file>...\" to mark resolution)"
+msgstr "  (useu \"git add <fitxer>...\" per a senyalar resolució)"
 
-#: builtin/add.c:343
-msgid "Option --ignore-missing can only be used together with --dry-run"
-msgstr "L'opció --ignore-missing només es pot usar junt amb --dry-run"
+#: wt-status.c:186 wt-status.c:190
+msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
+msgstr ""
+"  (useu \"git add/rm <fitxer>...\" segons sigui apropiat per a senyalar "
+"resolució)"
 
-#: builtin/add.c:352
-#, c-format
-msgid "--chmod param '%s' must be either -x or +x"
-msgstr "el paràmetre --chmod '%s' ha de ser o -x o +x"
+#: wt-status.c:188
+msgid "  (use \"git rm <file>...\" to mark resolution)"
+msgstr "  (useu \"git rm <fitxer>...\" per a senyalar resolució)"
 
-#: builtin/add.c:367
-#, c-format
-msgid "Nothing specified, nothing added.\n"
-msgstr "No s'ha especificat res, no s'ha afegit res.\n"
+#: wt-status.c:199 wt-status.c:945
+msgid "Changes to be committed:"
+msgstr "Canvis a cometre:"
 
-#: builtin/add.c:368
-#, c-format
-msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr "Potser volíeu dir 'git add .'?\n"
+#: wt-status.c:217 wt-status.c:954
+msgid "Changes not staged for commit:"
+msgstr "Canvis no allistats per a cometre:"
 
-#: builtin/add.c:373 builtin/check-ignore.c:172 builtin/checkout.c:279
-#: builtin/checkout.c:473 builtin/clean.c:914 builtin/commit.c:340
-#: builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:240
-msgid "index file corrupt"
-msgstr "fitxer d'índex malmès"
+#: wt-status.c:221
+msgid "  (use \"git add <file>...\" to update what will be committed)"
+msgstr "  (useu \"git add <fitxer>...\" per a actualitzar què es cometrà)"
 
-#: builtin/add.c:454 builtin/apply.c:4784 builtin/mv.c:286 builtin/rm.c:431
-msgid "Unable to write new index file"
-msgstr "no s'ha pogut escriure un fitxer d'índex nou"
+#: wt-status.c:223
+msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
+msgstr "  (useu \"git add/rm <fitxer>...\" per a actualitzar què es cometrà)"
 
-#: builtin/am.c:257 builtin/commit.c:750 builtin/merge.c:1032
-#, c-format
-msgid "could not read '%s'"
-msgstr "no s'ha pogut llegir '%s'"
+#: wt-status.c:224
+msgid ""
+"  (use \"git checkout -- <file>...\" to discard changes in working directory)"
+msgstr ""
+"  (useu \"git checkout -- <fitxer>...\" per a descartar els canvis en el "
+"directori de treball)"
 
-#: builtin/am.c:426
-msgid "could not parse author script"
-msgstr "no s'ha pogut analitzar l'script d'autor"
+#: wt-status.c:226
+msgid "  (commit or discard the untracked or modified content in submodules)"
+msgstr ""
+"  (cometeu o descarteu el contingut modificat o no seguit en els submòduls)"
 
-#: builtin/am.c:503
+#: wt-status.c:238
 #, c-format
-msgid "'%s' was deleted by the applypatch-msg hook"
-msgstr "s'ha suprimit '%s' pel ganxo applypatch-msg"
+msgid "  (use \"git %s <file>...\" to include in what will be committed)"
+msgstr "  (useu \"git %s <fitxer>...\" per a incloure-ho en què es cometrà)"
 
-#: builtin/am.c:544 builtin/notes.c:301
-#, c-format
-msgid "Malformed input line: '%s'."
-msgstr "Línia d'entrada mal formada: '%s'."
+#: wt-status.c:253
+msgid "both deleted:"
+msgstr "suprimit per ambdós:"
 
-#: builtin/am.c:581 builtin/notes.c:316
-#, c-format
-msgid "Failed to copy notes from '%s' to '%s'"
-msgstr "S'ha fallat en copiar les notes de '%s' a '%s'"
+#: wt-status.c:255
+msgid "added by us:"
+msgstr "afegit per nosaltres:"
 
-#: builtin/am.c:607
-msgid "fseek failed"
-msgstr "fseek ha fallat"
+#: wt-status.c:257
+msgid "deleted by them:"
+msgstr "suprimit per ells:"
 
-#: builtin/am.c:787
-#, c-format
-msgid "could not parse patch '%s'"
-msgstr "no s'ha pogut analitzar el pedaç '%s'"
+#: wt-status.c:259
+msgid "added by them:"
+msgstr "afegit per ells:"
 
-#: builtin/am.c:852
-msgid "Only one StGIT patch series can be applied at once"
-msgstr "només una sèrie de pedaços StGIT es pot aplicar a la vegada"
+#: wt-status.c:261
+msgid "deleted by us:"
+msgstr "suprimit per nosaltres:"
 
-#: builtin/am.c:899
-msgid "invalid timestamp"
-msgstr "marca de temps no vàlida"
+#: wt-status.c:263
+msgid "both added:"
+msgstr "afegit per ambdós:"
 
-#: builtin/am.c:902 builtin/am.c:910
-msgid "invalid Date line"
-msgstr "línia Date no vàlida"
+#: wt-status.c:265
+msgid "both modified:"
+msgstr "modificat per ambdós:"
 
-#: builtin/am.c:907
-msgid "invalid timezone offset"
-msgstr "desplaçament de zona de temps no vàlid"
+#: wt-status.c:275
+msgid "new file:"
+msgstr "fitxer nou:"
 
-#: builtin/am.c:996
-msgid "Patch format detection failed."
-msgstr "La detecció de format de pedaç ha fallat."
+#: wt-status.c:277
+msgid "copied:"
+msgstr "copiat:"
 
-#: builtin/am.c:1001 builtin/clone.c:380
-#, c-format
-msgid "failed to create directory '%s'"
-msgstr "s'ha fallat en crear el directori '%s'"
+#: wt-status.c:279
+msgid "deleted:"
+msgstr "suprimit:"
 
-#: builtin/am.c:1005
-msgid "Failed to split patches."
-msgstr "S'ha fallat en dividir els pedaços."
+#: wt-status.c:281
+msgid "modified:"
+msgstr "modificat:"
 
-#: builtin/am.c:1137 builtin/commit.c:366
-msgid "unable to write index file"
-msgstr "no s'ha pogut escriure el fitxer d'índex"
+#: wt-status.c:283
+msgid "renamed:"
+msgstr "canviat de nom:"
 
-#: builtin/am.c:1188
-#, c-format
-msgid "When you have resolved this problem, run \"%s --continue\"."
-msgstr "Quan hàgiu resolt aquest problema, executeu \"%s --continue\"."
+#: wt-status.c:285
+msgid "typechange:"
+msgstr "canviat de tipus:"
 
-#: builtin/am.c:1189
-#, c-format
-msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
-msgstr ""
-"Si preferiu saltar aquest pedaç, executeu \"%s --skip\" en lloc d'això."
+#: wt-status.c:287
+msgid "unknown:"
+msgstr "desconegut:"
 
-#: builtin/am.c:1190
-#, c-format
-msgid "To restore the original branch and stop patching, run \"%s --abort\"."
-msgstr ""
-"Per a restaurar la branca original i deixar d'apedaçar, executeu \"%s --abort"
-"\"."
+#: wt-status.c:289
+msgid "unmerged:"
+msgstr "sense fusionar:"
 
-#: builtin/am.c:1328
-msgid "Patch is empty. Was it split wrong?"
-msgstr "El pedaç és buit. S'ha dividit malament?"
+#: wt-status.c:371
+msgid "new commits, "
+msgstr "comissions noves, "
 
-#: builtin/am.c:1402 builtin/log.c:1543
-#, c-format
-msgid "invalid ident line: %s"
-msgstr "línia d'identitat no vàlida: %s"
+#: wt-status.c:373
+msgid "modified content, "
+msgstr "contingut modificat, "
 
-#: builtin/am.c:1429
-#, c-format
-msgid "unable to parse commit %s"
-msgstr "no s'ha pogut analitzar la comissió %s"
+#: wt-status.c:375
+msgid "untracked content, "
+msgstr "contingut no seguit, "
 
-#: builtin/am.c:1602
-msgid "Repository lacks necessary blobs to fall back on 3-way merge."
-msgstr ""
-"Al dipòsit li manquen els blobs necessaris per a retrocedir a una fusió de 3 "
-"vies."
+#: wt-status.c:818
+msgid "Submodules changed but not updated:"
+msgstr "Submòduls canviats però no actualitzats:"
 
-#: builtin/am.c:1604
-msgid "Using index info to reconstruct a base tree..."
-msgstr "S'està usant la informació d'índex per a reconstruir un arbre base..."
+#: wt-status.c:820
+msgid "Submodule changes to be committed:"
+msgstr "Canvis de submòdul a cometre:"
 
-#: builtin/am.c:1623
+#: wt-status.c:901
 msgid ""
-"Did you hand edit your patch?\n"
-"It does not apply to blobs recorded in its index."
+"Do not touch the line above.\n"
+"Everything below will be removed."
 msgstr ""
-"Heu editat el vostre pedaç a mà?\n"
-"No s'aplica als blobs recordats en el seu índex."
+"No toqueu la línia a dalt.\n"
+"Tot el que hi ha a sota s'eliminarà."
 
-#: builtin/am.c:1629
-msgid "Falling back to patching base and 3-way merge..."
-msgstr "S'està retrocedint a apedaçar la base i fusionar de 3 vies..."
+#: wt-status.c:1013
+msgid "You have unmerged paths."
+msgstr "Teniu camins sense fusionar."
 
-#: builtin/am.c:1654
-msgid "Failed to merge in the changes."
-msgstr "S'ha fallat en fusionar els canvis."
+#: wt-status.c:1016
+msgid "  (fix conflicts and run \"git commit\")"
+msgstr "  (arregleu els conflictes i executeu \"git commit\")"
 
-#: builtin/am.c:1679 builtin/merge.c:628
-msgid "git write-tree failed to write a tree"
-msgstr "git write-tree ha fallat en escriure un arbre"
+#: wt-status.c:1018
+msgid "  (use \"git merge --abort\" to abort the merge)"
+msgstr "  (useu \"git merge --abort\" per a avortar la fusió)"
 
-#: builtin/am.c:1686
-msgid "applying to an empty history"
-msgstr "s'està aplicant a una història buida"
+#: wt-status.c:1023
+msgid "All conflicts fixed but you are still merging."
+msgstr "Tots els conflictes estan arreglats però encara esteu fusionant."
+
+#: wt-status.c:1026
+msgid "  (use \"git commit\" to conclude merge)"
+msgstr "  (useu \"git commit\" per a concloure la fusió)"
+
+#: wt-status.c:1036
+msgid "You are in the middle of an am session."
+msgstr "Esteu enmig d'una sessió am."
 
-#: builtin/am.c:1699 builtin/commit.c:1776 builtin/merge.c:798
-#: builtin/merge.c:823
-msgid "failed to write commit object"
-msgstr "s'ha fallat en escriure l'objecte de comissió"
+#: wt-status.c:1039
+msgid "The current patch is empty."
+msgstr "El pedaç actual està buit."
 
-#: builtin/am.c:1731 builtin/am.c:1735
-#, c-format
-msgid "cannot resume: %s does not exist."
-msgstr "no es pot reprendre: %s no existeix."
+#: wt-status.c:1043
+msgid "  (fix conflicts and then run \"git am --continue\")"
+msgstr "  (arregleu els conflictes i després executeu \"git am --continue\")"
 
-#: builtin/am.c:1751
-msgid "cannot be interactive without stdin connected to a terminal."
-msgstr ""
-"no es pot ser interactiu sense que stdin sigui connectat a un terminal."
+#: wt-status.c:1045
+msgid "  (use \"git am --skip\" to skip this patch)"
+msgstr "  (useu \"git am --skip\" per a ometre aquest pedaç)"
 
-#: builtin/am.c:1756
-msgid "Commit Body is:"
-msgstr "El cos de la comissió és:"
+#: wt-status.c:1047
+msgid "  (use \"git am --abort\" to restore the original branch)"
+msgstr "  (useu \"git am --abort\" per a restaurar la branca original)"
 
-#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
-#. in your translation. The program will only accept English
-#. input at this point.
-#.
-#: builtin/am.c:1766
-msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
-msgstr ""
-"Voleu aplicar-lo? [y]es/[n]o/[e]dita/[v]isualitza el pedaç/[a]ccepta'ls "
-"tots: "
+#: wt-status.c:1172
+msgid "No commands done."
+msgstr "No s'ha fet cap ordre."
 
-#: builtin/am.c:1816
+#: wt-status.c:1175
 #, c-format
-msgid "Dirty index: cannot apply patches (dirty: %s)"
-msgstr "Índex brut: no es pot aplicar pedaços (bruts: %s)"
+msgid "Last command done (%d command done):"
+msgid_plural "Last commands done (%d commands done):"
+msgstr[0] "Última ordre feta (%d ordre feta):"
+msgstr[1] "Últimes ordres fetes (%d ordres fetes):"
 
-#: builtin/am.c:1853 builtin/am.c:1925
+#: wt-status.c:1186
 #, c-format
-msgid "Applying: %.*s"
-msgstr "S'està aplicant: %.*s"
+msgid "  (see more in file %s)"
+msgstr "  (vegeu més en el fitxer %s)"
 
-#: builtin/am.c:1869
-msgid "No changes -- Patch already applied."
-msgstr "Sense canvis -- El pedaç ja s'ha aplicat."
+#: wt-status.c:1191
+msgid "No commands remaining."
+msgstr "No manca cap ordre."
 
-#: builtin/am.c:1877
+#: wt-status.c:1194
 #, c-format
-msgid "Patch failed at %s %.*s"
-msgstr "El pedaç ha fallat a %s %.*s"
+msgid "Next command to do (%d remaining command):"
+msgid_plural "Next commands to do (%d remaining commands):"
+msgstr[0] "Ordre següent a fer (manca %d ordre):"
+msgstr[1] "Ordres següents a fer (manquen %d ordres):"
+
+#: wt-status.c:1202
+msgid "  (use \"git rebase --edit-todo\" to view and edit)"
+msgstr "  (useu \"git rebase --edit-todo\" per a veure i editar)"
 
-#: builtin/am.c:1883
+#: wt-status.c:1215
 #, c-format
-msgid "The copy of the patch that failed is found in: %s"
-msgstr "La còpia del pedaç que ha fallat es troba en: %s"
+msgid "You are currently rebasing branch '%s' on '%s'."
+msgstr "Actualment esteu rebasant la branca '%s' en '%s'."
 
-#: builtin/am.c:1928
-msgid ""
-"No changes - did you forget to use 'git add'?\n"
-"If there is nothing left to stage, chances are that something else\n"
-"already introduced the same changes; you might want to skip this patch."
-msgstr ""
-"Cap canvi - heu oblidat d'usar 'git add'?\n"
-"Si no hi ha res a allistar, probablement alguna altra cosa\n"
-"ja ha introduït els mateixos canvis; potser voleu ometre aquest pedaç."
+#: wt-status.c:1220
+msgid "You are currently rebasing."
+msgstr "Actualment esteu rebasant."
 
-#: builtin/am.c:1935
-msgid ""
-"You still have unmerged paths in your index.\n"
-"Did you forget to use 'git add'?"
+#: wt-status.c:1234
+msgid "  (fix conflicts and then run \"git rebase --continue\")"
 msgstr ""
-"Encara teniu camins sense fusionar en el vostre índex.\n"
-"Heu oblidat d'usar 'git add'?"
+"  (arregleu els conflictes i després executeu \"git rebase --continue\")"
 
-#: builtin/am.c:2043 builtin/am.c:2047 builtin/am.c:2059 builtin/reset.c:308
-#: builtin/reset.c:316
-#, c-format
-msgid "Could not parse object '%s'."
-msgstr "No s'ha pogut analitzar l'objecte '%s'."
+#: wt-status.c:1236
+msgid "  (use \"git rebase --skip\" to skip this patch)"
+msgstr "  (useu \"git rebase --skip\" per a saltar aquest pedaç)"
 
-#: builtin/am.c:2095
-msgid "failed to clean index"
-msgstr "s'ha fallat en netejar l'índex"
+#: wt-status.c:1238
+msgid "  (use \"git rebase --abort\" to check out the original branch)"
+msgstr "  (useu \"git rebase --abort\" per a agafar la branca original)"
 
-#: builtin/am.c:2129
-msgid ""
-"You seem to have moved HEAD since the last 'am' failure.\n"
-"Not rewinding to ORIG_HEAD"
+#: wt-status.c:1244
+msgid "  (all conflicts fixed: run \"git rebase --continue\")"
 msgstr ""
-"Sembla que heu mogut HEAD després de l'última fallada de 'am'.\n"
-"No rebobinant a ORIG_HEAD"
+"  (tots els conflictes estan arreglats: executeu \"git rebase --continue\")"
 
-#: builtin/am.c:2192
+#: wt-status.c:1248
 #, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Valor no vàlid per a --patch-format: %s"
-
-#: builtin/am.c:2225
-msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
-msgstr "git am [<opcions>] [(<bústia>|<directori-de-correu>)...]"
-
-#: builtin/am.c:2226
-msgid "git am [<options>] (--continue | --skip | --abort)"
-msgstr "git am [<opcions>] (--continue | --skip | --abort)"
-
-#: builtin/am.c:2232
-msgid "run interactively"
-msgstr "executa interactivament"
-
-#: builtin/am.c:2234
-msgid "historical option -- no-op"
-msgstr "opció històrica -- no-op"
-
-#: builtin/am.c:2236
-msgid "allow fall back on 3way merging if needed"
-msgstr "permet retrocedir a una fusió de 3 vies si és necessari"
-
-#: builtin/am.c:2237 builtin/init-db.c:481 builtin/prune-packed.c:57
-#: builtin/repack.c:172
-msgid "be quiet"
-msgstr "calla"
-
-#: builtin/am.c:2239
-msgid "add a Signed-off-by line to the commit message"
-msgstr "afegeix una línia Signed-off-by al missatge de comissió"
+msgid ""
+"You are currently splitting a commit while rebasing branch '%s' on '%s'."
+msgstr ""
+"Actualment esteu dividint una comissió mentre rebaseu la branca '%s' en '%s'."
 
-#: builtin/am.c:2242
-msgid "recode into utf8 (default)"
-msgstr "recodifica en utf8 (per defecte)"
+#: wt-status.c:1253
+msgid "You are currently splitting a commit during a rebase."
+msgstr "Actualment esteu dividint una comissió durant un rebasament."
 
-#: builtin/am.c:2244
-msgid "pass -k flag to git-mailinfo"
-msgstr "passa la bandera -k al git-mailinfo"
+#: wt-status.c:1256
+msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
+msgstr ""
+"  (Una vegada que el vostre directori de treball sigui net, executeu \"git "
+"rebase --continue\")"
 
-#: builtin/am.c:2246
-msgid "pass -b flag to git-mailinfo"
-msgstr "passa la bandera -b al git-mailinfo"
+#: wt-status.c:1260
+#, c-format
+msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
+msgstr ""
+"Actualment esteu editant una comissió mentre rebaseu la branca '%s' en '%s'."
 
-#: builtin/am.c:2248
-msgid "pass -m flag to git-mailinfo"
-msgstr "passa la bandera -m al git-mailinfo"
+#: wt-status.c:1265
+msgid "You are currently editing a commit during a rebase."
+msgstr "Actualment esteu editant una comissió durant un rebasament."
 
-#: builtin/am.c:2250
-msgid "pass --keep-cr flag to git-mailsplit for mbox format"
-msgstr "passa la bandera --keep-cr al git-mailsplit pel format mbox"
+#: wt-status.c:1268
+msgid "  (use \"git commit --amend\" to amend the current commit)"
+msgstr "  (useu \"git commit --amend\" per a esmenar la comissió actual)"
 
-#: builtin/am.c:2253
-msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
+#: wt-status.c:1270
+msgid ""
+"  (use \"git rebase --continue\" once you are satisfied with your changes)"
 msgstr ""
-"no passis la bandera --keep-cr al git-mailsplit independent de am.keepcr"
-
-#: builtin/am.c:2256
-msgid "strip everything before a scissors line"
-msgstr "despulla tot abans d'una línia de tissores"
-
-#: builtin/am.c:2257 builtin/apply.c:4837
-msgid "action"
-msgstr "acció"
+"  (useu \"git rebase --continue\" una vegada que estigueu satisfet amb els "
+"vostres canvis)"
 
-#: builtin/am.c:2258 builtin/am.c:2261 builtin/am.c:2264 builtin/am.c:2267
-#: builtin/am.c:2270 builtin/am.c:2273 builtin/am.c:2276 builtin/am.c:2279
-#: builtin/am.c:2285
-msgid "pass it through git-apply"
-msgstr "passa-ho a través del git-apply"
+#: wt-status.c:1280
+#, c-format
+msgid "You are currently cherry-picking commit %s."
+msgstr "Actualment esteu recollint com a cirera la comissió %s."
 
-#: builtin/am.c:2266 builtin/apply.c:4861
-msgid "root"
-msgstr "arrel"
+#: wt-status.c:1285
+msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
+msgstr "  (arregleu els conflictes i executeu \"git cherry-pick --continue\")"
 
-#: builtin/am.c:2269 builtin/am.c:2272 builtin/apply.c:4799
-#: builtin/apply.c:4802 builtin/clone.c:90 builtin/fetch.c:96
-#: builtin/pull.c:179 builtin/submodule--helper.c:277
-#: builtin/submodule--helper.c:402 builtin/submodule--helper.c:482
-#: builtin/submodule--helper.c:485 builtin/submodule--helper.c:823
-#: builtin/submodule--helper.c:826
-msgid "path"
-msgstr "camí"
+#: wt-status.c:1288
+msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
+msgstr ""
+"  (tots els conflictes estan arreglats: executeu \"git cherry-pick --continue"
+"\")"
 
-#: builtin/am.c:2275 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:706 builtin/merge.c:200 builtin/pull.c:134 builtin/pull.c:193
-#: builtin/repack.c:181 builtin/repack.c:185 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
-msgid "n"
-msgstr "n"
+#: wt-status.c:1290
+msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
+msgstr ""
+"  (useu \"git cherry-pick --abort\" per a cancel·lar l'operació de recull de "
+"cireres)"
 
-#: builtin/am.c:2278 builtin/apply.c:4805
-msgid "num"
-msgstr "número"
+#: wt-status.c:1299
+#, c-format
+msgid "You are currently reverting commit %s."
+msgstr "Actualment esteu revertint la comissió %s."
 
-#: builtin/am.c:2281 builtin/for-each-ref.c:37 builtin/replace.c:438
-#: builtin/tag.c:372
-msgid "format"
-msgstr "format"
+#: wt-status.c:1304
+msgid "  (fix conflicts and run \"git revert --continue\")"
+msgstr "  (arregleu els conflictes i executeu \"git revert --continue\")"
 
-#: builtin/am.c:2282
-msgid "format the patch(es) are in"
-msgstr "el format en el qual estan els pedaços"
+#: wt-status.c:1307
+msgid "  (all conflicts fixed: run \"git revert --continue\")"
+msgstr ""
+"  (tots els conflictes estan arreglats: executeu \"git revert --continue\")"
 
-#: builtin/am.c:2288
-msgid "override error message when patch failure occurs"
+#: wt-status.c:1309
+msgid "  (use \"git revert --abort\" to cancel the revert operation)"
 msgstr ""
-"passa per alt el missatge d'error quan s'ocorre una fallada en apedaçar"
+"  (useu \"git revert --abort\" per a cancel·lar l'operació de reversió)"
 
-#: builtin/am.c:2290
-msgid "continue applying patches after resolving a conflict"
-msgstr "segueix aplicant pedaços després de resoldre un conflicte"
+#: wt-status.c:1320
+#, c-format
+msgid "You are currently bisecting, started from branch '%s'."
+msgstr "Actualment esteu bisecant, heu començat des de la branca '%s'."
 
-#: builtin/am.c:2293
-msgid "synonyms for --continue"
-msgstr "sinònims de --continue"
+#: wt-status.c:1324
+msgid "You are currently bisecting."
+msgstr "Actualment esteu bisecant."
 
-#: builtin/am.c:2296
-msgid "skip the current patch"
-msgstr "salta el pedaç actual"
+#: wt-status.c:1327
+msgid "  (use \"git bisect reset\" to get back to the original branch)"
+msgstr "  (useu \"git bisect reset\" per a tornar a la branca original)"
 
-#: builtin/am.c:2299
-msgid "restore the original branch and abort the patching operation."
-msgstr "restaura la branca original i avorta l'operació d'apedaçament."
+#: wt-status.c:1524
+msgid "On branch "
+msgstr "En la branca "
 
-#: builtin/am.c:2303
-msgid "lie about committer date"
-msgstr "menteix sobre la data del comitent"
+#: wt-status.c:1530
+msgid "interactive rebase in progress; onto "
+msgstr "rebasament interactiu en progrés; sobre "
 
-#: builtin/am.c:2305
-msgid "use current timestamp for author date"
-msgstr "usa el marc de temps actual per la data d'autor"
+#: wt-status.c:1532
+msgid "rebase in progress; onto "
+msgstr "rebasament en progrés; sobre "
 
-#: builtin/am.c:2307 builtin/commit.c:1610 builtin/merge.c:229
-#: builtin/pull.c:164 builtin/revert.c:92 builtin/tag.c:355
-msgid "key-id"
-msgstr "ID de clau"
+#: wt-status.c:1537
+msgid "HEAD detached at "
+msgstr "HEAD separat a "
 
-#: builtin/am.c:2308
-msgid "GPG-sign commits"
-msgstr "signa les comissions amb GPG"
+#: wt-status.c:1539
+msgid "HEAD detached from "
+msgstr "HEAD separat de "
 
-#: builtin/am.c:2311
-msgid "(internal use for git-rebase)"
-msgstr "(ús intern per al git-rebase)"
+#: wt-status.c:1542
+msgid "Not currently on any branch."
+msgstr "Actualment no s'és en cap branca."
 
-#: builtin/am.c:2326
-msgid ""
-"The -b/--binary option has been a no-op for long time, and\n"
-"it will be removed. Please do not use it anymore."
-msgstr ""
-"Fa molt que l'opció -b/--binary no ha fet res, i\n"
-"s'eliminarà. Si us plau, no l'useu més."
+#: wt-status.c:1560
+msgid "Initial commit"
+msgstr "Comissió inicial"
 
-#: builtin/am.c:2333
-msgid "failed to read the index"
-msgstr "s'ha fallat en llegir l'índex"
+#: wt-status.c:1574
+msgid "Untracked files"
+msgstr "Fitxers no seguits"
 
-#: builtin/am.c:2348
-#, c-format
-msgid "previous rebase directory %s still exists but mbox given."
-msgstr ""
-"un directori de rebasament anterior %s encara existeix però s'ha donat una "
-"bústia."
+#: wt-status.c:1576
+msgid "Ignored files"
+msgstr "Fitxers ignorats"
 
-#: builtin/am.c:2372
+#: wt-status.c:1580
 #, c-format
 msgid ""
-"Stray %s directory found.\n"
-"Use \"git am --abort\" to remove it."
+"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
+"may speed it up, but you have to be careful not to forget to add\n"
+"new files yourself (see 'git help status')."
 msgstr ""
-"Directori %s extraviat trobat.\n"
-"Useu \"git am --abort\" per a eliminar-lo."
+"Ha trigat %.2f segons enumerar els fitxers no seguits.\n"
+"'status -uno' pot accelerar-ho, però heu d'anar amb compte de no\n"
+"oblidar-vos d'afegir fitxers nous per vós mateix (vegeu\n"
+"'git help status')."
 
-#: builtin/am.c:2378
-msgid "Resolve operation not in progress, we are not resuming."
-msgstr "Operació de resolució no en curs; no reprenem."
+#: wt-status.c:1586
+#, c-format
+msgid "Untracked files not listed%s"
+msgstr "Els fitxers no seguits no estan llistats%s"
 
-#: builtin/apply.c:122
-msgid "git apply [<options>] [<patch>...]"
-msgstr "git apply [<opcions>] [<pedaç>...]"
+#: wt-status.c:1588
+msgid " (use -u option to show untracked files)"
+msgstr " (useu l'opció -u per a mostrar els fitxers no seguits)"
 
-#: builtin/apply.c:153
-#, c-format
-msgid "unrecognized whitespace option '%s'"
-msgstr "opció d'espai en blanc '%s' no reconeguda"
+#: wt-status.c:1594
+msgid "No changes"
+msgstr "Sense canvis"
 
-#: builtin/apply.c:169
+#: wt-status.c:1599
 #, c-format
-msgid "unrecognized whitespace ignore option '%s'"
-msgstr "opció d'ignoral d'espai en blanc '%s' no reconeguda"
+msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
+msgstr ""
+"no hi ha canvis afegits a cometre (useu \"git add\" o \"git commit -a\")\n"
 
-#: builtin/apply.c:854
+#: wt-status.c:1602
 #, c-format
-msgid "Cannot prepare timestamp regexp %s"
-msgstr "No es pot preparar l'expressió regular de marca de temps %s"
+msgid "no changes added to commit\n"
+msgstr "no hi ha canvis afegits a cometre\n"
 
-#: builtin/apply.c:863
+#: wt-status.c:1605
 #, c-format
-msgid "regexec returned %d for input: %s"
-msgstr "regexec ha retornat %d per l'entrada: %s"
+msgid ""
+"nothing added to commit but untracked files present (use \"git add\" to "
+"track)\n"
+msgstr ""
+"no hi ha res afegit a cometre però fitxers no seguits estan presents (useu "
+"\"git add\" per a seguir-los)\n"
 
-#: builtin/apply.c:947
+#: wt-status.c:1608
 #, c-format
-msgid "unable to find filename in patch at line %d"
-msgstr "no s'ha pogut trobar el nom de fitxer en el pedaç a la línia %d"
+msgid "nothing added to commit but untracked files present\n"
+msgstr "no hi ha res afegit a cometre però fitxers no seguits estan presents\n"
 
-#: builtin/apply.c:984
+#: wt-status.c:1611
 #, c-format
-msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
+msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
 msgstr ""
-"git apply: git-diff dolent - /dev/null esperat, %s rebut en la línia %d"
+"no hi ha res a cometre (creeu/copieu fitxers i useu \"git add\" per a seguir-"
+"los)\n"
 
-#: builtin/apply.c:989
+#: wt-status.c:1614 wt-status.c:1619
 #, c-format
-msgid "git apply: bad git-diff - inconsistent new filename on line %d"
-msgstr ""
-"git apply: git-diff dolent - nom de fitxer nou inconsistent en la línia %d"
+msgid "nothing to commit\n"
+msgstr "no hi ha res a cometre\n"
 
-#: builtin/apply.c:990
+#: wt-status.c:1617
 #, c-format
-msgid "git apply: bad git-diff - inconsistent old filename on line %d"
+msgid "nothing to commit (use -u to show untracked files)\n"
 msgstr ""
-"git apply: git-diff dolent - nom de fitxer antic inconsistent en la línia %d"
+"no hi ha res a cometre (useu -u per a mostrar els fitxers no seguits)\n"
 
-#: builtin/apply.c:995
+#: wt-status.c:1621
 #, c-format
-msgid "git apply: bad git-diff - expected /dev/null on line %d"
-msgstr "git apply: git-diff dolent - /dev/null esperat en la línia %d"
+msgid "nothing to commit, working tree clean\n"
+msgstr "no hi ha res a cometre, l'arbre de treball està net\n"
 
-#: builtin/apply.c:1489
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recompte: línia inesperada: %.*s"
+#: wt-status.c:1728
+msgid "Initial commit on "
+msgstr "Comissió inicial en "
 
-#: builtin/apply.c:1550
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "fragment de pedaç sense capçalera a la línia %d: %.*s"
+#: wt-status.c:1732
+msgid "HEAD (no branch)"
+msgstr "HEAD (sense branca)"
 
-#: builtin/apply.c:1567
-#, c-format
-msgid ""
-"git diff header lacks filename information when removing %d leading pathname "
-"component (line %d)"
-msgid_plural ""
-"git diff header lacks filename information when removing %d leading pathname "
-"components (line %d)"
-msgstr[0] ""
-"a la capçalera de git diff li manca informació de nom de fitxer en eliminar "
-"%d component de nom de camí inicial (línia %d)"
-msgstr[1] ""
-"a la capçalera de git diff li manca informació de nom de fitxer en eliminar "
-"%d components de nom de camí inicial (línia %d)"
+#: wt-status.c:1761
+msgid "gone"
+msgstr "no hi és"
 
-#: builtin/apply.c:1743
-msgid "new file depends on old contents"
-msgstr "el fitxer nou depèn dels continguts antics"
+#: wt-status.c:1763 wt-status.c:1771
+msgid "behind "
+msgstr "darrere "
 
-#: builtin/apply.c:1745
-msgid "deleted file still has contents"
-msgstr "el fitxer suprimit encara té continguts"
+#: wt-status.c:1766 wt-status.c:1769
+msgid "ahead "
+msgstr "davant per "
 
-#: builtin/apply.c:1774
+#. TRANSLATORS: the action is e.g. "pull with rebase"
+#: wt-status.c:2270
 #, c-format
-msgid "corrupt patch at line %d"
-msgstr "el pedaç és malmès a la línia %d"
+msgid "cannot %s: You have unstaged changes."
+msgstr "no es pot %s: Teniu canvis no allistats."
 
-#: builtin/apply.c:1810
-#, c-format
-msgid "new file %s depends on old contents"
-msgstr "el fitxer nou %s depèn dels continguts antics"
+#: wt-status.c:2276
+msgid "additionally, your index contains uncommitted changes."
+msgstr "addicionalment, el vostre índex conté canvis sense cometre."
 
-#: builtin/apply.c:1812
+#: wt-status.c:2278
 #, c-format
-msgid "deleted file %s still has contents"
-msgstr "el fitxer suprimit %s encara té continguts"
+msgid "cannot %s: Your index contains uncommitted changes."
+msgstr "no es pot %s: El vostre índex conté canvis sense cometre."
 
-#: builtin/apply.c:1815
+#: compat/precompose_utf8.c:57 builtin/clone.c:414
 #, c-format
-msgid "** warning: file %s becomes empty but is not deleted"
-msgstr "** advertència: el fitxer %s queda buit però no se suprimeix"
+msgid "failed to unlink '%s'"
+msgstr "s'ha fallat en desenllaçar '%s'"
 
-#: builtin/apply.c:1962
-#, c-format
-msgid "corrupt binary patch at line %d: %.*s"
-msgstr "pedaç binari malmès a la línia %d: %.*s"
+#: builtin/add.c:22
+msgid "git add [<options>] [--] <pathspec>..."
+msgstr "git add [<opcions>] [--] <especificació-de-camí>..."
 
-#: builtin/apply.c:1999
+#: builtin/add.c:80
 #, c-format
-msgid "unrecognized binary patch at line %d"
-msgstr "pedaç binari no reconegut a la línia %d"
+msgid "unexpected diff status %c"
+msgstr "estat de diff inesperat %c"
+
+#: builtin/add.c:85 builtin/commit.c:291
+msgid "updating files failed"
+msgstr "s'ha fallat en actualitzar els fitxers"
 
-#: builtin/apply.c:2154
+#: builtin/add.c:95
 #, c-format
-msgid "patch with only garbage at line %d"
-msgstr "pedaç amb només escombraries a la línia %d"
+msgid "remove '%s'\n"
+msgstr "elimina '%s'\n"
+
+#: builtin/add.c:149
+msgid "Unstaged changes after refreshing the index:"
+msgstr "Canvis no allistats després d'actualitzar l'índex:"
 
-#: builtin/apply.c:2244
+#: builtin/add.c:209 builtin/rev-parse.c:840
+msgid "Could not read the index"
+msgstr "No s'ha pogut llegir l'índex"
+
+#: builtin/add.c:220
 #, c-format
-msgid "unable to read symlink %s"
-msgstr "no s'ha pogut llegir l'enllaç simbòlic %s"
+msgid "Could not open '%s' for writing."
+msgstr "No s'ha pogut obrir '%s' per a escriptura."
+
+#: builtin/add.c:224
+msgid "Could not write patch"
+msgstr "No s'ha pogut escriure el pedaç"
+
+#: builtin/add.c:227
+msgid "editing patch failed"
+msgstr "l'edició del pedaç ha fallat"
 
-#: builtin/apply.c:2248
+#: builtin/add.c:230
 #, c-format
-msgid "unable to open or read %s"
-msgstr "no s'ha pogut obrir o llegir %s"
+msgid "Could not stat '%s'"
+msgstr "No s'ha pogut fer stat a '%s'"
+
+#: builtin/add.c:232
+msgid "Empty patch. Aborted."
+msgstr "El pedaç és buit. S'ha avortat."
 
-#: builtin/apply.c:2901
+#: builtin/add.c:237
 #, c-format
-msgid "invalid start of line: '%c'"
-msgstr "inici de línia no vàlid: '%c'"
+msgid "Could not apply '%s'"
+msgstr "No s'ha pogut aplicar '%s'"
+
+#: builtin/add.c:247
+msgid "The following paths are ignored by one of your .gitignore files:\n"
+msgstr ""
+"Els camins següents s'ignoren per un dels vostres fitxers .gitignore:\n"
+
+#: builtin/add.c:266 builtin/clean.c:870 builtin/fetch.c:115 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:198 builtin/push.c:521
+#: builtin/remote.c:1326 builtin/rm.c:268 builtin/send-pack.c:162
+msgid "dry run"
+msgstr "marxa en sec"
+
+#: builtin/add.c:269
+msgid "interactive picking"
+msgstr "recull interactiu"
+
+#: builtin/add.c:270 builtin/checkout.c:1156 builtin/reset.c:286
+msgid "select hunks interactively"
+msgstr "selecciona els trossos interactivament"
+
+#: builtin/add.c:271
+msgid "edit current diff and apply"
+msgstr "edita la diferència actual i aplica-la"
+
+#: builtin/add.c:272
+msgid "allow adding otherwise ignored files"
+msgstr "permet afegir fitxers que d'altra manera s'ignoren"
+
+#: builtin/add.c:273
+msgid "update tracked files"
+msgstr "actualitza els fitxers seguits"
+
+#: builtin/add.c:274
+msgid "record only the fact that the path will be added later"
+msgstr "registra només el fet de que el camí s'afegirà més tard"
+
+#: builtin/add.c:275
+msgid "add changes from all tracked and untracked files"
+msgstr "afegeix els canvis de tots els fitxers seguits i no seguits"
+
+#: builtin/add.c:278
+msgid "ignore paths removed in the working tree (same as --no-all)"
+msgstr ""
+"ignora els camins eliminats en l'arbre de treball (el mateix que --no-all)"
+
+#: builtin/add.c:280
+msgid "don't add, only refresh the index"
+msgstr "no afegeixis, només actualitza l'índex"
+
+#: builtin/add.c:281
+msgid "just skip files which cannot be added because of errors"
+msgstr "només omet els fitxers que no es poden afegir a causa d'errors"
+
+#: builtin/add.c:282
+msgid "check if - even missing - files are ignored in dry run"
+msgstr ""
+"comproveu si els fitxers - fins i tot els absents - s'ignoren en marxa en sec"
+
+#: builtin/add.c:283 builtin/update-index.c:947
+msgid "(+/-)x"
+msgstr "(+/-)x"
+
+#: builtin/add.c:283 builtin/update-index.c:948
+msgid "override the executable bit of the listed files"
+msgstr "passa per alt el bit executable dels fitxers llistats"
 
-#: builtin/apply.c:3020
+#: builtin/add.c:305
 #, c-format
-msgid "Hunk #%d succeeded at %d (offset %d line)."
-msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
-msgstr[0] "El tros #%d ha tingut èxit a %d (desplaçament %d línia)."
-msgstr[1] "El tros #%d ha tingut èxit a %d (desplaçament %d línies)."
+msgid "Use -f if you really want to add them.\n"
+msgstr "Useu -f si realment els voleu afegir.\n"
+
+#: builtin/add.c:312
+msgid "adding files failed"
+msgstr "l'afegiment de fitxers ha fallat"
+
+#: builtin/add.c:348
+msgid "-A and -u are mutually incompatible"
+msgstr "-A i -u són mutualment incompatibles"
+
+#: builtin/add.c:355
+msgid "Option --ignore-missing can only be used together with --dry-run"
+msgstr "L'opció --ignore-missing només es pot usar junt amb --dry-run"
 
-#: builtin/apply.c:3032
+#: builtin/add.c:359
 #, c-format
-msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
-msgstr "El context s'ha reduït a (%ld/%ld) per a aplicar el fragment a %d"
+msgid "--chmod param '%s' must be either -x or +x"
+msgstr "el paràmetre --chmod '%s' ha de ser o -x o +x"
 
-#: builtin/apply.c:3038
+#: builtin/add.c:374
 #, c-format
-msgid ""
-"while searching for:\n"
-"%.*s"
-msgstr ""
-"tot cercant:\n"
-"%.*s"
+msgid "Nothing specified, nothing added.\n"
+msgstr "No s'ha especificat res, no s'ha afegit res.\n"
 
-#: builtin/apply.c:3060
+#: builtin/add.c:375
 #, c-format
-msgid "missing binary patch data for '%s'"
-msgstr "manquen les dades de pedaç binari de '%s'"
+msgid "Maybe you wanted to say 'git add .'?\n"
+msgstr "Potser volíeu dir 'git add .'?\n"
+
+#: builtin/add.c:380 builtin/check-ignore.c:172 builtin/checkout.c:279
+#: builtin/checkout.c:472 builtin/clean.c:914 builtin/commit.c:350
+#: builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:244
+msgid "index file corrupt"
+msgstr "fitxer d'índex malmès"
+
+#: builtin/am.c:414
+msgid "could not parse author script"
+msgstr "no s'ha pogut analitzar l'script d'autor"
 
-#: builtin/apply.c:3163
+#: builtin/am.c:491
 #, c-format
-msgid "binary patch does not apply to '%s'"
-msgstr "el pedaç binari no s'aplica a '%s'"
+msgid "'%s' was deleted by the applypatch-msg hook"
+msgstr "s'ha suprimit '%s' pel ganxo applypatch-msg"
 
-#: builtin/apply.c:3169
+#: builtin/am.c:532
 #, c-format
-msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
-msgstr ""
-"el pedaç binari a '%s' crea un resultat incorrecte (esperant %s, %s rebut)"
+msgid "Malformed input line: '%s'."
+msgstr "Línia d'entrada mal formada: '%s'."
 
-#: builtin/apply.c:3190
+#: builtin/am.c:569
 #, c-format
-msgid "patch failed: %s:%ld"
-msgstr "el pedaç ha fallat: %s:%ld"
+msgid "Failed to copy notes from '%s' to '%s'"
+msgstr "S'ha fallat en copiar les notes de '%s' a '%s'"
+
+#: builtin/am.c:595
+msgid "fseek failed"
+msgstr "fseek ha fallat"
 
-#: builtin/apply.c:3314
+#: builtin/am.c:775
 #, c-format
-msgid "cannot checkout %s"
-msgstr "no es pot agafar %s"
+msgid "could not parse patch '%s'"
+msgstr "no s'ha pogut analitzar el pedaç '%s'"
+
+#: builtin/am.c:840
+msgid "Only one StGIT patch series can be applied at once"
+msgstr "només una sèrie de pedaços StGIT es pot aplicar a la vegada"
 
-#: builtin/apply.c:3370
-#, c-format
-msgid "reading from '%s' beyond a symbolic link"
-msgstr "s'està llegint de '%s' més enllà d'un enllaç simbòlic"
+#: builtin/am.c:887
+msgid "invalid timestamp"
+msgstr "marca de temps no vàlida"
 
-#: builtin/apply.c:3399 builtin/apply.c:3630
-#, c-format
-msgid "path %s has been renamed/deleted"
-msgstr "el camí %s s'ha canviat de nom / s'ha suprimit"
+#: builtin/am.c:890 builtin/am.c:898
+msgid "invalid Date line"
+msgstr "línia Date no vàlida"
 
-#: builtin/apply.c:3482 builtin/apply.c:3644
-#, c-format
-msgid "%s: does not exist in index"
-msgstr "%s: no existeix en l'índex"
+#: builtin/am.c:895
+msgid "invalid timezone offset"
+msgstr "desplaçament de zona de temps no vàlid"
 
-#: builtin/apply.c:3486 builtin/apply.c:3636 builtin/apply.c:3658
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#: builtin/am.c:984
+msgid "Patch format detection failed."
+msgstr "La detecció de format de pedaç ha fallat."
 
-#: builtin/apply.c:3491 builtin/apply.c:3652
+#: builtin/am.c:989 builtin/clone.c:379
 #, c-format
-msgid "%s: does not match index"
-msgstr "%s: no coincideix amb l'índex"
+msgid "failed to create directory '%s'"
+msgstr "s'ha fallat en crear el directori '%s'"
 
-#: builtin/apply.c:3597
-msgid "removal patch leaves file contents"
-msgstr "el pedaç d'eliminació deixa els continguts dels fitxers"
+#: builtin/am.c:993
+msgid "Failed to split patches."
+msgstr "S'ha fallat en dividir els pedaços."
 
-#: builtin/apply.c:3669
-#, c-format
-msgid "%s: wrong type"
-msgstr "%s: tipus erroni"
+#: builtin/am.c:1125 builtin/commit.c:376
+msgid "unable to write index file"
+msgstr "no s'ha pogut escriure el fitxer d'índex"
 
-#: builtin/apply.c:3671
+#: builtin/am.c:1176
 #, c-format
-msgid "%s has type %o, expected %o"
-msgstr "%s és del tipus %o, s'esperava %o"
+msgid "When you have resolved this problem, run \"%s --continue\"."
+msgstr "Quan hàgiu resolt aquest problema, executeu \"%s --continue\"."
 
-#: builtin/apply.c:3822 builtin/apply.c:3824
+#: builtin/am.c:1177
 #, c-format
-msgid "invalid path '%s'"
-msgstr "camí no vàlid: %s"
+msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
+msgstr ""
+"Si preferiu saltar aquest pedaç, executeu \"%s --skip\" en lloc d'això."
 
-#: builtin/apply.c:3879
+#: builtin/am.c:1178
 #, c-format
-msgid "%s: already exists in index"
-msgstr "%s: ja existeix en l'índex"
+msgid "To restore the original branch and stop patching, run \"%s --abort\"."
+msgstr ""
+"Per a restaurar la branca original i deixar d'apedaçar, executeu \"%s --abort"
+"\"."
 
-#: builtin/apply.c:3882
-#, c-format
-msgid "%s: already exists in working directory"
-msgstr "%s: ja existeix en el directori de treball"
+#: builtin/am.c:1316
+msgid "Patch is empty. Was it split wrong?"
+msgstr "El pedaç és buit. S'ha dividit malament?"
 
-#: builtin/apply.c:3902
+#: builtin/am.c:1390 builtin/log.c:1550
 #, c-format
-msgid "new mode (%o) of %s does not match old mode (%o)"
-msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o)"
+msgid "invalid ident line: %s"
+msgstr "línia d'identitat no vàlida: %s"
 
-#: builtin/apply.c:3907
+#: builtin/am.c:1417
 #, c-format
-msgid "new mode (%o) of %s does not match old mode (%o) of %s"
-msgstr "el mode nou (%o) de %s no coincideix amb el mode antic (%o) de %s"
+msgid "unable to parse commit %s"
+msgstr "no s'ha pogut analitzar la comissió %s"
 
-#: builtin/apply.c:3927
-#, c-format
-msgid "affected file '%s' is beyond a symbolic link"
-msgstr "el fitxer afectat '%s' és més enllà d'un enllaç simbòlic"
+#: builtin/am.c:1610
+msgid "Repository lacks necessary blobs to fall back on 3-way merge."
+msgstr ""
+"Al dipòsit li manquen els blobs necessaris per a retrocedir a una fusió de 3 "
+"vies."
 
-#: builtin/apply.c:3931
-#, c-format
-msgid "%s: patch does not apply"
-msgstr "%s: el pedaç no s'aplica"
+#: builtin/am.c:1612
+msgid "Using index info to reconstruct a base tree..."
+msgstr "S'està usant la informació d'índex per a reconstruir un arbre base..."
 
-#: builtin/apply.c:3945
-#, c-format
-msgid "Checking patch %s..."
-msgstr "S'està comprovant el pedaç %s..."
+#: builtin/am.c:1631
+msgid ""
+"Did you hand edit your patch?\n"
+"It does not apply to blobs recorded in its index."
+msgstr ""
+"Heu editat el vostre pedaç a mà?\n"
+"No s'aplica als blobs recordats en el seu índex."
 
-#: builtin/apply.c:4038 builtin/checkout.c:233 builtin/reset.c:135
-#, c-format
-msgid "make_cache_entry failed for path '%s'"
-msgstr "make_cache_entry ha fallat per al camí '%s'"
+#: builtin/am.c:1637
+msgid "Falling back to patching base and 3-way merge..."
+msgstr "S'està retrocedint a apedaçar la base i fusionar de 3 vies..."
 
-#: builtin/apply.c:4182
-#, c-format
-msgid "unable to remove %s from index"
-msgstr "no s'ha pogut eliminar %s de l'índex"
+#: builtin/am.c:1662
+msgid "Failed to merge in the changes."
+msgstr "S'ha fallat en fusionar els canvis."
 
-#: builtin/apply.c:4215
-#, c-format
-msgid "corrupt patch for submodule %s"
-msgstr "pedaç malmès per al submòdul %s"
+#: builtin/am.c:1686 builtin/merge.c:628
+msgid "git write-tree failed to write a tree"
+msgstr "git write-tree ha fallat en escriure un arbre"
 
-#: builtin/apply.c:4219
-#, c-format
-msgid "unable to stat newly created file '%s'"
-msgstr "no s'ha pogut fer stat al fitxer novament creat '%s'"
+#: builtin/am.c:1693
+msgid "applying to an empty history"
+msgstr "s'està aplicant a una història buida"
+
+#: builtin/am.c:1706 builtin/commit.c:1769 builtin/merge.c:798
+#: builtin/merge.c:823
+msgid "failed to write commit object"
+msgstr "s'ha fallat en escriure l'objecte de comissió"
 
-#: builtin/apply.c:4224
+#: builtin/am.c:1739 builtin/am.c:1743
 #, c-format
-msgid "unable to create backing store for newly created file %s"
+msgid "cannot resume: %s does not exist."
+msgstr "no es pot reprendre: %s no existeix."
+
+#: builtin/am.c:1759
+msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
-"no s'ha pogut crear un magatzem de recolzament per al fitxer novament creat "
-"%s"
+"no es pot ser interactiu sense que stdin estigui connectada a un terminal."
 
-#: builtin/apply.c:4227 builtin/apply.c:4340
-#, c-format
-msgid "unable to add cache entry for %s"
-msgstr "no s'ha pogut afegir una entrada de cau per a %s"
+#: builtin/am.c:1764
+msgid "Commit Body is:"
+msgstr "El cos de la comissió és:"
 
-#: builtin/apply.c:4260
-#, c-format
-msgid "closing file '%s'"
-msgstr "s'està tancant el fitxer '%s'"
+#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
+#. in your translation. The program will only accept English
+#. input at this point.
+#.
+#: builtin/am.c:1774
+msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
+msgstr ""
+"Voleu aplicar-lo? [y]es/[n]o/[e]dita/[v]isualitza el pedaç/[a]ccepta'ls "
+"tots: "
 
-#: builtin/apply.c:4313
+#: builtin/am.c:1824
 #, c-format
-msgid "unable to write file '%s' mode %o"
-msgstr "no s'ha pogut escriure el fitxer '%s' mode %o"
+msgid "Dirty index: cannot apply patches (dirty: %s)"
+msgstr "Índex brut: no es pot aplicar pedaços (bruts: %s)"
 
-#: builtin/apply.c:4403
+#: builtin/am.c:1861 builtin/am.c:1933
 #, c-format
-msgid "Applied patch %s cleanly."
-msgstr "El pedaç %s s'ha aplicat netament."
+msgid "Applying: %.*s"
+msgstr "S'està aplicant: %.*s"
 
-#: builtin/apply.c:4411
-msgid "internal error"
-msgstr "error intern"
+#: builtin/am.c:1877
+msgid "No changes -- Patch already applied."
+msgstr "Sense canvis -- El pedaç ja s'ha aplicat."
 
-#: builtin/apply.c:4414
+#: builtin/am.c:1885
 #, c-format
-msgid "Applying patch %%s with %d reject..."
-msgid_plural "Applying patch %%s with %d rejects..."
-msgstr[0] "S'està aplicant el pedaç %%s amb %d rebuig..."
-msgstr[1] "S'està aplicant el pedaç %%s amb %d rebuitjos..."
+msgid "Patch failed at %s %.*s"
+msgstr "El pedaç ha fallat a %s %.*s"
 
-#: builtin/apply.c:4424
+#: builtin/am.c:1891
 #, c-format
-msgid "truncating .rej filename to %.*s.rej"
-msgstr "s'està truncant el nom del fitxer .rej a %.*s.rej"
+msgid "The copy of the patch that failed is found in: %s"
+msgstr "La còpia del pedaç que ha fallat es troba en: %s"
 
-#: builtin/apply.c:4432
-#, c-format
-msgid "cannot open %s: %s"
-msgstr "no es pot obrir %s: %s"
+#: builtin/am.c:1936
+msgid ""
+"No changes - did you forget to use 'git add'?\n"
+"If there is nothing left to stage, chances are that something else\n"
+"already introduced the same changes; you might want to skip this patch."
+msgstr ""
+"Cap canvi - heu oblidat d'usar 'git add'?\n"
+"Si no hi ha res a allistar, probablement alguna altra cosa ja ha\n"
+"introduït els mateixos canvis; potser voleu ometre aquest pedaç."
 
-#: builtin/apply.c:4445
-#, c-format
-msgid "Hunk #%d applied cleanly."
-msgstr "El tros #%d s'ha aplicat netament."
+#: builtin/am.c:1943
+msgid ""
+"You still have unmerged paths in your index.\n"
+"Did you forget to use 'git add'?"
+msgstr ""
+"Encara teniu camins sense fusionar en el vostre índex.\n"
+"Heu oblidat d'usar 'git add'?"
 
-#: builtin/apply.c:4448
+#: builtin/am.c:2051 builtin/am.c:2055 builtin/am.c:2067 builtin/reset.c:308
+#: builtin/reset.c:316
 #, c-format
-msgid "Rejected hunk #%d."
-msgstr "S'ha rebutjat el tros #%d."
+msgid "Could not parse object '%s'."
+msgstr "No s'ha pogut analitzar l'objecte '%s'."
+
+#: builtin/am.c:2103
+msgid "failed to clean index"
+msgstr "s'ha fallat en netejar l'índex"
+
+#: builtin/am.c:2137
+msgid ""
+"You seem to have moved HEAD since the last 'am' failure.\n"
+"Not rewinding to ORIG_HEAD"
+msgstr ""
+"Sembla que heu mogut HEAD després de l'última fallada de 'am'.\n"
+"No s'està rebobinant a ORIG_HEAD"
 
-#: builtin/apply.c:4537
+#: builtin/am.c:2200
 #, c-format
-msgid "Skipped patch '%s'."
-msgstr "S'ha saltat el pedaç '%s'."
+msgid "Invalid value for --patch-format: %s"
+msgstr "Valor no vàlid per a --patch-format: %s"
 
-#: builtin/apply.c:4545
-msgid "unrecognized input"
-msgstr "entrada no reconeguda"
+#: builtin/am.c:2233
+msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
+msgstr "git am [<opcions>] [(<bústia> | <directori-de-correu>)...]"
 
-#: builtin/apply.c:4556
-msgid "unable to read index file"
-msgstr "no es pot llegir el fitxer d'índex"
+#: builtin/am.c:2234
+msgid "git am [<options>] (--continue | --skip | --abort)"
+msgstr "git am [<opcions>] (--continue | --skip | --abort)"
 
-#: builtin/apply.c:4701
-msgid "--3way outside a repository"
-msgstr "--3way fora d'un dipòsit"
+#: builtin/am.c:2240
+msgid "run interactively"
+msgstr "executa interactivament"
 
-#: builtin/apply.c:4709
-msgid "--index outside a repository"
-msgstr "--index fora d'un dipòsit"
+#: builtin/am.c:2242
+msgid "historical option -- no-op"
+msgstr "opció històrica -- no-op"
 
-#: builtin/apply.c:4712
-msgid "--cached outside a repository"
-msgstr "--cached fora d'un dipòsit"
+#: builtin/am.c:2244
+msgid "allow fall back on 3way merging if needed"
+msgstr "permet retrocedir a una fusió de 3 vies si és necessari"
 
-#: builtin/apply.c:4745
-#, c-format
-msgid "can't open patch '%s'"
-msgstr "no es pot obrir el pedaç '%s'"
+#: builtin/am.c:2245 builtin/init-db.c:483 builtin/prune-packed.c:57
+#: builtin/repack.c:172
+msgid "be quiet"
+msgstr "calla"
 
-#: builtin/apply.c:4760
-#, c-format
-msgid "squelched %d whitespace error"
-msgid_plural "squelched %d whitespace errors"
-msgstr[0] "s'ha omès %d error d'espai en blanc"
-msgstr[1] "s'han omès %d errors d'espai en blanc"
+#: builtin/am.c:2247
+msgid "add a Signed-off-by line to the commit message"
+msgstr "afegeix una línia Signed-off-by al missatge de comissió"
 
-#: builtin/apply.c:4766 builtin/apply.c:4776
-#, c-format
-msgid "%d line adds whitespace errors."
-msgid_plural "%d lines add whitespace errors."
-msgstr[0] "%d línia afegeix errors d'espai en blanc."
-msgstr[1] "%d línies afegeixen errors d'espai en blanc."
+#: builtin/am.c:2250
+msgid "recode into utf8 (default)"
+msgstr "recodifica en utf8 (per defecte)"
 
-#: builtin/apply.c:4800
-msgid "don't apply changes matching the given path"
-msgstr "no apliquis els canvis que coincideixin amb el camí donat"
+#: builtin/am.c:2252
+msgid "pass -k flag to git-mailinfo"
+msgstr "passa la bandera -k al git-mailinfo"
 
-#: builtin/apply.c:4803
-msgid "apply changes matching the given path"
-msgstr "aplica els canvis que coincideixin amb el camí donat"
+#: builtin/am.c:2254
+msgid "pass -b flag to git-mailinfo"
+msgstr "passa la bandera -b al git-mailinfo"
 
-#: builtin/apply.c:4806
-msgid "remove <num> leading slashes from traditional diff paths"
-msgstr ""
-"elimina <nombre> barres obliqües inicials dels camins de diferència "
-"tradicionals"
+#: builtin/am.c:2256
+msgid "pass -m flag to git-mailinfo"
+msgstr "passa la bandera -m al git-mailinfo"
 
-#: builtin/apply.c:4809
-msgid "ignore additions made by the patch"
-msgstr "ignora afegiments fets pel pedaç"
+#: builtin/am.c:2258
+msgid "pass --keep-cr flag to git-mailsplit for mbox format"
+msgstr "passa la bandera --keep-cr al git-mailsplit per al format mbox"
 
-#: builtin/apply.c:4811
-msgid "instead of applying the patch, output diffstat for the input"
+#: builtin/am.c:2261
+msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr ""
-"en lloc d'aplicar el pedaç, emet les estadístiques de diferència de l'entrada"
+"no passis la bandera --keep-cr al git-mailsplit independent de am.keepcr"
 
-#: builtin/apply.c:4815
-msgid "show number of added and deleted lines in decimal notation"
-msgstr "mostra el nombre de línies afegides i suprimides en notació decimal"
+#: builtin/am.c:2264
+msgid "strip everything before a scissors line"
+msgstr "despulla tot abans d'una línia de tissores"
 
-#: builtin/apply.c:4817
-msgid "instead of applying the patch, output a summary for the input"
-msgstr "en lloc d'aplicar el pedaç, emet un resum de l'entrada"
+#: builtin/am.c:2266 builtin/am.c:2269 builtin/am.c:2272 builtin/am.c:2275
+#: builtin/am.c:2278 builtin/am.c:2281 builtin/am.c:2284 builtin/am.c:2287
+#: builtin/am.c:2293
+msgid "pass it through git-apply"
+msgstr "passa-ho a través del git-apply"
+
+#: builtin/am.c:2283 builtin/fmt-merge-msg.c:662 builtin/fmt-merge-msg.c:665
+#: builtin/grep.c:707 builtin/merge.c:200 builtin/pull.c:135 builtin/pull.c:194
+#: builtin/repack.c:181 builtin/repack.c:185 builtin/show-branch.c:644
+#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
+#: parse-options.h:134 parse-options.h:245
+msgid "n"
+msgstr "n"
 
-#: builtin/apply.c:4819
-msgid "instead of applying the patch, see if the patch is applicable"
-msgstr "en lloc d'aplicar el pedaç, veges si el pedaç és aplicable"
+#: builtin/am.c:2289 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/tag.c:372
+msgid "format"
+msgstr "format"
 
-#: builtin/apply.c:4821
-msgid "make sure the patch is applicable to the current index"
-msgstr "assegura que el pedaç sigui aplicable a l'índex actual"
+#: builtin/am.c:2290
+msgid "format the patch(es) are in"
+msgstr "el format en el qual estan els pedaços"
 
-#: builtin/apply.c:4823
-msgid "apply a patch without touching the working tree"
-msgstr "aplica un pedaç sense tocar l'arbre de treball"
+#: builtin/am.c:2296
+msgid "override error message when patch failure occurs"
+msgstr ""
+"passa per alt el missatge d'error quan s'ocorre una fallada en apedaçar"
 
-#: builtin/apply.c:4825
-msgid "accept a patch that touches outside the working area"
-msgstr "accepta un pedaç que toqui fora de l'àrea de treball"
+#: builtin/am.c:2298
+msgid "continue applying patches after resolving a conflict"
+msgstr "segueix aplicant pedaços després de resoldre un conflicte"
 
-#: builtin/apply.c:4827
-msgid "also apply the patch (use with --stat/--summary/--check)"
-msgstr "aplica el pedaç també (useu amb --stat/--summary/--check)"
+#: builtin/am.c:2301
+msgid "synonyms for --continue"
+msgstr "sinònims de --continue"
 
-#: builtin/apply.c:4829
-msgid "attempt three-way merge if a patch does not apply"
-msgstr "intenta una fusió de tres vies si el pedaç no s'aplica"
+#: builtin/am.c:2304
+msgid "skip the current patch"
+msgstr "salta el pedaç actual"
 
-#: builtin/apply.c:4831
-msgid "build a temporary index based on embedded index information"
-msgstr "construeix un índex temporal basat en la informació d'índex incrustada"
+#: builtin/am.c:2307
+msgid "restore the original branch and abort the patching operation."
+msgstr "restaura la branca original i avorta l'operació d'apedaçament."
 
-#: builtin/apply.c:4834 builtin/checkout-index.c:169 builtin/ls-files.c:426
-msgid "paths are separated with NUL character"
-msgstr "els camins se separen amb el caràcter NUL"
+#: builtin/am.c:2311
+msgid "lie about committer date"
+msgstr "menteix sobre la data del comitent"
 
-#: builtin/apply.c:4836
-msgid "ensure at least <n> lines of context match"
-msgstr "assegura't que almenys <n> línies de context coincideixin"
+#: builtin/am.c:2313
+msgid "use current timestamp for author date"
+msgstr "usa el marc de temps actual per la data d'autor"
 
-#: builtin/apply.c:4838
-msgid "detect new or modified lines that have whitespace errors"
-msgstr ""
-"detecta les línies noves o modificades que tinguin errors d'espai en blanc"
+#: builtin/am.c:2315 builtin/commit.c:1605 builtin/merge.c:229
+#: builtin/pull.c:165 builtin/revert.c:92 builtin/tag.c:355
+msgid "key-id"
+msgstr "ID de clau"
 
-#: builtin/apply.c:4841 builtin/apply.c:4844
-msgid "ignore changes in whitespace when finding context"
-msgstr "ignora els canvis d'espai en blanc en cercar context"
+#: builtin/am.c:2316
+msgid "GPG-sign commits"
+msgstr "signa les comissions amb GPG"
 
-#: builtin/apply.c:4847
-msgid "apply the patch in reverse"
-msgstr "aplica el pedaç al revés"
+#: builtin/am.c:2319
+msgid "(internal use for git-rebase)"
+msgstr "(ús intern per al git-rebase)"
 
-#: builtin/apply.c:4849
-msgid "don't expect at least one line of context"
-msgstr "no esperis almenys una línia de context"
+#: builtin/am.c:2334
+msgid ""
+"The -b/--binary option has been a no-op for long time, and\n"
+"it will be removed. Please do not use it anymore."
+msgstr ""
+"Fa molt que l'opció -b/--binary no ha fet res, i\n"
+"s'eliminarà. Si us plau, no l'useu més."
 
-#: builtin/apply.c:4851
-msgid "leave the rejected hunks in corresponding *.rej files"
-msgstr "deixa els trossos rebutjats en fitxers *.reg coresspondents"
+#: builtin/am.c:2341
+msgid "failed to read the index"
+msgstr "s'ha fallat en llegir l'índex"
 
-#: builtin/apply.c:4853
-msgid "allow overlapping hunks"
-msgstr "permet trossos encavalcants"
+#: builtin/am.c:2356
+#, c-format
+msgid "previous rebase directory %s still exists but mbox given."
+msgstr ""
+"un directori de rebasament anterior %s encara existeix però s'ha donat una "
+"bústia."
 
-#: builtin/apply.c:4856
-msgid "tolerate incorrectly detected missing new-line at the end of file"
-msgstr "tolera una línia nova incorrectament detectada al final del fitxer"
+#: builtin/am.c:2380
+#, c-format
+msgid ""
+"Stray %s directory found.\n"
+"Use \"git am --abort\" to remove it."
+msgstr ""
+"S'ha trobat un directori %s extraviat.\n"
+"Useu \"git am --abort\" per a eliminar-lo."
 
-#: builtin/apply.c:4859
-msgid "do not trust the line counts in the hunk headers"
-msgstr "no confiïs en els recomptes de línia en les capçaleres dels trossos"
+#: builtin/am.c:2386
+msgid "Resolve operation not in progress, we are not resuming."
+msgstr "Una operació de resolució no està en curs; no reprenem."
 
-#: builtin/apply.c:4862
-msgid "prepend <root> to all filenames"
-msgstr "anteposa <arrel> a tots els noms de fitxer"
+#: builtin/apply.c:8
+msgid "git apply [<options>] [<patch>...]"
+msgstr "git apply [<opcions>] [<pedaç>...]"
 
 #: builtin/archive.c:17
 #, c-format
@@ -4111,118 +4612,172 @@ msgstr "es documenten les <opcions-de-revisió> en git-rev-list(1)"
 msgid "Blaming lines"
 msgstr "S'estan culpant les línies"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2577
 msgid "Show blame entries as we find them, incrementally"
 msgstr "Mostra les entrades de culpa mentre les trobem, incrementalment"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2578
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr ""
 "Mostra un SHA-1 en blanc per les comissions de frontera (Per defecte: "
 "desactivat)"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2579
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr ""
 "No tractis les comissions d'arrel com a límits (Per defecte: desactivat)"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2580
 msgid "Show work cost statistics"
 msgstr "Mostra les estadístiques de preu de treball"
 
-#: builtin/blame.c:2540
+#: builtin/blame.c:2581
 msgid "Force progress reporting"
 msgstr "Força l'informe de progrés"
 
-#: builtin/blame.c:2541
+#: builtin/blame.c:2582
 msgid "Show output score for blame entries"
 msgstr "Mostra la puntuació de sortida de les entrades de culpa"
 
-#: builtin/blame.c:2542
+#: builtin/blame.c:2583
 msgid "Show original filename (Default: auto)"
 msgstr "Mostra el nom de fitxer original (Per defecte: automàtic)"
 
-#: builtin/blame.c:2543
+#: builtin/blame.c:2584
 msgid "Show original linenumber (Default: off)"
 msgstr "Mostra el número de línia original (Per defecte: desactivat)"
 
-#: builtin/blame.c:2544
+#: builtin/blame.c:2585
 msgid "Show in a format designed for machine consumption"
 msgstr "Presenta en un format dissenyat per consumpció per màquina"
 
-#: builtin/blame.c:2545
+#: builtin/blame.c:2586
 msgid "Show porcelain format with per-line commit information"
 msgstr "Mostra el format de porcellana amb informació de comissió per línia"
 
-#: builtin/blame.c:2546
+#: builtin/blame.c:2587
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr ""
 "Usa el mateix mode de sortida que git-annotate (Per defecte: desactivat)"
 
-#: builtin/blame.c:2547
+#: builtin/blame.c:2588
 msgid "Show raw timestamp (Default: off)"
 msgstr "Mostra la marca de temps crua (Per defecte: desactivat)"
 
-#: builtin/blame.c:2548
+#: builtin/blame.c:2589
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Mostra l'SHA1 de comissió llarg (Per defecte: desactivat)"
 
-#: builtin/blame.c:2549
+#: builtin/blame.c:2590
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Omet el nom d'autor i la marca de temps (Per defecte: desactivat)"
 
-#: builtin/blame.c:2550
+#: builtin/blame.c:2591
 msgid "Show author email instead of name (Default: off)"
 msgstr ""
 "Mostra l'adreça de correu electrònic de l'autor en lloc del nom (Per "
 "defecte: desactivat)"
 
-#: builtin/blame.c:2551
+#: builtin/blame.c:2592
 msgid "Ignore whitespace differences"
 msgstr "Ignora les diferències d'espai en blanc"
 
-#: builtin/blame.c:2552
+#: builtin/blame.c:2599
+msgid "Use an experimental indent-based heuristic to improve diffs"
+msgstr ""
+"Usa un heurístic experimental basat en sagnat per a millorar les diferències"
+
+#: builtin/blame.c:2600
+msgid "Use an experimental blank-line-based heuristic to improve diffs"
+msgstr ""
+"Usa un heurístic experimental basat en línies en blanc per a millorar les "
+"diferències"
+
+#: builtin/blame.c:2602
 msgid "Spend extra cycles to find better match"
 msgstr "Gasta cicles extres per a trobar una coincidència millor"
 
-#: builtin/blame.c:2553
+#: builtin/blame.c:2603
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "Usa les revisions de <fitxer> en lloc d'invocar git-rev-list"
 
-#: builtin/blame.c:2554
+#: builtin/blame.c:2604
 msgid "Use <file>'s contents as the final image"
 msgstr "Usa els continguts de <fitxer> com a la imatge final"
 
-#: builtin/blame.c:2555 builtin/blame.c:2556
+#: builtin/blame.c:2605 builtin/blame.c:2606
 msgid "score"
 msgstr "puntuació"
 
-#: builtin/blame.c:2555
+#: builtin/blame.c:2605
 msgid "Find line copies within and across files"
 msgstr "Troba còpies de línia dins i a través dels fitxers"
 
-#: builtin/blame.c:2556
+#: builtin/blame.c:2606
 msgid "Find line movements within and across files"
 msgstr "Troba moviments de línia dins i a través dels fitxers"
 
-#: builtin/blame.c:2557
+#: builtin/blame.c:2607
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2557
+#: builtin/blame.c:2607
 msgid "Process only line range n,m, counting from 1"
 msgstr "Processa només el rang de línies n,m, comptant des d'1"
 
+#: builtin/blame.c:2654
+msgid "--progress can't be used with --incremental or porcelain formats"
+msgstr ""
+"no es pot usar --progress amb els formats --incremental o de porcellana"
+
 #. TRANSLATORS: This string is used to tell us the maximum
 #. display width for a relative timestamp in "git blame"
 #. output.  For C locale, "4 years, 11 months ago", which
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2649
+#: builtin/blame.c:2700
 msgid "4 years, 11 months ago"
 msgstr "fa 4 anys i 11 mesos"
 
+#: builtin/blame.c:2780
+msgid "--contents and --reverse do not blend well."
+msgstr "--contents i --reverse no es jutgen bé."
+
+#: builtin/blame.c:2800
+msgid "cannot use --contents with final commit object name"
+msgstr "no es pot usar --contents amb el nom d'objecte de la comissió final"
+
+#: builtin/blame.c:2805
+msgid "--reverse and --first-parent together require specified latest commit"
+msgstr ""
+"--reverse i --first-parent-together requereixen una última comissió "
+"especificada"
+
+#: builtin/blame.c:2832
+msgid ""
+"--reverse --first-parent together require range along first-parent chain"
+msgstr ""
+"--reverse --first-parent junts requereixen un rang de la cadena de mares "
+"primeres"
+
+#: builtin/blame.c:2843
+#, c-format
+msgid "no such path %s in %s"
+msgstr "no hi ha tal camí %s en %s"
+
+#: builtin/blame.c:2854
+#, c-format
+msgid "cannot read blob %s for path %s"
+msgstr "no es pot llegir el blob %s per al camí %s"
+
+#: builtin/blame.c:2873
+#, c-format
+msgid "file %s has only %lu line"
+msgid_plural "file %s has only %lu lines"
+msgstr[0] "el fitxer %s té només %lu línia"
+msgstr[1] "el fitxer %s té només %lu línies"
+
 #: builtin/branch.c:26
 msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]"
 msgstr "git branch [<opcions>] [-r | -a] [--merged | --no-merged]"
@@ -4474,6 +5029,10 @@ msgstr "font"
 msgid "change the upstream info"
 msgstr "canvia la informació de font"
 
+#: builtin/branch.c:660
+msgid "Unset the upstream info"
+msgstr "Desestableix la informació de font"
+
 #: builtin/branch.c:661
 msgid "use colored output"
 msgstr "usa sortida colorada"
@@ -4546,8 +5105,8 @@ msgstr "clau"
 msgid "field name to sort on"
 msgstr "nom del camp en el qual ordenar"
 
-#: builtin/branch.c:686 builtin/for-each-ref.c:41 builtin/notes.c:402
-#: builtin/notes.c:405 builtin/notes.c:565 builtin/notes.c:568
+#: builtin/branch.c:686 builtin/for-each-ref.c:41 builtin/notes.c:404
+#: builtin/notes.c:407 builtin/notes.c:567 builtin/notes.c:570
 #: builtin/tag.c:369
 msgid "object"
 msgstr "objecte"
@@ -4560,7 +5119,7 @@ msgstr "imprimeix només les branques de l'objecte"
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "S'ha fallat en resoldre HEAD com a referència vàlida."
 
-#: builtin/branch.c:709 builtin/clone.c:707
+#: builtin/branch.c:709 builtin/clone.c:706
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD no trobat sota refs/heads!"
 
@@ -4671,65 +5230,82 @@ msgstr "Cal un dipòsit per a fer un farcell."
 msgid "Need a repository to unbundle."
 msgstr "Cal un dipòsit per a desfer un farcell."
 
-#: builtin/cat-file.c:443
+#: builtin/cat-file.c:513
 msgid ""
-"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|"
-"<type>|--textconv) <object>"
+"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
+"p | <type> | --textconv | --filters) [--path=<path>] <object>"
 msgstr ""
-"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|"
-"<tipus>|--textconv) <objecte>"
+"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -"
+"p | <tipus> | --textconv | --filters [--path=<camí>]) <objecte>"
 
-#: builtin/cat-file.c:444
-msgid "git cat-file (--batch | --batch-check) [--follow-symlinks]"
-msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks]"
+#: builtin/cat-file.c:514
+msgid ""
+"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
+"filters]"
+msgstr ""
+"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
+"filters]"
 
-#: builtin/cat-file.c:481
+#: builtin/cat-file.c:551
 msgid "<type> can be one of: blob, tree, commit, tag"
 msgstr "<tipus> pot ser un de: blob, tree, commit, tag"
 
-#: builtin/cat-file.c:482
+#: builtin/cat-file.c:552
 msgid "show object type"
 msgstr "mostra el tipus de l'objecte"
 
-#: builtin/cat-file.c:483
+#: builtin/cat-file.c:553
 msgid "show object size"
 msgstr "mostra la mida de l'objecte"
 
-#: builtin/cat-file.c:485
+#: builtin/cat-file.c:555
 msgid "exit with zero when there's no error"
 msgstr "surt amb zero quan no hi ha error"
 
-#: builtin/cat-file.c:486
+#: builtin/cat-file.c:556
 msgid "pretty-print object's content"
 msgstr "imprimeix bellament el contingut de l'objecte"
 
-#: builtin/cat-file.c:488
+#: builtin/cat-file.c:558
 msgid "for blob objects, run textconv on object's content"
 msgstr "en els objectes de blob, executa textconv en el contingut de l'objecte"
 
-#: builtin/cat-file.c:490
+#: builtin/cat-file.c:560
+msgid "for blob objects, run filters on object's content"
+msgstr ""
+"en els objectes de blob, executa els filtres en el contingut de l'objecte"
+
+#: builtin/cat-file.c:561 git-submodule.sh:923
+msgid "blob"
+msgstr "blob"
+
+#: builtin/cat-file.c:562
+msgid "use a specific path for --textconv/--filters"
+msgstr "usa un camí especìfic per a --textconv/--filters"
+
+#: builtin/cat-file.c:564
 msgid "allow -s and -t to work with broken/corrupt objects"
 msgstr "permet que -s i -t funcionin amb objectes trencats/malmesos"
 
-#: builtin/cat-file.c:491
+#: builtin/cat-file.c:565
 msgid "buffer --batch output"
 msgstr "posa la sortida de --batch en memòria intermèdia"
 
-#: builtin/cat-file.c:493
+#: builtin/cat-file.c:567
 msgid "show info and content of objects fed from the standard input"
 msgstr ""
 "mostra la informació i contingut dels objectes rebuts de l'entrada estàndard"
 
-#: builtin/cat-file.c:496
+#: builtin/cat-file.c:570
 msgid "show info about objects fed from the standard input"
 msgstr "mostra informació sobre els objectes rebuts de l'entrada estàndard"
 
-#: builtin/cat-file.c:499
+#: builtin/cat-file.c:573
 msgid "follow in-tree symlinks (used with --batch or --batch-check)"
 msgstr ""
 "segueix els enllaços simbòlics en l'arbre (s'usa amb --batch o --batch-check)"
 
-#: builtin/cat-file.c:501
+#: builtin/cat-file.c:575
 msgid "show all objects with --batch or --batch-check"
 msgstr "mostra tots els objectes amb --batch o --batch-check"
 
@@ -4749,7 +5325,7 @@ msgstr "informa de tots els atributs establerts en el fitxer"
 msgid "use .gitattributes only from the index"
 msgstr "usa .gitattributes només des de l'índex"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:98
 msgid "read file names from stdin"
 msgstr "llegeix els noms de fitxer d'stdin"
 
@@ -4757,7 +5333,7 @@ msgstr "llegeix els noms de fitxer d'stdin"
 msgid "terminate input and output records by a NUL character"
 msgstr "acaba els registres d'entrada i de sortida amb un caràcter NUL"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1138 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1137 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "omet el reportatge de progrés"
 
@@ -4847,9 +5423,9 @@ msgid "write the content to temporary files"
 msgstr "escriu el contingut a fitxers temporals"
 
 #: builtin/checkout-index.c:174 builtin/column.c:30
-#: builtin/submodule--helper.c:488 builtin/submodule--helper.c:491
-#: builtin/submodule--helper.c:494 builtin/submodule--helper.c:497
-#: builtin/submodule--helper.c:830 builtin/worktree.c:469
+#: builtin/submodule--helper.c:595 builtin/submodule--helper.c:598
+#: builtin/submodule--helper.c:604 builtin/submodule--helper.c:951
+#: builtin/worktree.c:469
 msgid "string"
 msgstr "cadena"
 
@@ -4897,7 +5473,7 @@ msgstr "camí '%s': no es pot fusionar"
 #: builtin/checkout.c:230
 #, c-format
 msgid "Unable to add merge result for '%s'"
-msgstr "no s'ha pogut afegir el resultat de fusió per a '%s'"
+msgstr "No s'ha pogut afegir el resultat de fusió per a '%s'"
 
 #: builtin/checkout.c:250 builtin/checkout.c:253 builtin/checkout.c:256
 #: builtin/checkout.c:259
@@ -4921,54 +5497,54 @@ msgstr ""
 msgid "path '%s' is unmerged"
 msgstr "el camí '%s' està sense fusionar"
 
-#: builtin/checkout.c:495
+#: builtin/checkout.c:494
 msgid "you need to resolve your current index first"
 msgstr "heu de primer resoldre el vostre índex actual"
 
-#: builtin/checkout.c:625
+#: builtin/checkout.c:624
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
 msgstr "No es pot fer reflog per a '%s': %s\n"
 
-#: builtin/checkout.c:664
+#: builtin/checkout.c:663
 msgid "HEAD is now at"
 msgstr "HEAD ara és a"
 
-#: builtin/checkout.c:668 builtin/clone.c:661
+#: builtin/checkout.c:667 builtin/clone.c:660
 msgid "unable to update HEAD"
 msgstr "no s'ha pogut actualitzar HEAD"
 
-#: builtin/checkout.c:672
+#: builtin/checkout.c:671
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Restableix la branca '%s'\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:674
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Ja en '%s'\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:678
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "S'ha agafat i restablert la branca '%s'\n"
 
-#: builtin/checkout.c:681 builtin/checkout.c:1070
+#: builtin/checkout.c:680 builtin/checkout.c:1069
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "S'ha agafat la branca nova '%s'\n"
 
-#: builtin/checkout.c:683
+#: builtin/checkout.c:682
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "S'ha agafat la branca '%s'\n"
 
-#: builtin/checkout.c:734
+#: builtin/checkout.c:733
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... i %d més.\n"
 
-#: builtin/checkout.c:740
+#: builtin/checkout.c:739
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4991,7 +5567,7 @@ msgstr[1] ""
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:759
+#: builtin/checkout.c:758
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -5018,150 +5594,150 @@ msgstr[1] ""
 " git branch <nom-de-branca-nova> %s\n"
 "\n"
 
-#: builtin/checkout.c:795
+#: builtin/checkout.c:794
 msgid "internal error in revision walk"
 msgstr "error intern en el passeig per revisions"
 
-#: builtin/checkout.c:799
+#: builtin/checkout.c:798
 msgid "Previous HEAD position was"
 msgstr "La posició de HEAD anterior era"
 
-#: builtin/checkout.c:826 builtin/checkout.c:1065
+#: builtin/checkout.c:825 builtin/checkout.c:1064
 msgid "You are on a branch yet to be born"
 msgstr "Sou en una branca que encara ha de nàixer"
 
-#: builtin/checkout.c:971
+#: builtin/checkout.c:970
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "s'esperava només una referència, s'han donat %d."
 
-#: builtin/checkout.c:1011 builtin/worktree.c:214
+#: builtin/checkout.c:1010 builtin/worktree.c:214
 #, c-format
 msgid "invalid reference: %s"
 msgstr "referència no vàlida: %s"
 
-#: builtin/checkout.c:1040
+#: builtin/checkout.c:1039
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "la referència no és un arbre: %s"
 
-#: builtin/checkout.c:1079
+#: builtin/checkout.c:1078
 msgid "paths cannot be used with switching branches"
 msgstr "els camins no es poden usar amb canvi de branca"
 
-#: builtin/checkout.c:1082 builtin/checkout.c:1086
+#: builtin/checkout.c:1081 builtin/checkout.c:1085
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' no es pot usar amb canvi de branca"
 
-#: builtin/checkout.c:1090 builtin/checkout.c:1093 builtin/checkout.c:1098
-#: builtin/checkout.c:1101
+#: builtin/checkout.c:1089 builtin/checkout.c:1092 builtin/checkout.c:1097
+#: builtin/checkout.c:1100
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' no es pot usar amb '%s'"
 
-#: builtin/checkout.c:1106
+#: builtin/checkout.c:1105
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "No es pot canviar la branca a la no comissió '%s'"
 
-#: builtin/checkout.c:1139 builtin/checkout.c:1141 builtin/clone.c:88
+#: builtin/checkout.c:1138 builtin/checkout.c:1140 builtin/clone.c:93
 #: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:324
 #: builtin/worktree.c:326
 msgid "branch"
 msgstr "branca"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1139
 msgid "create and checkout a new branch"
 msgstr "crea i agafa una branca nova"
 
-#: builtin/checkout.c:1142
+#: builtin/checkout.c:1141
 msgid "create/reset and checkout a branch"
 msgstr "crea/restableix i agafa una branca"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1142
 msgid "create reflog for new branch"
 msgstr "crea un registre de referència per a la branca nova"
 
-#: builtin/checkout.c:1144 builtin/worktree.c:328
+#: builtin/checkout.c:1143 builtin/worktree.c:328
 msgid "detach HEAD at named commit"
 msgstr "separa HEAD a la comissió anomenada"
 
-#: builtin/checkout.c:1145
+#: builtin/checkout.c:1144
 msgid "set upstream info for new branch"
 msgstr "estableix la informació de font de la branca nova"
 
-#: builtin/checkout.c:1147
+#: builtin/checkout.c:1146
 msgid "new-branch"
 msgstr "branca-nova"
 
-#: builtin/checkout.c:1147
+#: builtin/checkout.c:1146
 msgid "new unparented branch"
 msgstr "branca òrfena nova"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1147
 msgid "checkout our version for unmerged files"
 msgstr "agafa la versió nostra dels fitxers sense fusionar"
 
-#: builtin/checkout.c:1150
+#: builtin/checkout.c:1149
 msgid "checkout their version for unmerged files"
 msgstr "agafa la versió seva dels fitxers sense fusionar"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1151
 msgid "force checkout (throw away local modifications)"
 msgstr "agafa a la força (descarta qualsevulla modificació local)"
 
-#: builtin/checkout.c:1153
+#: builtin/checkout.c:1152
 msgid "perform a 3-way merge with the new branch"
 msgstr "realitza una fusió de 3 vies amb la branca nova"
 
-#: builtin/checkout.c:1154 builtin/merge.c:231
+#: builtin/checkout.c:1153 builtin/merge.c:231
 msgid "update ignored files (default)"
 msgstr "actualitza els fitxers ignorats (per defecte)"
 
-#: builtin/checkout.c:1155 builtin/log.c:1459 parse-options.h:250
+#: builtin/checkout.c:1154 builtin/log.c:1466 parse-options.h:251
 msgid "style"
 msgstr "estil"
 
-#: builtin/checkout.c:1156
+#: builtin/checkout.c:1155
 msgid "conflict style (merge or diff3)"
 msgstr "estil de conflicte (fusió o diff3)"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1158
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "no limitis les especificacions de camí només a entrades disperses"
 
-#: builtin/checkout.c:1161
+#: builtin/checkout.c:1160
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "dubta 'git checkout <cap-branca-així>'"
 
-#: builtin/checkout.c:1163
+#: builtin/checkout.c:1162
 msgid "do not check if another worktree is holding the given ref"
 msgstr "no comprovis si altre arbre de treball té la referència donada"
 
-#: builtin/checkout.c:1164 builtin/clone.c:60 builtin/fetch.c:117
-#: builtin/merge.c:228 builtin/pull.c:116 builtin/push.c:536
+#: builtin/checkout.c:1163 builtin/clone.c:63 builtin/fetch.c:119
+#: builtin/merge.c:228 builtin/pull.c:117 builtin/push.c:536
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "força l'informe de progrés"
 
-#: builtin/checkout.c:1195
+#: builtin/checkout.c:1194
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B i --orphan són mutualment exclusius"
 
-#: builtin/checkout.c:1212
+#: builtin/checkout.c:1211
 msgid "--track needs a branch name"
 msgstr "--track necessita un nom de branca"
 
-#: builtin/checkout.c:1217
+#: builtin/checkout.c:1216
 msgid "Missing branch name; try -b"
 msgstr "Manca el nom de branca; proveu -b"
 
-#: builtin/checkout.c:1253
+#: builtin/checkout.c:1252
 msgid "invalid path specification"
 msgstr "especificació de camí no vàlida"
 
-#: builtin/checkout.c:1260
+#: builtin/checkout.c:1259
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -5170,12 +5746,12 @@ msgstr ""
 "No es poden actualitzar els camins i canviar a la branca '%s' a la vegada.\n"
 "Volíeu agafar '%s', la qual no es pot resoldre com a comissió?"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1264
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach no accepta un paràmetre de camí '%s'"
 
-#: builtin/checkout.c:1269
+#: builtin/checkout.c:1268
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -5327,8 +5903,8 @@ msgstr "neteja interactiva"
 msgid "remove whole directories"
 msgstr "elimina directoris sencers"
 
-#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:724
-#: builtin/ls-files.c:457 builtin/name-rev.c:314 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:725
+#: builtin/ls-files.c:536 builtin/name-rev.c:313 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "patró"
 
@@ -5368,112 +5944,129 @@ msgstr ""
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<opcions>] [--] <dipòsit> [<directori>]"
 
-#: builtin/clone.c:62
+#: builtin/clone.c:65
 msgid "don't create a checkout"
 msgstr "no facis cap agafament"
 
-#: builtin/clone.c:63 builtin/clone.c:65 builtin/init-db.c:476
+#: builtin/clone.c:66 builtin/clone.c:68 builtin/init-db.c:478
 msgid "create a bare repository"
 msgstr "crea un dipòsit nu"
 
-#: builtin/clone.c:67
+#: builtin/clone.c:70
 msgid "create a mirror repository (implies bare)"
 msgstr "crea un dipòsit reflectit (implica bare)"
 
-#: builtin/clone.c:69
+#: builtin/clone.c:72
 msgid "to clone from a local repository"
 msgstr "per a clonar des d'un dipòsit local"
 
-#: builtin/clone.c:71
+#: builtin/clone.c:74
 msgid "don't use local hardlinks, always copy"
 msgstr "no usis enllaços durs locals, sempre copia"
 
-#: builtin/clone.c:73
+#: builtin/clone.c:76
 msgid "setup as shared repository"
 msgstr "configura com a dipòsit compartit"
 
-#: builtin/clone.c:75 builtin/clone.c:77
+#: builtin/clone.c:78 builtin/clone.c:80
 msgid "initialize submodules in the clone"
 msgstr "inicialitza els submòduls en el clon"
 
-#: builtin/clone.c:79
+#: builtin/clone.c:82
 msgid "number of submodules cloned in parallel"
 msgstr "nombre de submòduls clonats en paral·lel"
 
-#: builtin/clone.c:80 builtin/init-db.c:473
+#: builtin/clone.c:83 builtin/init-db.c:475
 msgid "template-directory"
 msgstr "directori-de-plantilla"
 
-#: builtin/clone.c:81 builtin/init-db.c:474
+#: builtin/clone.c:84 builtin/init-db.c:476
 msgid "directory from which templates will be used"
 msgstr "directori del qual les plantilles s'usaran"
 
-#: builtin/clone.c:83 builtin/submodule--helper.c:495
-#: builtin/submodule--helper.c:833
+#: builtin/clone.c:86 builtin/clone.c:88 builtin/submodule--helper.c:602
+#: builtin/submodule--helper.c:954
 msgid "reference repository"
 msgstr "dipòsit de referència"
 
-#: builtin/clone.c:85
+#: builtin/clone.c:90
 msgid "use --reference only while cloning"
 msgstr "usa --reference només en clonar"
 
-#: builtin/clone.c:86 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:91 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "nom"
 
-#: builtin/clone.c:87
+#: builtin/clone.c:92
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "usa <nom> en lloc de 'origin' per a seguir la font"
 
-#: builtin/clone.c:89
+#: builtin/clone.c:94
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "agafa <branca> en lloc del HEAD del remot"
 
-#: builtin/clone.c:91
+#: builtin/clone.c:96
 msgid "path to git-upload-pack on the remote"
 msgstr "camí a git-upload-pack en el remot"
 
-#: builtin/clone.c:92 builtin/fetch.c:118 builtin/grep.c:667 builtin/pull.c:201
+#: builtin/clone.c:97 builtin/fetch.c:120 builtin/grep.c:668 builtin/pull.c:202
 msgid "depth"
 msgstr "profunditat"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:98
 msgid "create a shallow clone of that depth"
 msgstr "crea un clon superficial de tal profunditat"
 
-#: builtin/clone.c:95
+#: builtin/clone.c:99 builtin/fetch.c:122 builtin/pack-objects.c:2848
+#: parse-options.h:142
+msgid "time"
+msgstr "hora"
+
+#: builtin/clone.c:100
+msgid "create a shallow clone since a specific time"
+msgstr "crea un clon superficial des d'una hora específica"
+
+#: builtin/clone.c:101 builtin/fetch.c:124
+msgid "revision"
+msgstr "revisió"
+
+#: builtin/clone.c:102 builtin/fetch.c:125
+msgid "deepen history of shallow clone by excluding rev"
+msgstr "aprofundeix la història d'un clon superficial excloent una revisió"
+
+#: builtin/clone.c:104
 msgid "clone only one branch, HEAD or --branch"
 msgstr "clona només una branca, HEAD o --branch"
 
-#: builtin/clone.c:97
+#: builtin/clone.c:106
 msgid "any cloned submodules will be shallow"
 msgstr "qualsevol submòdul clonat serà superficial"
 
-#: builtin/clone.c:98 builtin/init-db.c:482
+#: builtin/clone.c:107 builtin/init-db.c:484
 msgid "gitdir"
 msgstr "directori de git"
 
-#: builtin/clone.c:99 builtin/init-db.c:483
+#: builtin/clone.c:108 builtin/init-db.c:485
 msgid "separate git dir from working tree"
 msgstr "separa el directori de git de l'arbre de treball"
 
-#: builtin/clone.c:100
+#: builtin/clone.c:109
 msgid "key=value"
 msgstr "clau=valor"
 
-#: builtin/clone.c:101
+#: builtin/clone.c:110
 msgid "set config inside the new repository"
 msgstr "estableix la configuració dins del dipòsit nou"
 
-#: builtin/clone.c:102 builtin/fetch.c:132 builtin/push.c:547
+#: builtin/clone.c:111 builtin/fetch.c:140 builtin/push.c:547
 msgid "use IPv4 addresses only"
 msgstr "usa només les adreces IPv4"
 
-#: builtin/clone.c:104 builtin/fetch.c:134 builtin/push.c:549
+#: builtin/clone.c:113 builtin/fetch.c:142 builtin/push.c:549
 msgid "use IPv6 addresses only"
 msgstr "usa només les adreces IPv6"
 
-#: builtin/clone.c:241
+#: builtin/clone.c:250
 msgid ""
 "No directory name could be guessed.\n"
 "Please specify a directory on the command line"
@@ -5481,58 +6074,42 @@ msgstr ""
 "No s'ha pogut endevinar cap nom de directori.\n"
 "Si us plau, especifiqueu un directori en la línia d'ordres"
 
-#: builtin/clone.c:307
-#, c-format
-msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr ""
-"Encara no se suporta el dipòsit de referència '%s' com a agafament enllaçat."
-
-#: builtin/clone.c:309
-#, c-format
-msgid "reference repository '%s' is not a local repository."
-msgstr "el dipòsit de referència '%s' no és un dipòsit local."
-
-#: builtin/clone.c:314
-#, c-format
-msgid "reference repository '%s' is shallow"
-msgstr "el dipòsit de referència '%s' és superficial"
-
-#: builtin/clone.c:317
+#: builtin/clone.c:303
 #, c-format
-msgid "reference repository '%s' is grafted"
-msgstr "el dipòsit de referència '%s' és empeltat"
+msgid "info: Could not add alternate for '%s': %s\n"
+msgstr "info: No s'ha pogut afegir un alternatiu per a '%s': %s\n"
 
-#: builtin/clone.c:376
+#: builtin/clone.c:375
 #, c-format
 msgid "failed to open '%s'"
 msgstr "s'ha fallat en obrir '%s'"
 
-#: builtin/clone.c:384
+#: builtin/clone.c:383
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s existeix i no és directori"
 
-#: builtin/clone.c:398
+#: builtin/clone.c:397
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "s'ha fallat en fer stat a '%s'\n"
 
-#: builtin/clone.c:420
+#: builtin/clone.c:419
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "s'ha fallat en crear l'enllaç '%s'"
 
-#: builtin/clone.c:424
+#: builtin/clone.c:423
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "s'ha fallat en copiar el fitxer a '%s'"
 
-#: builtin/clone.c:449
+#: builtin/clone.c:448
 #, c-format
 msgid "done.\n"
 msgstr "fet.\n"
 
-#: builtin/clone.c:461
+#: builtin/clone.c:460
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -5543,123 +6120,141 @@ msgstr ""
 "'git status' i tornar a intentar l'agafament amb\n"
 "'git checkout -f HEAD'\n"
 
-#: builtin/clone.c:538
+#: builtin/clone.c:537
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "No s'ha pogut trobar la branca remota %s per a clonar."
 
-#: builtin/clone.c:633
+#: builtin/clone.c:632
 msgid "remote did not send all necessary objects"
 msgstr "el remot no ha enviat tots els objectes necessaris"
 
-#: builtin/clone.c:649
+#: builtin/clone.c:648
 #, c-format
 msgid "unable to update %s"
 msgstr "no s'ha pogut actualitzar %s"
 
-#: builtin/clone.c:698
+#: builtin/clone.c:697
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
 "el HEAD remot es refereix a una referència que no existeix; no s'ha pogut "
 "agafar.\n"
 
-#: builtin/clone.c:729
+#: builtin/clone.c:728
 msgid "unable to checkout working tree"
 msgstr "no s'ha pogut agafar l'arbre de treball"
 
-#: builtin/clone.c:766
+#: builtin/clone.c:768
 msgid "unable to write parameters to config file"
 msgstr "no s'ha pogut escriure els paràmetres al fitxer de configuració"
 
-#: builtin/clone.c:829
+#: builtin/clone.c:831
 msgid "cannot repack to clean up"
 msgstr "no es pot reempaquetar per a netejar"
 
-#: builtin/clone.c:831
+#: builtin/clone.c:833
 msgid "cannot unlink temporary alternates file"
 msgstr "no es pot desenllaçar el fitxer d'alternatives temporal"
 
-#: builtin/clone.c:863 builtin/receive-pack.c:1855
+#: builtin/clone.c:866 builtin/receive-pack.c:1895
 msgid "Too many arguments."
 msgstr "Hi ha massa paràmetres."
 
-#: builtin/clone.c:867
+#: builtin/clone.c:870
 msgid "You must specify a repository to clone."
 msgstr "Heu d'especificar un dipòsit per a clonar."
 
-#: builtin/clone.c:878
+#: builtin/clone.c:883
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "les opcions --bare i --origin %s són incompatibles."
 
-#: builtin/clone.c:881
+#: builtin/clone.c:886
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare i --separate-git-dir són incompatibles."
 
-#: builtin/clone.c:894
+#: builtin/clone.c:899
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "el dipòsit '%s' no existeix"
 
-#: builtin/clone.c:900 builtin/fetch.c:1293
+#: builtin/clone.c:905 builtin/fetch.c:1338
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "la profunditat %s no és nombre positiu"
 
-#: builtin/clone.c:910
+#: builtin/clone.c:915
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "el camí destí '%s' ja existeix i no és un directori buit."
 
-#: builtin/clone.c:920
+#: builtin/clone.c:925
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "l'arbre de treball '%s' ja existeix."
 
-#: builtin/clone.c:935 builtin/clone.c:946 builtin/submodule--helper.c:544
+#: builtin/clone.c:940 builtin/clone.c:951 builtin/submodule--helper.c:657
 #: builtin/worktree.c:222 builtin/worktree.c:249
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "no s'ha pogut crear els directoris inicials de '%s'"
 
-#: builtin/clone.c:938
+#: builtin/clone.c:943
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "no s'ha pogut crear el directori d'arbre de treball '%s'"
 
-#: builtin/clone.c:956
+#: builtin/clone.c:955
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "S'està clonant al dipòsit nu '%s'...\n"
 
-#: builtin/clone.c:958
+#: builtin/clone.c:957
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "S'està clonant a '%s'...\n"
 
-#: builtin/clone.c:997
+#: builtin/clone.c:963
+msgid ""
+"clone --recursive is not compatible with both --reference and --reference-if-"
+"able"
+msgstr ""
+"clone --recursive no és compatible amb ambdòs --reference i --reference-if-"
+"able"
+
+#: builtin/clone.c:1019
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth s'ignora en els clons locals; useu file:// en lloc d'això."
 
-#: builtin/clone.c:1000
+#: builtin/clone.c:1021
+msgid "--shallow-since is ignored in local clones; use file:// instead."
+msgstr ""
+"--shallow-since s'ignora en els clons locals; useu file:// en lloc d'això."
+
+#: builtin/clone.c:1023
+msgid "--shallow-exclude is ignored in local clones; use file:// instead."
+msgstr ""
+"--shallow-exclude s'ignora en els clons locals; useu file:// en lloc d'això."
+
+#: builtin/clone.c:1026
 msgid "source repository is shallow, ignoring --local"
 msgstr "el dipòsit font és superficial, s'està ignorant --local"
 
-#: builtin/clone.c:1005
+#: builtin/clone.c:1031
 msgid "--local is ignored"
 msgstr "--local s'ignora"
 
-#: builtin/clone.c:1009
+#: builtin/clone.c:1035
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "No se sap com clonar %s"
 
-#: builtin/clone.c:1058 builtin/clone.c:1066
+#: builtin/clone.c:1090 builtin/clone.c:1098
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "La branca remota %s no es troba en la font %s"
 
-#: builtin/clone.c:1069
+#: builtin/clone.c:1101
 msgid "You appear to have cloned an empty repository."
 msgstr "Sembla que heu clonat un dipòsit buit."
 
@@ -5801,66 +6396,66 @@ msgstr ""
 "Llavors \"git cherry-pick --continue\" reprendrà recollint\n"
 "com a cireres les comissions restants.\n"
 
-#: builtin/commit.c:308
+#: builtin/commit.c:318
 msgid "failed to unpack HEAD tree object"
 msgstr "s'ha fallat en desempaquetar l'objecte d'arbre HEAD"
 
-#: builtin/commit.c:349
+#: builtin/commit.c:359
 msgid "unable to create temporary index"
 msgstr "no s'ha pogut crear un índex temporal"
 
-#: builtin/commit.c:355
+#: builtin/commit.c:365
 msgid "interactive add failed"
 msgstr "l'afegiment interactiu ha fallat"
 
-#: builtin/commit.c:368
+#: builtin/commit.c:378
 msgid "unable to update temporary index"
 msgstr "no s'ha pogut actualitzar l'índex temporal"
 
-#: builtin/commit.c:370
+#: builtin/commit.c:380
 msgid "Failed to update main cache tree"
 msgstr "S'ha fallat en actualitzar l'arbre principal de memòria cau"
 
-#: builtin/commit.c:394 builtin/commit.c:417 builtin/commit.c:466
+#: builtin/commit.c:404 builtin/commit.c:427 builtin/commit.c:476
 msgid "unable to write new_index file"
 msgstr "no s'ha pogut escriure el fitxer new_index"
 
-#: builtin/commit.c:448
+#: builtin/commit.c:458
 msgid "cannot do a partial commit during a merge."
 msgstr "no es pot fer una comissió parcial durant una fusió."
 
-#: builtin/commit.c:450
+#: builtin/commit.c:460
 msgid "cannot do a partial commit during a cherry-pick."
 msgstr "no es pot fer una comissió parcial durant un recull de cireres."
 
-#: builtin/commit.c:459
+#: builtin/commit.c:469
 msgid "cannot read the index"
 msgstr "no es pot llegir l'índex"
 
-#: builtin/commit.c:478
+#: builtin/commit.c:488
 msgid "unable to write temporary index file"
 msgstr "no s'ha pogut escriure un fitxer d'índex temporal"
 
-#: builtin/commit.c:583
+#: builtin/commit.c:582
 #, c-format
 msgid "commit '%s' lacks author header"
 msgstr "a la comissió '%s' li manca la capçalera d'autor"
 
-#: builtin/commit.c:585
+#: builtin/commit.c:584
 #, c-format
 msgid "commit '%s' has malformed author line"
 msgstr "la comissió '%s' té una línia d'autor mal formada"
 
-#: builtin/commit.c:604
+#: builtin/commit.c:603
 msgid "malformed --author parameter"
 msgstr "paràmetre --author mal format"
 
-#: builtin/commit.c:612
+#: builtin/commit.c:611
 #, c-format
 msgid "invalid date format: %s"
 msgstr "format de data no vàlid: %s"
 
-#: builtin/commit.c:656
+#: builtin/commit.c:655
 msgid ""
 "unable to select a comment character that is not used\n"
 "in the current commit message"
@@ -5868,38 +6463,38 @@ msgstr ""
 "no es pot seleccionar un caràcter de comentari que\n"
 "no sigui usat en el missatge de comissió actual"
 
-#: builtin/commit.c:693 builtin/commit.c:726 builtin/commit.c:1092
+#: builtin/commit.c:692 builtin/commit.c:725 builtin/commit.c:1096
 #, c-format
 msgid "could not lookup commit %s"
 msgstr "no s'ha pogut trobar la comissió %s"
 
-#: builtin/commit.c:705 builtin/shortlog.c:286
+#: builtin/commit.c:704 builtin/shortlog.c:286
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(s'està llegint el missatge de registre des de l'entrada estàndard)\n"
 
-#: builtin/commit.c:707
+#: builtin/commit.c:706
 msgid "could not read log from standard input"
 msgstr "no s'ha pogut llegir el registre des de l'entrada estàndard"
 
-#: builtin/commit.c:711
+#: builtin/commit.c:710
 #, c-format
 msgid "could not read log file '%s'"
 msgstr "no s'ha pogut llegir el fitxer de registre '%s'"
 
-#: builtin/commit.c:738 builtin/commit.c:746
+#: builtin/commit.c:737 builtin/commit.c:745
 msgid "could not read SQUASH_MSG"
 msgstr "no s'ha pogut llegir SQUASH_MSG"
 
-#: builtin/commit.c:743
+#: builtin/commit.c:742
 msgid "could not read MERGE_MSG"
 msgstr "no s'ha pogut llegir MERGE_MSG"
 
-#: builtin/commit.c:797
+#: builtin/commit.c:796
 msgid "could not write commit template"
 msgstr "no s'ha pogut escriure la plantilla de comissió"
 
-#: builtin/commit.c:815
+#: builtin/commit.c:814
 #, c-format
 msgid ""
 "\n"
@@ -5914,7 +6509,7 @@ msgstr ""
 "\t%s\n"
 "i intenteu-ho de nou.\n"
 
-#: builtin/commit.c:820
+#: builtin/commit.c:819
 #, c-format
 msgid ""
 "\n"
@@ -5929,7 +6524,7 @@ msgstr ""
 "\t%s\n"
 "i intenteu-ho de nou.\n"
 
-#: builtin/commit.c:833
+#: builtin/commit.c:832
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -5939,7 +6534,7 @@ msgstr ""
 "S'ignoraran les línies començant amb '%c', i un missatge de\n"
 "comissió buit avorta la comissió.\n"
 
-#: builtin/commit.c:840
+#: builtin/commit.c:839
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -5950,150 +6545,154 @@ msgstr ""
 "Es retindran les línies començants amb '%c'; podeu eliminar-les per vós\n"
 "mateix si voleu. Un missatge buit avorta la comissió.\n"
 
-#: builtin/commit.c:860
+#: builtin/commit.c:859
 #, c-format
 msgid "%sAuthor:    %.*s <%.*s>"
 msgstr "%sAutor:    %.*s <%.*s>"
 
-#: builtin/commit.c:868
+#: builtin/commit.c:867
 #, c-format
 msgid "%sDate:      %s"
 msgstr "%sData:      %s"
 
-#: builtin/commit.c:875
+#: builtin/commit.c:874
 #, c-format
 msgid "%sCommitter: %.*s <%.*s>"
 msgstr "%sComitent: %.*s <%.*s>"
 
-#: builtin/commit.c:893
+#: builtin/commit.c:892
 msgid "Cannot read index"
 msgstr "No es pot llegir l'índex"
 
-#: builtin/commit.c:950
+#: builtin/commit.c:954
 msgid "Error building trees"
 msgstr "Error en construir arbres"
 
-#: builtin/commit.c:965 builtin/tag.c:266
+#: builtin/commit.c:969 builtin/tag.c:266
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "Si us plau, proveïu el missatge per usar o l'opció -m o l'opció -F.\n"
 
-#: builtin/commit.c:1067
+#: builtin/commit.c:1071
 #, c-format
 msgid "--author '%s' is not 'Name <email>' and matches no existing author"
 msgstr ""
 "--author '%s' no és 'Nom <adreça-de-correu-electrònic>' i no coincideix amb\n"
 "cap autor existent"
 
-#: builtin/commit.c:1082 builtin/commit.c:1322
+#: builtin/commit.c:1086 builtin/commit.c:1327
 #, c-format
 msgid "Invalid untracked files mode '%s'"
 msgstr "Mode de fitxers no seguits no vàlid '%s'"
 
-#: builtin/commit.c:1119
+#: builtin/commit.c:1124
 msgid "--long and -z are incompatible"
 msgstr "--long i -z són incompatibles"
 
-#: builtin/commit.c:1149
+#: builtin/commit.c:1154
 msgid "Using both --reset-author and --author does not make sense"
 msgstr "Usar ambdós --reset-author i --author no té sentit"
 
-#: builtin/commit.c:1158
+#: builtin/commit.c:1163
 msgid "You have nothing to amend."
 msgstr "No teniu res a esmenar."
 
-#: builtin/commit.c:1161
+#: builtin/commit.c:1166
 msgid "You are in the middle of a merge -- cannot amend."
 msgstr "Esteu enmig d'una fusió -- no es pot esmenar."
 
-#: builtin/commit.c:1163
+#: builtin/commit.c:1168
 msgid "You are in the middle of a cherry-pick -- cannot amend."
 msgstr "Esteu enmig d'un recull de cireres -- no es pot esmenar."
 
-#: builtin/commit.c:1166
+#: builtin/commit.c:1171
 msgid "Options --squash and --fixup cannot be used together"
 msgstr "Les opcions --squash i --fixup no es poden usar juntes"
 
-#: builtin/commit.c:1176
+#: builtin/commit.c:1181
 msgid "Only one of -c/-C/-F/--fixup can be used."
 msgstr "Només un de -c/-C/-F/--fixup es pot usar."
 
-#: builtin/commit.c:1178
+#: builtin/commit.c:1183
 msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
 msgstr "L'opció -m no es pot combinar amb -c/-C/-F/--fixup."
 
-#: builtin/commit.c:1186
+#: builtin/commit.c:1191
 msgid "--reset-author can be used only with -C, -c or --amend."
 msgstr "--reset-author només es pot usar amb -C, -c o --amend."
 
-#: builtin/commit.c:1203
+#: builtin/commit.c:1208
 msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
 msgstr "Només un de --include/--only/--all/--interactive/--patch es pot usar."
 
-#: builtin/commit.c:1205
+#: builtin/commit.c:1210
 msgid "No paths with --include/--only does not make sense."
 msgstr "--include/--only no té sentit sense camí."
 
-#: builtin/commit.c:1207
+#: builtin/commit.c:1212
 msgid "Clever... amending the last one with dirty index."
 msgstr "Intel·ligent... s'està esmenant l'últim amb índex brut."
 
-#: builtin/commit.c:1209
+#: builtin/commit.c:1214
 msgid "Explicit paths specified without -i or -o; assuming --only paths..."
 msgstr ""
 "S'han especificat camins explícits sense -i o -o; s'està presumint camins --"
 "only..."
 
-#: builtin/commit.c:1221 builtin/tag.c:474
+#: builtin/commit.c:1226 builtin/tag.c:474
 #, c-format
 msgid "Invalid cleanup mode %s"
 msgstr "Mode de neteja no vàlid %s"
 
-#: builtin/commit.c:1226
+#: builtin/commit.c:1231
 msgid "Paths with -a does not make sense."
 msgstr "-a no té sentit amb camins."
 
-#: builtin/commit.c:1336 builtin/commit.c:1622
+#: builtin/commit.c:1341 builtin/commit.c:1617
 msgid "show status concisely"
 msgstr "mostra l'estat concisament"
 
-#: builtin/commit.c:1338 builtin/commit.c:1624
+#: builtin/commit.c:1343 builtin/commit.c:1619
 msgid "show branch information"
 msgstr "mostra la informació de branca"
 
-#: builtin/commit.c:1340 builtin/commit.c:1626 builtin/push.c:522
+#: builtin/commit.c:1345
+msgid "version"
+msgstr "versió"
+
+#: builtin/commit.c:1345 builtin/commit.c:1621 builtin/push.c:522
 #: builtin/worktree.c:440
 msgid "machine-readable output"
 msgstr "sortida llegible per màquina"
 
-#: builtin/commit.c:1343 builtin/commit.c:1628
+#: builtin/commit.c:1348 builtin/commit.c:1623
 msgid "show status in long format (default)"
 msgstr "mostra l'estat en format llarg (per defecte)"
 
-#: builtin/commit.c:1346 builtin/commit.c:1631
+#: builtin/commit.c:1351 builtin/commit.c:1626
 msgid "terminate entries with NUL"
 msgstr "acaba les entrades amb NUL"
 
-#: builtin/commit.c:1348 builtin/commit.c:1634 builtin/fast-export.c:981
+#: builtin/commit.c:1353 builtin/commit.c:1629 builtin/fast-export.c:981
 #: builtin/fast-export.c:984 builtin/tag.c:353
 msgid "mode"
 msgstr "mode"
 
-#: builtin/commit.c:1349 builtin/commit.c:1634
+#: builtin/commit.c:1354 builtin/commit.c:1629
 msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
 msgstr ""
 "mostra els fitxers no seguits, modes opcionals: all, normal, no. (Per "
 "defecte: all)"
 
-#: builtin/commit.c:1352
+#: builtin/commit.c:1357
 msgid "show ignored files"
 msgstr "mostra els fitxers ignorats"
 
-#: builtin/commit.c:1353 parse-options.h:155
+#: builtin/commit.c:1358 parse-options.h:155
 msgid "when"
 msgstr "quan"
 
-#: builtin/commit.c:1354
+#: builtin/commit.c:1359
 msgid ""
 "ignore changes to submodules, optional when: all, dirty, untracked. "
 "(Default: all)"
@@ -6101,202 +6700,202 @@ msgstr ""
 "ignora els canvis als submòduls, opcional quan: all, dirty, untracked. (Per "
 "defecte: all)"
 
-#: builtin/commit.c:1356
+#: builtin/commit.c:1361
 msgid "list untracked files in columns"
 msgstr "mostra els fitxers no seguits en columnes"
 
-#: builtin/commit.c:1442
+#: builtin/commit.c:1437
 msgid "couldn't look up newly created commit"
 msgstr "no s'ha pogut trobar la comissió novament creada"
 
-#: builtin/commit.c:1444
+#: builtin/commit.c:1439
 msgid "could not parse newly created commit"
 msgstr "no s'ha pogut analitzar la comissió novament creada"
 
-#: builtin/commit.c:1489
+#: builtin/commit.c:1484
 msgid "detached HEAD"
 msgstr "HEAD separat"
 
-#: builtin/commit.c:1492
+#: builtin/commit.c:1487
 msgid " (root-commit)"
 msgstr " (comissió d'arrel)"
 
-#: builtin/commit.c:1592
+#: builtin/commit.c:1587
 msgid "suppress summary after successful commit"
 msgstr "omet el resum després d'una comissió reeixida"
 
-#: builtin/commit.c:1593
+#: builtin/commit.c:1588
 msgid "show diff in commit message template"
 msgstr "mostra la diferència en la plantilla de missatge de comissió"
 
-#: builtin/commit.c:1595
+#: builtin/commit.c:1590
 msgid "Commit message options"
 msgstr "Opcions de missatge de comissió"
 
-#: builtin/commit.c:1596 builtin/tag.c:351
+#: builtin/commit.c:1591 builtin/tag.c:351
 msgid "read message from file"
 msgstr "llegiu el missatge des d'un fitxer"
 
-#: builtin/commit.c:1597
+#: builtin/commit.c:1592
 msgid "author"
 msgstr "autor"
 
-#: builtin/commit.c:1597
+#: builtin/commit.c:1592
 msgid "override author for commit"
 msgstr "autor corregit de la comissió"
 
-#: builtin/commit.c:1598 builtin/gc.c:326
+#: builtin/commit.c:1593 builtin/gc.c:326
 msgid "date"
 msgstr "data"
 
-#: builtin/commit.c:1598
+#: builtin/commit.c:1593
 msgid "override date for commit"
 msgstr "data corregida de la comissió"
 
-#: builtin/commit.c:1599 builtin/merge.c:220 builtin/notes.c:396
-#: builtin/notes.c:559 builtin/tag.c:349
+#: builtin/commit.c:1594 builtin/merge.c:220 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/tag.c:349
 msgid "message"
 msgstr "missatge"
 
-#: builtin/commit.c:1599
+#: builtin/commit.c:1594
 msgid "commit message"
 msgstr "missatge de comissió"
 
-#: builtin/commit.c:1600 builtin/commit.c:1601 builtin/commit.c:1602
-#: builtin/commit.c:1603 parse-options.h:256 ref-filter.h:79
+#: builtin/commit.c:1595 builtin/commit.c:1596 builtin/commit.c:1597
+#: builtin/commit.c:1598 parse-options.h:257 ref-filter.h:79
 msgid "commit"
 msgstr "comissió"
 
-#: builtin/commit.c:1600
+#: builtin/commit.c:1595
 msgid "reuse and edit message from specified commit"
 msgstr "reusa i edita el missatge de la comissió especificada"
 
-#: builtin/commit.c:1601
+#: builtin/commit.c:1596
 msgid "reuse message from specified commit"
 msgstr "reusa el missatge de la comissió especificada"
 
-#: builtin/commit.c:1602
+#: builtin/commit.c:1597
 msgid "use autosquash formatted message to fixup specified commit"
 msgstr ""
 "usa el missatge formatat d'aixafada automàtica per a arreglar la comissió "
 "especificada"
 
-#: builtin/commit.c:1603
+#: builtin/commit.c:1598
 msgid "use autosquash formatted message to squash specified commit"
 msgstr ""
 "usa el missatge formatat d'aixafada automàtica per a aixafar la comissió "
 "especificada"
 
-#: builtin/commit.c:1604
+#: builtin/commit.c:1599
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "l'autor de la comissió ja sóc jo (s'usa amb -C/-c/--amend)"
 
-#: builtin/commit.c:1605 builtin/log.c:1409 builtin/revert.c:86
+#: builtin/commit.c:1600 builtin/log.c:1413 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "afegeix Signed-off-by:"
 
-#: builtin/commit.c:1606
+#: builtin/commit.c:1601
 msgid "use specified template file"
 msgstr "usa el fitxer de plantilla especificat"
 
-#: builtin/commit.c:1607
+#: builtin/commit.c:1602
 msgid "force edit of commit"
 msgstr "força l'edició de la comissió"
 
-#: builtin/commit.c:1608
+#: builtin/commit.c:1603
 msgid "default"
 msgstr "per defecte"
 
-#: builtin/commit.c:1608 builtin/tag.c:354
+#: builtin/commit.c:1603 builtin/tag.c:354
 msgid "how to strip spaces and #comments from message"
 msgstr "com despullar els espais i #comentaris del missatge"
 
-#: builtin/commit.c:1609
+#: builtin/commit.c:1604
 msgid "include status in commit message template"
 msgstr "inclou l'estat en la plantilla de missatge de comissió"
 
-#: builtin/commit.c:1611 builtin/merge.c:230 builtin/pull.c:165
+#: builtin/commit.c:1606 builtin/merge.c:230 builtin/pull.c:166
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "signa la comissió amb GPG"
 
-#: builtin/commit.c:1614
+#: builtin/commit.c:1609
 msgid "Commit contents options"
 msgstr "Opcions dels continguts de les comissions"
 
-#: builtin/commit.c:1615
+#: builtin/commit.c:1610
 msgid "commit all changed files"
 msgstr "comet tots els fitxers canviats"
 
-#: builtin/commit.c:1616
+#: builtin/commit.c:1611
 msgid "add specified files to index for commit"
 msgstr "afegeix els fitxers especificats a l'índex per a cometre"
 
-#: builtin/commit.c:1617
+#: builtin/commit.c:1612
 msgid "interactively add files"
 msgstr "afegeix els fitxers interactivament"
 
-#: builtin/commit.c:1618
+#: builtin/commit.c:1613
 msgid "interactively add changes"
 msgstr "afegeix els canvis interactivament"
 
-#: builtin/commit.c:1619
+#: builtin/commit.c:1614
 msgid "commit only specified files"
 msgstr "comet només els fitxers especificats"
 
-#: builtin/commit.c:1620
+#: builtin/commit.c:1615
 msgid "bypass pre-commit and commit-msg hooks"
 msgstr "evita els ganxos de precomissió i missatge de comissió"
 
-#: builtin/commit.c:1621
+#: builtin/commit.c:1616
 msgid "show what would be committed"
 msgstr "mostra què es cometria"
 
-#: builtin/commit.c:1632
+#: builtin/commit.c:1627
 msgid "amend previous commit"
 msgstr "esmena la comissió anterior"
 
-#: builtin/commit.c:1633
+#: builtin/commit.c:1628
 msgid "bypass post-rewrite hook"
 msgstr "evita el ganxo de postreescriure"
 
-#: builtin/commit.c:1638
+#: builtin/commit.c:1633
 msgid "ok to record an empty change"
 msgstr "està bé registrar un canvi buit"
 
-#: builtin/commit.c:1640
+#: builtin/commit.c:1635
 msgid "ok to record a change with an empty message"
 msgstr "està bé registrar un canvi amb missatge buit"
 
-#: builtin/commit.c:1669
+#: builtin/commit.c:1664
 msgid "could not parse HEAD commit"
 msgstr "no s'ha pogut analitzar la comissió HEAD"
 
-#: builtin/commit.c:1719
+#: builtin/commit.c:1712
 #, c-format
 msgid "Corrupt MERGE_HEAD file (%s)"
 msgstr "Fitxer MERGE_HEAD malmès (%s)"
 
-#: builtin/commit.c:1726
+#: builtin/commit.c:1719
 msgid "could not read MERGE_MODE"
 msgstr "no s'ha pogut llegir MERGE_MODE"
 
-#: builtin/commit.c:1745
+#: builtin/commit.c:1738
 #, c-format
 msgid "could not read commit message: %s"
 msgstr "no s'ha pogut llegir el missatge de comissió: %s"
 
-#: builtin/commit.c:1756
+#: builtin/commit.c:1749
 #, c-format
 msgid "Aborting commit; you did not edit the message.\n"
 msgstr "S'està avortant la comissió; no heu editat el missatge.\n"
 
-#: builtin/commit.c:1761
+#: builtin/commit.c:1754
 #, c-format
 msgid "Aborting commit due to empty commit message.\n"
 msgstr "S'està avortant la comissió a causa d'un missatge de comissió buit.\n"
 
-#: builtin/commit.c:1809
+#: builtin/commit.c:1802
 msgid ""
 "Repository has been updated, but unable to write\n"
 "new_index file. Check that disk is not full and quota is\n"
@@ -6466,17 +7065,26 @@ msgstr ""
 msgid "cannot create configuration file %s"
 msgstr "no es pot crear el fitxer de configuració '%s'"
 
-#: builtin/count-objects.c:77
+#: builtin/config.c:625
+#, c-format
+msgid ""
+"cannot overwrite multiple values with a single value\n"
+"       Use a regexp, --add or --replace-all to change %s."
+msgstr ""
+"no es pot sobreescriure múltiples valors amb un sol valor\n"
+"       Useu una expresió regular, --add o --replace-all per a canviar %s."
+
+#: builtin/count-objects.c:86
 msgid "git count-objects [-v] [-H | --human-readable]"
 msgstr "git count-objects [-v] [-H | --human-readable]"
 
-#: builtin/count-objects.c:87
+#: builtin/count-objects.c:96
 msgid "print sizes in human readable format"
 msgstr "imprimeix les mides en un format llegible pels humans"
 
 #: builtin/describe.c:17
 msgid "git describe [<options>] [<commit-ish>...]"
-msgstr "git describe [opcions] [<comissió>...]"
+msgstr "git describe [<opcions>] [<comissió>...]"
 
 #: builtin/describe.c:18
 msgid "git describe [<options>] --dirty"
@@ -6590,7 +7198,7 @@ msgstr "considera les <n> etiquetes més recents (per defecte: 10)"
 msgid "only consider tags matching <pattern>"
 msgstr "només considera les etiquetes que coincideixen amb <patró>"
 
-#: builtin/describe.c:410 builtin/name-rev.c:321
+#: builtin/describe.c:410 builtin/name-rev.c:320
 msgid "show abbreviated commit object as fallback"
 msgstr "mostra l'objecte de comissió abreviat com a retrocediment"
 
@@ -6624,21 +7232,21 @@ msgstr "'%s': no és ni fitxer regular ni enllaç simbòlic"
 msgid "invalid option: %s"
 msgstr "opció no vàlida: %s"
 
-#: builtin/diff.c:360
+#: builtin/diff.c:361
 msgid "Not a git repository"
 msgstr "No és un dipòsit de git"
 
-#: builtin/diff.c:403
+#: builtin/diff.c:404
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "s'ha donat un objecte no vàlid '%s'."
 
-#: builtin/diff.c:412
+#: builtin/diff.c:413
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "s'ha donat més de dos blobs: '%s"
 
-#: builtin/diff.c:419
+#: builtin/diff.c:420
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "s'ha donat l'objecte no gestionat '%s'."
@@ -6711,162 +7319,166 @@ msgstr "git fetch --multiple [<opcions>] [(<dipòsit> | <grup>)...]"
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<opcions>]"
 
-#: builtin/fetch.c:93 builtin/pull.c:174
+#: builtin/fetch.c:95 builtin/pull.c:175
 msgid "fetch from all remotes"
 msgstr "obtén de tots els remots"
 
-#: builtin/fetch.c:95 builtin/pull.c:177
+#: builtin/fetch.c:97 builtin/pull.c:178
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "annexa a .git/FETCH_HEAD en lloc de sobreescriure"
 
-#: builtin/fetch.c:97 builtin/pull.c:180
+#: builtin/fetch.c:99 builtin/pull.c:181
 msgid "path to upload pack on remote end"
 msgstr "camí al qual pujar el paquet al costat remot"
 
-#: builtin/fetch.c:98 builtin/pull.c:182
+#: builtin/fetch.c:100 builtin/pull.c:183
 msgid "force overwrite of local branch"
 msgstr "força la sobreescriptura de la branca local"
 
-#: builtin/fetch.c:100
+#: builtin/fetch.c:102
 msgid "fetch from multiple remotes"
 msgstr "obtén de múltiples remots"
 
-#: builtin/fetch.c:102 builtin/pull.c:184
+#: builtin/fetch.c:104 builtin/pull.c:185
 msgid "fetch all tags and associated objects"
 msgstr "obtén totes les etiquetes i tots els objectes associats"
 
-#: builtin/fetch.c:104
+#: builtin/fetch.c:106
 msgid "do not fetch all tags (--no-tags)"
 msgstr "no obtinguis les etiquetes (--no-tags)"
 
-#: builtin/fetch.c:106
+#: builtin/fetch.c:108
 msgid "number of submodules fetched in parallel"
 msgstr "nombre de submòduls obtinguts en paral·lel"
 
-#: builtin/fetch.c:108 builtin/pull.c:187
+#: builtin/fetch.c:110 builtin/pull.c:188
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "poda les branques amb seguiment remot que ja no estiguin en el remot"
 
-#: builtin/fetch.c:109 builtin/pull.c:190
+#: builtin/fetch.c:111 builtin/pull.c:191
 msgid "on-demand"
 msgstr "sota demanda"
 
-#: builtin/fetch.c:110 builtin/pull.c:191
+#: builtin/fetch.c:112 builtin/pull.c:192
 msgid "control recursive fetching of submodules"
 msgstr "controla l'obtenció recursiva de submòduls"
 
-#: builtin/fetch.c:114 builtin/pull.c:199
+#: builtin/fetch.c:116 builtin/pull.c:200
 msgid "keep downloaded pack"
 msgstr "retén el paquet baixat"
 
-#: builtin/fetch.c:116
+#: builtin/fetch.c:118
 msgid "allow updating of HEAD ref"
 msgstr "permet l'actualització de la referència HEAD"
 
-#: builtin/fetch.c:119 builtin/pull.c:202
+#: builtin/fetch.c:121 builtin/fetch.c:127 builtin/pull.c:203
 msgid "deepen history of shallow clone"
 msgstr "aprofundeix la història d'un clon superficial"
 
-#: builtin/fetch.c:121 builtin/pull.c:205
+#: builtin/fetch.c:123
+msgid "deepen history of shallow repository based on time"
+msgstr "aprofundeix la història d'un clon superficial basat en temps"
+
+#: builtin/fetch.c:129 builtin/pull.c:206
 msgid "convert to a complete repository"
 msgstr "converteix en un dipòsit complet"
 
-#: builtin/fetch.c:123 builtin/log.c:1426
+#: builtin/fetch.c:131 builtin/log.c:1433
 msgid "dir"
 msgstr "directori"
 
-#: builtin/fetch.c:124
+#: builtin/fetch.c:132
 msgid "prepend this to submodule path output"
 msgstr "anteposa això a la sortida de camí del submòdul"
 
-#: builtin/fetch.c:127
+#: builtin/fetch.c:135
 msgid "default mode for recursion"
 msgstr "mode de recursivitat per defecte"
 
-#: builtin/fetch.c:129 builtin/pull.c:208
+#: builtin/fetch.c:137 builtin/pull.c:209
 msgid "accept refs that update .git/shallow"
 msgstr "accepta les referències que actualitzin .git/shallow"
 
-#: builtin/fetch.c:130 builtin/pull.c:210
+#: builtin/fetch.c:138 builtin/pull.c:211
 msgid "refmap"
 msgstr "mapa de referències"
 
-#: builtin/fetch.c:131 builtin/pull.c:211
+#: builtin/fetch.c:139 builtin/pull.c:212
 msgid "specify fetch refmap"
 msgstr "mostra el mapa de referències d'obtenció"
 
-#: builtin/fetch.c:387
+#: builtin/fetch.c:398
 msgid "Couldn't find remote ref HEAD"
 msgstr "No s'ha pogut trobar la referència HEAD remota"
 
-#: builtin/fetch.c:503
+#: builtin/fetch.c:514
 #, c-format
 msgid "configuration fetch.output contains invalid value %s"
 msgstr "la configuració fetch.output conté un valor no vàlid %s"
 
-#: builtin/fetch.c:592
+#: builtin/fetch.c:607
 #, c-format
 msgid "object %s not found"
 msgstr "objecte %s no trobat"
 
-#: builtin/fetch.c:596
+#: builtin/fetch.c:611
 msgid "[up to date]"
 msgstr "[al dia]"
 
-#: builtin/fetch.c:609 builtin/fetch.c:689
+#: builtin/fetch.c:624 builtin/fetch.c:704
 msgid "[rejected]"
 msgstr "[rebutjat]"
 
-#: builtin/fetch.c:610
+#: builtin/fetch.c:625
 msgid "can't fetch in current branch"
 msgstr "no es pot obtenir en la branca actual"
 
-#: builtin/fetch.c:619
+#: builtin/fetch.c:634
 msgid "[tag update]"
 msgstr "[actualització d'etiqueta]"
 
-#: builtin/fetch.c:620 builtin/fetch.c:653 builtin/fetch.c:669
-#: builtin/fetch.c:684
+#: builtin/fetch.c:635 builtin/fetch.c:668 builtin/fetch.c:684
+#: builtin/fetch.c:699
 msgid "unable to update local ref"
 msgstr "no s'ha pogut actualitzar la referència local"
 
-#: builtin/fetch.c:639
+#: builtin/fetch.c:654
 msgid "[new tag]"
 msgstr "[etiqueta nova]"
 
-#: builtin/fetch.c:642
+#: builtin/fetch.c:657
 msgid "[new branch]"
 msgstr "[branca nova]"
 
-#: builtin/fetch.c:645
+#: builtin/fetch.c:660
 msgid "[new ref]"
 msgstr "[referència nova]"
 
-#: builtin/fetch.c:684
+#: builtin/fetch.c:699
 msgid "forced update"
 msgstr "actualització forçada"
 
-#: builtin/fetch.c:689
+#: builtin/fetch.c:704
 msgid "non-fast-forward"
 msgstr "sense avanç ràpid"
 
-#: builtin/fetch.c:733
+#: builtin/fetch.c:749
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s no ha enviat tots els objectes necessaris\n"
 
-#: builtin/fetch.c:753
+#: builtin/fetch.c:769
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr ""
 "rebutja %s perquè no es permet que les arrels superficials s'actualitzin"
 
-#: builtin/fetch.c:839 builtin/fetch.c:934
+#: builtin/fetch.c:856 builtin/fetch.c:952
 #, c-format
 msgid "From %.*s\n"
 msgstr "De %.*s\n"
 
-#: builtin/fetch.c:850
+#: builtin/fetch.c:867
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -6876,55 +7488,55 @@ msgstr ""
 " intenteu executar 'git remote prune %s' per a eliminar\n"
 " qualsevulla branca antiga o conflictiva"
 
-#: builtin/fetch.c:904
+#: builtin/fetch.c:922
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s es tornarà penjant)"
 
-#: builtin/fetch.c:905
+#: builtin/fetch.c:923
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s s'ha tornat penjant)"
 
-#: builtin/fetch.c:937
+#: builtin/fetch.c:955
 msgid "[deleted]"
 msgstr "[suprimit]"
 
-#: builtin/fetch.c:938 builtin/remote.c:1020
+#: builtin/fetch.c:956 builtin/remote.c:1020
 msgid "(none)"
 msgstr "(cap)"
 
-#: builtin/fetch.c:960
+#: builtin/fetch.c:979
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "S'està refusant obtenir en la branca actual %s d'un dipòsit no nu"
 
-#: builtin/fetch.c:979
+#: builtin/fetch.c:998
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "L'opció \"%s\" amb valor \"%s\" no és vàlida per a %s"
 
-#: builtin/fetch.c:982
+#: builtin/fetch.c:1001
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "S'ignora l'opció \"%s\" per a %s\n"
 
-#: builtin/fetch.c:1039
+#: builtin/fetch.c:1077
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "No se sap com obtenir de %s"
 
-#: builtin/fetch.c:1199
+#: builtin/fetch.c:1237
 #, c-format
 msgid "Fetching %s\n"
 msgstr "S'està obtenint %s\n"
 
-#: builtin/fetch.c:1201 builtin/remote.c:96
+#: builtin/fetch.c:1239 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "No s'ha pogut obtenir %s"
 
-#: builtin/fetch.c:1219
+#: builtin/fetch.c:1257
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -6932,32 +7544,40 @@ msgstr ""
 "Cap dipòsit remot especificat. Si us plau, especifiqueu o un URL o\n"
 "un nom remot del qual es deuen obtenir les revisions noves."
 
-#: builtin/fetch.c:1242
+#: builtin/fetch.c:1280
 msgid "You need to specify a tag name."
 msgstr "Necessiteu especificar un nom d'etiqueta."
 
-#: builtin/fetch.c:1284
+#: builtin/fetch.c:1322
+msgid "Negative depth in --deepen is not supported"
+msgstr "No s'admet una profunditat negativa en --deepen"
+
+#: builtin/fetch.c:1324
+msgid "--deepen and --depth are mutually exclusive"
+msgstr "--deepen i --depth són mutualment exclusius"
+
+#: builtin/fetch.c:1329
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth i --unshallow no es poden usar junts"
 
-#: builtin/fetch.c:1286
+#: builtin/fetch.c:1331
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow en un dipòsit complet no té sentit"
 
-#: builtin/fetch.c:1306
+#: builtin/fetch.c:1353
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all no accepta un paràmetre de dipòsit"
 
-#: builtin/fetch.c:1308
+#: builtin/fetch.c:1355
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all no té sentit amb especificacions de referència"
 
-#: builtin/fetch.c:1319
+#: builtin/fetch.c:1366
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "No hi ha tal remot ni tal grup remot: %s"
 
-#: builtin/fetch.c:1327
+#: builtin/fetch.c:1374
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "Obtenir un grup i especificar referències no té sentit"
 
@@ -6967,23 +7587,23 @@ msgid ""
 msgstr ""
 "git fmt-merge-msg [-m <missatge>] [--log[=<n>] | --no-log] [--file <fitxer>]"
 
-#: builtin/fmt-merge-msg.c:667
+#: builtin/fmt-merge-msg.c:663
 msgid "populate log with at most <n> entries from shortlog"
 msgstr "emplena el registre amb <n> entrades del registre curt com a màxim"
 
-#: builtin/fmt-merge-msg.c:670
+#: builtin/fmt-merge-msg.c:666
 msgid "alias for --log (deprecated)"
 msgstr "àlies per --log (desaprovat)"
 
-#: builtin/fmt-merge-msg.c:673
+#: builtin/fmt-merge-msg.c:669
 msgid "text"
 msgstr "text"
 
-#: builtin/fmt-merge-msg.c:674
+#: builtin/fmt-merge-msg.c:670
 msgid "use <text> as start of message"
 msgstr "usa <text> com a inici de missatge"
 
-#: builtin/fmt-merge-msg.c:675
+#: builtin/fmt-merge-msg.c:671
 msgid "file to read from"
 msgstr "fitxer del qual llegir"
 
@@ -7101,7 +7721,7 @@ msgstr "mostra el progrés"
 msgid "show verbose names for reachable objects"
 msgstr "mostra els noms detallats dels objectes abastables"
 
-#: builtin/fsck.c:671
+#: builtin/fsck.c:665
 msgid "Checking objects"
 msgstr "S'estan comprovant els objectes"
 
@@ -7195,228 +7815,223 @@ msgstr "grep: s'ha fallat en crear fil: %s"
 msgid "invalid number of threads specified (%d) for %s"
 msgstr "s'ha especificat un nombre de fils no vàlid (%d) per a %s"
 
-#: builtin/grep.c:452 builtin/grep.c:487
+#: builtin/grep.c:453 builtin/grep.c:488
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "no s'ha pogut llegir l'arbre (%s)"
 
-#: builtin/grep.c:502
+#: builtin/grep.c:503
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "no es pot fer grep des d'un objecte de tipus %s"
 
-#: builtin/grep.c:560
+#: builtin/grep.c:561
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "l'opció `%c' espera un valor numèric"
 
-#: builtin/grep.c:577
-#, c-format
-msgid "cannot open '%s'"
-msgstr "no es pot obrir '%s'"
-
-#: builtin/grep.c:646
+#: builtin/grep.c:647
 msgid "search in index instead of in the work tree"
 msgstr "cerca en l'índex en lloc de l'arbre de treball"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:649
 msgid "find in contents not managed by git"
 msgstr "cerca en continguts no gestionats per git"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:651
 msgid "search in both tracked and untracked files"
 msgstr "cerca tant en fitxers seguits com en no seguits"
 
-#: builtin/grep.c:652
+#: builtin/grep.c:653
 msgid "ignore files specified via '.gitignore'"
 msgstr "ignora els fitxers especificats mitjançant '.gitignore'"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:656
 msgid "show non-matching lines"
 msgstr "mostra les línies no coincidents"
 
-#: builtin/grep.c:657
+#: builtin/grep.c:658
 msgid "case insensitive matching"
 msgstr "coincidència insensible a majúscula i minúscula"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:660
 msgid "match patterns only at word boundaries"
 msgstr "coincideix amb els patrons només als límits de paraula"
 
-#: builtin/grep.c:661
+#: builtin/grep.c:662
 msgid "process binary files as text"
 msgstr "processa els fitxers binaris com a text"
 
-#: builtin/grep.c:663
+#: builtin/grep.c:664
 msgid "don't match patterns in binary files"
 msgstr "no coincideixis amb els patrons en els fitxers binaris"
 
-#: builtin/grep.c:666
+#: builtin/grep.c:667
 msgid "process binary files with textconv filters"
 msgstr "processa els fitxers binaris amb filtres de textconv"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:669
 msgid "descend at most <depth> levels"
 msgstr "descendeix com a màxim <profunditat> nivells"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:673
 msgid "use extended POSIX regular expressions"
 msgstr "usa les expressions regulars POSIX esteses"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:676
 msgid "use basic POSIX regular expressions (default)"
 msgstr "usa les expressions regulars POSIX bàsiques (per defecte)"
 
-#: builtin/grep.c:678
+#: builtin/grep.c:679
 msgid "interpret patterns as fixed strings"
 msgstr "interpreta els patrons com a cadenes fixes"
 
-#: builtin/grep.c:681
+#: builtin/grep.c:682
 msgid "use Perl-compatible regular expressions"
 msgstr "usa les expressions regulars compatibles amb Perl"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:685
 msgid "show line numbers"
 msgstr "mostra els números de línia"
 
-#: builtin/grep.c:685
+#: builtin/grep.c:686
 msgid "don't show filenames"
 msgstr "no mostris els noms de fitxer"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:687
 msgid "show filenames"
 msgstr "mostra els noms de fitxer"
 
-#: builtin/grep.c:688
+#: builtin/grep.c:689
 msgid "show filenames relative to top directory"
 msgstr "mostra els noms de fitxer relatius al directori superior"
 
-#: builtin/grep.c:690
+#: builtin/grep.c:691
 msgid "show only filenames instead of matching lines"
 msgstr "mostra només els noms de fitxer en lloc de les línies coincidents"
 
-#: builtin/grep.c:692
+#: builtin/grep.c:693
 msgid "synonym for --files-with-matches"
 msgstr "sinònim de --files-with-matches"
 
-#: builtin/grep.c:695
+#: builtin/grep.c:696
 msgid "show only the names of files without match"
 msgstr "mostra només els noms dels fitxers sense coincidència"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:698
 msgid "print NUL after filenames"
 msgstr "imprimeix NUL després dels noms de fitxer"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:700
 msgid "show the number of matches instead of matching lines"
 msgstr "mostra el nombre de coincidències en lloc de les línies coincidents"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:701
 msgid "highlight matches"
 msgstr "ressalta les coincidències"
 
-#: builtin/grep.c:702
+#: builtin/grep.c:703
 msgid "print empty line between matches from different files"
 msgstr "imprimeix una línia buida entre coincidències de fitxers distints"
 
-#: builtin/grep.c:704
+#: builtin/grep.c:705
 msgid "show filename only once above matches from same file"
 msgstr ""
 "mostra el nom de fitxer només una vegada a dalt de les coincidències del "
 "mateix fitxer"
 
-#: builtin/grep.c:707
+#: builtin/grep.c:708
 msgid "show <n> context lines before and after matches"
 msgstr "mostra <n> línies de context abans i després d'una coincidència"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:711
 msgid "show <n> context lines before matches"
 msgstr "mostra <n> línies de context abans d'una coincidència"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:713
 msgid "show <n> context lines after matches"
 msgstr "mostra <n> línies de context després d'una coincidència"
 
-#: builtin/grep.c:714
+#: builtin/grep.c:715
 msgid "use <n> worker threads"
 msgstr "usa <n> fils obrers"
 
-#: builtin/grep.c:715
+#: builtin/grep.c:716
 msgid "shortcut for -C NUM"
 msgstr "drecera per -C NUM"
 
-#: builtin/grep.c:718
+#: builtin/grep.c:719
 msgid "show a line with the function name before matches"
 msgstr "mostra una línia amb el nom de funció abans de les coincidències"
 
-#: builtin/grep.c:720
+#: builtin/grep.c:721
 msgid "show the surrounding function"
 msgstr "mostra la funció circumdant"
 
-#: builtin/grep.c:723
+#: builtin/grep.c:724
 msgid "read patterns from file"
 msgstr "llegeix els patrons des d'un fitxer"
 
-#: builtin/grep.c:725
+#: builtin/grep.c:726
 msgid "match <pattern>"
 msgstr "coincideix amb <patró>"
 
-#: builtin/grep.c:727
+#: builtin/grep.c:728
 msgid "combine patterns specified with -e"
 msgstr "combina els patrons especificats amb -e"
 
-#: builtin/grep.c:739
+#: builtin/grep.c:740
 msgid "indicate hit with exit status without output"
 msgstr "indica coincidència amb estat de sortida sense sortida textual"
 
-#: builtin/grep.c:741
+#: builtin/grep.c:742
 msgid "show only matches from files that match all patterns"
 msgstr ""
 "mostra només les coincidències dels fitxers que coincideixin amb tots els "
 "patrons"
 
-#: builtin/grep.c:743
+#: builtin/grep.c:744
 msgid "show parse tree for grep expression"
 msgstr "mostra l'arbre d'anàlisis de l'expressió de grep"
 
-#: builtin/grep.c:747
+#: builtin/grep.c:748
 msgid "pager"
 msgstr "paginador"
 
-#: builtin/grep.c:747
+#: builtin/grep.c:748
 msgid "show matching files in the pager"
 msgstr "mostra els fitxers coincidents en el paginador"
 
-#: builtin/grep.c:750
+#: builtin/grep.c:751
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "permet la invocació de grep(1) (ignorat per aquesta compilació)"
 
-#: builtin/grep.c:813
+#: builtin/grep.c:814
 msgid "no pattern given."
 msgstr "cap patró donat."
 
-#: builtin/grep.c:845 builtin/index-pack.c:1479
+#: builtin/grep.c:846 builtin/index-pack.c:1480
 #, c-format
 msgid "invalid number of threads specified (%d)"
 msgstr "s'ha especificat un nombre de fils no vàlid (%d)"
 
-#: builtin/grep.c:875
+#: builtin/grep.c:876
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager només funciona en l'arbre de treball"
 
-#: builtin/grep.c:901
+#: builtin/grep.c:902
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached o --untracked no es pot usar amb --no-index."
 
-#: builtin/grep.c:906
+#: builtin/grep.c:907
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index o --untracked no es pot usar amb revisions."
 
-#: builtin/grep.c:909
+#: builtin/grep.c:910
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard no es pot usar per als continguts seguits."
 
-#: builtin/grep.c:917
+#: builtin/grep.c:918
 msgid "both --cached and trees are given."
 msgstr "s'han donat ambdós --caches i arbres."
 
@@ -7432,85 +8047,89 @@ msgstr ""
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "type"
 msgstr "tipus"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "object type"
 msgstr "tipus d'objecte"
 
-#: builtin/hash-object.c:94
+#: builtin/hash-object.c:95
 msgid "write the object into the object database"
 msgstr "escriu l'objecte a la base de dades d'objectes"
 
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
 msgid "read the object from stdin"
 msgstr "llegeix l'objecte des d'stdin"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid "store file as is without filters"
 msgstr "emmagatzema el fitxer tal com és sense filtres"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr ""
 "només suma qualsevulla brossa aleatòria per a crear objectes malmesos per a "
 "depurar al Git"
 
-#: builtin/hash-object.c:100
+#: builtin/hash-object.c:101
 msgid "process file as it were from this path"
 msgstr "processa el fitxer com si fos d'aquest camí"
 
-#: builtin/help.c:41
+#: builtin/help.c:42
 msgid "print all available commands"
 msgstr "imprimeix totes les ordres disponibles"
 
-#: builtin/help.c:42
+#: builtin/help.c:43
+msgid "exclude guides"
+msgstr "exclou guíes"
+
+#: builtin/help.c:44
 msgid "print list of useful guides"
 msgstr "imprimeix la llista de guies útils"
 
-#: builtin/help.c:43
+#: builtin/help.c:45
 msgid "show man page"
 msgstr "mostra la pàgina de manual"
 
-#: builtin/help.c:44
+#: builtin/help.c:46
 msgid "show manual in web browser"
 msgstr "mostra la pàgina de manual en el navegador web"
 
-#: builtin/help.c:46
+#: builtin/help.c:48
 msgid "show info page"
 msgstr "mostra la pàgina d'informació"
 
-#: builtin/help.c:52
+#: builtin/help.c:54
 msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
 msgstr "git help [--all] [--guides] [--man | --web | --info] [<ordre>]"
 
-#: builtin/help.c:64
+#: builtin/help.c:66
 #, c-format
 msgid "unrecognized help format '%s'"
 msgstr "format d'ajuda no reconegut '%s'"
 
-#: builtin/help.c:91
+#: builtin/help.c:93
 msgid "Failed to start emacsclient."
 msgstr "S'ha fallat en iniciar emacsclient."
 
-#: builtin/help.c:104
+#: builtin/help.c:106
 msgid "Failed to parse emacsclient version."
 msgstr "S'ha fallat en analitzar la versió d'emacsclient."
 
-#: builtin/help.c:112
+#: builtin/help.c:114
 #, c-format
 msgid "emacsclient version '%d' too old (< 22)."
 msgstr "la versió d'emacsclient '%d' és massa vella (< 22)."
 
-#: builtin/help.c:130 builtin/help.c:151 builtin/help.c:160 builtin/help.c:168
+#: builtin/help.c:132 builtin/help.c:153 builtin/help.c:162 builtin/help.c:170
 #, c-format
 msgid "failed to exec '%s'"
 msgstr "s'ha fallat en executar '%s'"
 
-#: builtin/help.c:205
+#: builtin/help.c:207
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -7519,7 +8138,7 @@ msgstr ""
 "'%s': camí a un visualitzador de manuals no compatible.\n"
 "Si us plau, considereu usar 'man.<eina>.cmd' en lloc d'això."
 
-#: builtin/help.c:217
+#: builtin/help.c:219
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -7528,155 +8147,159 @@ msgstr ""
 "'%s': ordre per a un visualitzador de manuals compatible.\n"
 "Si us plau, considereu usar 'man.<eina>.path' en lloc d'això."
 
-#: builtin/help.c:334
+#: builtin/help.c:336
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s': visualitzador de manuals desconegut."
 
-#: builtin/help.c:351
+#: builtin/help.c:353
 msgid "no man viewer handled the request"
 msgstr "cap visualitzador de manuals ha gestionat la sol·licitud"
 
-#: builtin/help.c:359
+#: builtin/help.c:361
 msgid "no info viewer handled the request"
 msgstr "cap visualitzador d'informació ha gestionat la sol·licitud"
 
-#: builtin/help.c:401
+#: builtin/help.c:403
 msgid "Defining attributes per path"
 msgstr "La definició d'atributs per camí"
 
-#: builtin/help.c:402
+#: builtin/help.c:404
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Git quotidià amb més o menys 20 ordres"
 
-#: builtin/help.c:403
+#: builtin/help.c:405
 msgid "A Git glossary"
 msgstr "Un glossari de Git"
 
-#: builtin/help.c:404
+#: builtin/help.c:406
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Especifica els fitxers intencionalment no seguits a ignorar"
 
-#: builtin/help.c:405
+#: builtin/help.c:407
 msgid "Defining submodule properties"
 msgstr "La definició de les propietats de submòduls"
 
-#: builtin/help.c:406
+#: builtin/help.c:408
 msgid "Specifying revisions and ranges for Git"
 msgstr "L'especificació de revisions i rangs per al Git"
 
-#: builtin/help.c:407
+#: builtin/help.c:409
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Una introducció tutorial al Git (per a la versió 1.5.1 o més nou)"
 
-#: builtin/help.c:408
+#: builtin/help.c:410
 msgid "An overview of recommended workflows with Git"
 msgstr "Una visió de conjunt de fluxos de treball recomanats amb Git"
 
-#: builtin/help.c:420
+#: builtin/help.c:422
 msgid "The common Git guides are:\n"
 msgstr "Les guies de Git comunes són:\n"
 
-#: builtin/help.c:441 builtin/help.c:458
-#, c-format
-msgid "usage: %s%s"
-msgstr "ús: %s%s"
-
-#: builtin/help.c:474
+#: builtin/help.c:440
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "`git %s' és un àlies de `%s'"
 
-#: builtin/index-pack.c:153
+#: builtin/help.c:462 builtin/help.c:479
+#, c-format
+msgid "usage: %s%s"
+msgstr "ús: %s%s"
+
+#: builtin/index-pack.c:154
 #, c-format
 msgid "unable to open %s"
 msgstr "no s'ha pogut obrir %s"
 
-#: builtin/index-pack.c:203
+#: builtin/index-pack.c:204
 #, c-format
 msgid "object type mismatch at %s"
 msgstr "hi ha una discordança de tipus d'objecte a %s"
 
-#: builtin/index-pack.c:223
+#: builtin/index-pack.c:224
 #, c-format
 msgid "did not receive expected object %s"
 msgstr "no s'ha rebut l'objecte esperat %s"
 
-#: builtin/index-pack.c:226
+#: builtin/index-pack.c:227
 #, c-format
 msgid "object %s: expected type %s, found %s"
 msgstr "objecte %s: tipus %s esperat, %s trobat"
 
-#: builtin/index-pack.c:268
+#: builtin/index-pack.c:269
 #, c-format
 msgid "cannot fill %d byte"
 msgid_plural "cannot fill %d bytes"
 msgstr[0] "no es pot omplir %d octet"
 msgstr[1] "no es pot omplir %d octets"
 
-#: builtin/index-pack.c:278
+#: builtin/index-pack.c:279
 msgid "early EOF"
 msgstr "EOF prematur"
 
-#: builtin/index-pack.c:279
+#: builtin/index-pack.c:280
 msgid "read error on input"
 msgstr "error de lectura d'entrada"
 
-#: builtin/index-pack.c:291
+#: builtin/index-pack.c:292
 msgid "used more bytes than were available"
 msgstr "s'han usat més octets que hi havia disponibles"
 
-#: builtin/index-pack.c:298
+#: builtin/index-pack.c:299
 msgid "pack too large for current definition of off_t"
 msgstr "paquet massa gran per a la definició actual d'off_t"
 
-#: builtin/index-pack.c:314
+#: builtin/index-pack.c:302 builtin/unpack-objects.c:92
+msgid "pack exceeds maximum allowed size"
+msgstr "el paquet supera la mida màxima permesa"
+
+#: builtin/index-pack.c:317
 #, c-format
 msgid "unable to create '%s'"
-msgstr "no es pot crear '%s'"
+msgstr "no s'ha pogut crear '%s'"
 
-#: builtin/index-pack.c:319
+#: builtin/index-pack.c:322
 #, c-format
 msgid "cannot open packfile '%s'"
 msgstr "no es pot obrir el fitxer de paquet '%s'"
 
-#: builtin/index-pack.c:333
+#: builtin/index-pack.c:336
 msgid "pack signature mismatch"
 msgstr "hi ha una discordança de signatura de paquet"
 
-#: builtin/index-pack.c:335
+#: builtin/index-pack.c:338
 #, c-format
 msgid "pack version %<PRIu32> unsupported"
 msgstr "la versió de paquet %<PRIu32> no és compatible"
 
-#: builtin/index-pack.c:353
+#: builtin/index-pack.c:356
 #, c-format
 msgid "pack has bad object at offset %<PRIuMAX>: %s"
 msgstr "el paquet té un objecte dolent a la posició %<PRIuMAX>: %s"
 
-#: builtin/index-pack.c:475
+#: builtin/index-pack.c:478
 #, c-format
 msgid "inflate returned %d"
 msgstr "la inflació ha retornat %d"
 
-#: builtin/index-pack.c:524
+#: builtin/index-pack.c:527
 msgid "offset value overflow for delta base object"
 msgstr "desbordament de valor de desplaçament per a l'objecte base de delta"
 
-#: builtin/index-pack.c:532
+#: builtin/index-pack.c:535
 msgid "delta base offset is out of bound"
 msgstr "el desplaçament de base de delta està fora de límits"
 
-#: builtin/index-pack.c:540
+#: builtin/index-pack.c:543
 #, c-format
 msgid "unknown object type %d"
 msgstr "tipus d'objecte desconegut %d"
 
-#: builtin/index-pack.c:571
+#: builtin/index-pack.c:574
 msgid "cannot pread pack file"
 msgstr "no es pot fer pread en el fitxer de paquet"
 
-#: builtin/index-pack.c:573
+#: builtin/index-pack.c:576
 #, c-format
 msgid "premature end of pack file, %<PRIuMAX> byte missing"
 msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
@@ -7684,144 +8307,144 @@ msgstr[0] "el final del fitxer de paquet és prematur, manca %<PRIuMAX> octet"
 msgstr[1] ""
 "el final del fitxer de paquet és prematur, manquen %<PRIuMAX> octets"
 
-#: builtin/index-pack.c:599
+#: builtin/index-pack.c:602
 msgid "serious inflate inconsistency"
 msgstr "hi ha una inconsistència seriosa d'inflació"
 
-#: builtin/index-pack.c:745 builtin/index-pack.c:751 builtin/index-pack.c:774
-#: builtin/index-pack.c:808 builtin/index-pack.c:817
+#: builtin/index-pack.c:748 builtin/index-pack.c:754 builtin/index-pack.c:777
+#: builtin/index-pack.c:811 builtin/index-pack.c:820
 #, c-format
 msgid "SHA1 COLLISION FOUND WITH %s !"
 msgstr "S'HA TROBAT UNA COL·LISIÓ SHA1 AMB %s !"
 
-#: builtin/index-pack.c:748 builtin/pack-objects.c:164
-#: builtin/pack-objects.c:256
+#: builtin/index-pack.c:751 builtin/pack-objects.c:166
+#: builtin/pack-objects.c:258
 #, c-format
 msgid "unable to read %s"
 msgstr "no s'ha pogut llegir %s"
 
-#: builtin/index-pack.c:814
+#: builtin/index-pack.c:817
 #, c-format
 msgid "cannot read existing object %s"
 msgstr "no es pot llegir l'objecte existent %s"
 
-#: builtin/index-pack.c:828
+#: builtin/index-pack.c:831
 #, c-format
 msgid "invalid blob object %s"
 msgstr "objecte de blob no vàlid %s"
 
-#: builtin/index-pack.c:842
+#: builtin/index-pack.c:845
 #, c-format
 msgid "invalid %s"
 msgstr "%s no vàlid"
 
-#: builtin/index-pack.c:845
+#: builtin/index-pack.c:848
 msgid "Error in object"
 msgstr "Error en objecte"
 
-#: builtin/index-pack.c:847
+#: builtin/index-pack.c:850
 #, c-format
 msgid "Not all child objects of %s are reachable"
 msgstr "No tots els objectes fills de %s són abastables"
 
-#: builtin/index-pack.c:919 builtin/index-pack.c:950
+#: builtin/index-pack.c:922 builtin/index-pack.c:953
 msgid "failed to apply delta"
 msgstr "s'ha fallat en aplicar la delta"
 
-#: builtin/index-pack.c:1120
+#: builtin/index-pack.c:1123
 msgid "Receiving objects"
 msgstr "S'estan rebent objectes"
 
-#: builtin/index-pack.c:1120
+#: builtin/index-pack.c:1123
 msgid "Indexing objects"
 msgstr "S'estan indexant objectes"
 
-#: builtin/index-pack.c:1152
+#: builtin/index-pack.c:1155
 msgid "pack is corrupted (SHA1 mismatch)"
 msgstr "el paquet és malmès (discordança SHA1)"
 
-#: builtin/index-pack.c:1157
+#: builtin/index-pack.c:1160
 msgid "cannot fstat packfile"
 msgstr "no es pot fer fstat en el fitxer de paquet"
 
-#: builtin/index-pack.c:1160
+#: builtin/index-pack.c:1163
 msgid "pack has junk at the end"
 msgstr "el paquet té brossa al seu final"
 
-#: builtin/index-pack.c:1171
+#: builtin/index-pack.c:1174
 msgid "confusion beyond insanity in parse_pack_objects()"
 msgstr "confusió més enllà de la bogeria en parse_pack_objects()"
 
-#: builtin/index-pack.c:1196
+#: builtin/index-pack.c:1197
 msgid "Resolving deltas"
 msgstr "S'estan resolent les deltes"
 
-#: builtin/index-pack.c:1207
+#: builtin/index-pack.c:1208
 #, c-format
 msgid "unable to create thread: %s"
 msgstr "no s'ha pogut crear fil: %s"
 
-#: builtin/index-pack.c:1249
+#: builtin/index-pack.c:1250
 msgid "confusion beyond insanity"
 msgstr "confusió més enllà de la bogeria"
 
-#: builtin/index-pack.c:1255
+#: builtin/index-pack.c:1256
 #, c-format
 msgid "completed with %d local object"
 msgid_plural "completed with %d local objects"
 msgstr[0] "s'ha completat amb %d objecte local"
 msgstr[1] "s'ha completat amb %d objectes locals"
 
-#: builtin/index-pack.c:1267
+#: builtin/index-pack.c:1268
 #, c-format
 msgid "Unexpected tail checksum for %s (disk corruption?)"
 msgstr "Suma de verificació final no esperada per a %s (corrupció de disc?)"
 
-#: builtin/index-pack.c:1271
+#: builtin/index-pack.c:1272
 #, c-format
 msgid "pack has %d unresolved delta"
 msgid_plural "pack has %d unresolved deltas"
 msgstr[0] "El paquet té %d delta no resolta"
 msgstr[1] "El paquet té %d deltes no resoltes"
 
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1296
 #, c-format
 msgid "unable to deflate appended object (%d)"
 msgstr "no s'ha pogut desinflar l'objecte annexat (%d)"
 
-#: builtin/index-pack.c:1371
+#: builtin/index-pack.c:1372
 #, c-format
 msgid "local object %s is corrupt"
 msgstr "l'objecte local %s és malmès"
 
-#: builtin/index-pack.c:1395
+#: builtin/index-pack.c:1396
 msgid "error while closing pack file"
 msgstr "error en tancar el fitxer de paquet"
 
-#: builtin/index-pack.c:1408
+#: builtin/index-pack.c:1409
 #, c-format
 msgid "cannot write keep file '%s'"
 msgstr "no es pot escriure el fitxer a retenir '%s'"
 
-#: builtin/index-pack.c:1416
+#: builtin/index-pack.c:1417
 #, c-format
 msgid "cannot close written keep file '%s'"
 msgstr "no es pot tancar el fitxer escrit a retenir '%s'"
 
-#: builtin/index-pack.c:1429
+#: builtin/index-pack.c:1430
 msgid "cannot store pack file"
 msgstr "no es pot emmagatzemar el fitxer de paquet"
 
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1441
 msgid "cannot store index file"
 msgstr "no es pot emmagatzemar el fitxer d'índex"
 
-#: builtin/index-pack.c:1473
+#: builtin/index-pack.c:1474
 #, c-format
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "pack.indexversion=%<PRIu32> dolent"
 
-#: builtin/index-pack.c:1483 builtin/index-pack.c:1681
+#: builtin/index-pack.c:1484 builtin/index-pack.c:1681
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "no hi ha suport de fils, s'està ignorant %s"
@@ -7861,95 +8484,95 @@ msgstr "el nom del fitxer de paquet '%s' no acaba amb '.pack'"
 msgid "bad %s"
 msgstr "%s dolent"
 
-#: builtin/index-pack.c:1730
+#: builtin/index-pack.c:1732
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin no es pot usar sense --stdin"
 
-#: builtin/index-pack.c:1738
+#: builtin/index-pack.c:1740
 msgid "--verify with no packfile name given"
 msgstr "s'ha donat --verify sense nom de fitxer de paquet"
 
-#: builtin/init-db.c:55
+#: builtin/init-db.c:54
 #, c-format
 msgid "cannot stat '%s'"
 msgstr "no es pot fer stat en '%s'"
 
-#: builtin/init-db.c:61
+#: builtin/init-db.c:60
 #, c-format
 msgid "cannot stat template '%s'"
 msgstr "no es pot fer stat en la plantilla '%s'"
 
-#: builtin/init-db.c:66
+#: builtin/init-db.c:65
 #, c-format
 msgid "cannot opendir '%s'"
 msgstr "no es pot fer opendir en el directori '%s'"
 
-#: builtin/init-db.c:77
+#: builtin/init-db.c:76
 #, c-format
 msgid "cannot readlink '%s'"
 msgstr "no es pot fer readlink en '%s'"
 
-#: builtin/init-db.c:79
+#: builtin/init-db.c:78
 #, c-format
 msgid "cannot symlink '%s' '%s'"
 msgstr "no es pot fer symlink en '%s' '%s'"
 
-#: builtin/init-db.c:85
+#: builtin/init-db.c:84
 #, c-format
 msgid "cannot copy '%s' to '%s'"
 msgstr "no es pot copiar '%s' a '%s'"
 
-#: builtin/init-db.c:89
+#: builtin/init-db.c:88
 #, c-format
 msgid "ignoring template %s"
 msgstr "s'està ignorant la plantilla %s"
 
-#: builtin/init-db.c:120
+#: builtin/init-db.c:119
 #, c-format
 msgid "templates not found %s"
 msgstr "no s'han trobat les plantilles %s"
 
-#: builtin/init-db.c:135
+#: builtin/init-db.c:134
 #, c-format
 msgid "not copying templates from '%s': %s"
 msgstr "no s'està copiant plantilles de '%s': %s"
 
-#: builtin/init-db.c:312 builtin/init-db.c:315
-#, c-format
-msgid "%s already exists"
-msgstr "%s ja existeix"
-
-#: builtin/init-db.c:344
+#: builtin/init-db.c:327
 #, c-format
 msgid "unable to handle file type %d"
 msgstr "no s'ha pogut gestionar el tipus de fitxer %d"
 
-#: builtin/init-db.c:347
+#: builtin/init-db.c:330
 #, c-format
 msgid "unable to move %s to %s"
 msgstr "no s'ha pogut moure %s a %s"
 
-#: builtin/init-db.c:402
+#: builtin/init-db.c:347 builtin/init-db.c:350
+#, c-format
+msgid "%s already exists"
+msgstr "%s ja existeix"
+
+#: builtin/init-db.c:403
 #, c-format
 msgid "Reinitialized existing shared Git repository in %s%s\n"
 msgstr "S'ha reinicialitzat el dipòsit compartit existent del Git en %s%s\n"
 
-#: builtin/init-db.c:403
+#: builtin/init-db.c:404
 #, c-format
 msgid "Reinitialized existing Git repository in %s%s\n"
 msgstr "S'ha reinicialitzat el dipòsit existent del Git en %s%s\n"
 
-#: builtin/init-db.c:407
+#: builtin/init-db.c:408
 #, c-format
 msgid "Initialized empty shared Git repository in %s%s\n"
 msgstr "S'ha inicialitzat un dipòsit compartit buit del Git en %s%s\n"
 
-#: builtin/init-db.c:408
+#: builtin/init-db.c:409
 #, c-format
 msgid "Initialized empty Git repository in %s%s\n"
 msgstr "S'ha inicialitzat un dipòsit buit del Git en %s%s\n"
 
-#: builtin/init-db.c:455
+#: builtin/init-db.c:457
 msgid ""
 "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--"
 "shared[=<permissions>]] [<directory>]"
@@ -7957,25 +8580,25 @@ msgstr ""
 "git init [-q | --quiet] [--bare] [--template=<directori-de-plantilla>] [--"
 "shared[=<permisos>]] [<directori>]"
 
-#: builtin/init-db.c:478
+#: builtin/init-db.c:480
 msgid "permissions"
 msgstr "permisos"
 
-#: builtin/init-db.c:479
+#: builtin/init-db.c:481
 msgid "specify that the git repository is to be shared amongst several users"
 msgstr "especifica que el dipòsit de git es compartirà entre diversos usuaris"
 
-#: builtin/init-db.c:513 builtin/init-db.c:518
+#: builtin/init-db.c:515 builtin/init-db.c:520
 #, c-format
 msgid "cannot mkdir %s"
 msgstr "no es pot mkdir %s"
 
-#: builtin/init-db.c:522
+#: builtin/init-db.c:524
 #, c-format
 msgid "cannot chdir to %s"
 msgstr "no es pot canviar de directori a %s"
 
-#: builtin/init-db.c:543
+#: builtin/init-db.c:545
 #, c-format
 msgid ""
 "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
@@ -7984,7 +8607,7 @@ msgstr ""
 "no es permet %s (o --work-tree=<directori>) sense especificar %s (o --git-"
 "dir=<directori>)"
 
-#: builtin/init-db.c:571
+#: builtin/init-db.c:573
 #, c-format
 msgid "Cannot access work tree '%s'"
 msgstr "No es pot accedir a l'arbre de treball '%s'"
@@ -8095,37 +8718,34 @@ msgstr "No és un rang."
 msgid "Cover letter needs email format"
 msgstr "La carta de presentació necessita el format de correu electrònic"
 
-#: builtin/log.c:1064
+#: builtin/log.c:1063
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "in-reply-to boig: %s"
 
-#: builtin/log.c:1092
+#: builtin/log.c:1091
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<opcions>] [<des-de> | <rang-de-revisions>]"
 
-#: builtin/log.c:1137
+#: builtin/log.c:1141
 msgid "Two output directories?"
 msgstr "Hi ha dos directoris de sortida?"
 
-#: builtin/log.c:1244 builtin/log.c:1883 builtin/log.c:1885 builtin/log.c:1897
+#: builtin/log.c:1248 builtin/log.c:1891 builtin/log.c:1893 builtin/log.c:1905
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Comissió desconeguda %s"
 
-#: builtin/log.c:1254 builtin/notes.c:254 builtin/notes.c:305
-#: builtin/notes.c:307 builtin/notes.c:370 builtin/notes.c:425
-#: builtin/notes.c:511 builtin/notes.c:516 builtin/notes.c:594
-#: builtin/notes.c:657 builtin/notes.c:882 builtin/tag.c:455
+#: builtin/log.c:1258 builtin/notes.c:884 builtin/tag.c:455
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "S'ha fallat en resoldre '%s' com a referència vàlida."
 
-#: builtin/log.c:1259
+#: builtin/log.c:1263
 msgid "Could not find exact merge base."
 msgstr "No s'ha pogut trobar la base exacta de fusió."
 
-#: builtin/log.c:1263
+#: builtin/log.c:1267
 msgid ""
 "Failed to get upstream, if you want to record base commit automatically,\n"
 "please use git branch --set-upstream-to to track a remote branch.\n"
@@ -8136,211 +8756,215 @@ msgstr ""
 "seguir una branca remot. O podeu especificar la comissió base manualment\n"
 "amb --base=<id-de-comissió-base>."
 
-#: builtin/log.c:1283
+#: builtin/log.c:1287
 msgid "Failed to find exact merge base"
 msgstr "S'ha fallat en trobar la base exacta de fusió."
 
-#: builtin/log.c:1294
+#: builtin/log.c:1298
 msgid "base commit should be the ancestor of revision list"
 msgstr "la comissió base ha de ser l'avantpassat de la llista de revisions"
 
-#: builtin/log.c:1298
+#: builtin/log.c:1302
 msgid "base commit shouldn't be in revision list"
 msgstr "la comissió base no ha de ser en la llista de revisions"
 
-#: builtin/log.c:1347
+#: builtin/log.c:1351
 msgid "cannot get patch id"
 msgstr "no es pot obtenir l'id del pedaç"
 
-#: builtin/log.c:1404
+#: builtin/log.c:1408
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "usa [PATCH n/m] fins i tot amb un sol pedaç"
 
-#: builtin/log.c:1407
+#: builtin/log.c:1411
 msgid "use [PATCH] even with multiple patches"
 msgstr "usa [PATCH] fins i tot amb múltiples pedaços"
 
-#: builtin/log.c:1411
+#: builtin/log.c:1415
 msgid "print patches to standard out"
 msgstr "imprimeix els pedaços a la sortida estàndard"
 
-#: builtin/log.c:1413
+#: builtin/log.c:1417
 msgid "generate a cover letter"
 msgstr "genera una carta de presentació"
 
-#: builtin/log.c:1415
+#: builtin/log.c:1419
 msgid "use simple number sequence for output file names"
 msgstr "usa una seqüència de números per als noms dels fitxers de sortida"
 
-#: builtin/log.c:1416
+#: builtin/log.c:1420
 msgid "sfx"
 msgstr "sufix"
 
-#: builtin/log.c:1417
+#: builtin/log.c:1421
 msgid "use <sfx> instead of '.patch'"
 msgstr "usa <sufix> en lloc de '.patch'"
 
-#: builtin/log.c:1419
+#: builtin/log.c:1423
 msgid "start numbering patches at <n> instead of 1"
 msgstr "comença numerant els pedaços a <n> en lloc d'1"
 
-#: builtin/log.c:1421
+#: builtin/log.c:1425
 msgid "mark the series as Nth re-roll"
 msgstr "marca la sèrie com a l'enèsima llançada"
 
-#: builtin/log.c:1423
+#: builtin/log.c:1427
+msgid "Use [RFC PATCH] instead of [PATCH]"
+msgstr "Usa [RFC PATCH] en lloc de [PATCH]"
+
+#: builtin/log.c:1430
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "Usa [<prefix>] en lloc de [PATCH]"
 
-#: builtin/log.c:1426
+#: builtin/log.c:1433
 msgid "store resulting files in <dir>"
 msgstr "emmagatzema els fitxers resultants a <directori>"
 
-#: builtin/log.c:1429
+#: builtin/log.c:1436
 msgid "don't strip/add [PATCH]"
 msgstr "no despullis/afegeixis [PATCH]"
 
-#: builtin/log.c:1432
+#: builtin/log.c:1439
 msgid "don't output binary diffs"
 msgstr "no emetis diferències binàries"
 
-#: builtin/log.c:1434
+#: builtin/log.c:1441
 msgid "output all-zero hash in From header"
 msgstr "emet un hash de tots zeros en la capçalera From"
 
-#: builtin/log.c:1436
+#: builtin/log.c:1443
 msgid "don't include a patch matching a commit upstream"
 msgstr "no incloguis pedaços que coincideixin amb comissions a la font"
 
-#: builtin/log.c:1438
+#: builtin/log.c:1445
 msgid "show patch format instead of default (patch + stat)"
 msgstr ""
 "mostra el format de pedaç en lloc del per defecte (pedaç + estadístiques)"
 
-#: builtin/log.c:1440
+#: builtin/log.c:1447
 msgid "Messaging"
 msgstr "Missatgeria"
 
-#: builtin/log.c:1441
+#: builtin/log.c:1448
 msgid "header"
 msgstr "capçalera"
 
-#: builtin/log.c:1442
+#: builtin/log.c:1449
 msgid "add email header"
 msgstr "afegeix una capçalera de correu electrònic"
 
-#: builtin/log.c:1443 builtin/log.c:1445
+#: builtin/log.c:1450 builtin/log.c:1452
 msgid "email"
 msgstr "correu electrònic"
 
-#: builtin/log.c:1443
+#: builtin/log.c:1450
 msgid "add To: header"
 msgstr "afegeix la capçalera To:"
 
-#: builtin/log.c:1445
+#: builtin/log.c:1452
 msgid "add Cc: header"
 msgstr "afegeix la capçalera Cc:"
 
-#: builtin/log.c:1447
+#: builtin/log.c:1454
 msgid "ident"
 msgstr "identitat"
 
-#: builtin/log.c:1448
+#: builtin/log.c:1455
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr ""
 "estableix l'adreça From a <identitat> (o la identitat del comitent si manca)"
 
-#: builtin/log.c:1450
+#: builtin/log.c:1457
 msgid "message-id"
 msgstr "ID de missatge"
 
-#: builtin/log.c:1451
+#: builtin/log.c:1458
 msgid "make first mail a reply to <message-id>"
 msgstr "fes que el primer missatge sigui una resposta a <ID de missatge>"
 
-#: builtin/log.c:1452 builtin/log.c:1455
+#: builtin/log.c:1459 builtin/log.c:1462
 msgid "boundary"
 msgstr "límit"
 
-#: builtin/log.c:1453
+#: builtin/log.c:1460
 msgid "attach the patch"
 msgstr "ajunta el pedaç"
 
-#: builtin/log.c:1456
+#: builtin/log.c:1463
 msgid "inline the patch"
 msgstr "posa el pedaç en el cos"
 
-#: builtin/log.c:1460
+#: builtin/log.c:1467
 msgid "enable message threading, styles: shallow, deep"
 msgstr "habilita l'enfilada de missatges, estils: shallow, deep"
 
-#: builtin/log.c:1462
+#: builtin/log.c:1469
 msgid "signature"
 msgstr "signatura"
 
-#: builtin/log.c:1463
+#: builtin/log.c:1470
 msgid "add a signature"
 msgstr "afegeix una signatura"
 
-#: builtin/log.c:1464
+#: builtin/log.c:1471
 msgid "base-commit"
 msgstr "comissió base"
 
-#: builtin/log.c:1465
+#: builtin/log.c:1472
 msgid "add prerequisite tree info to the patch series"
 msgstr "afegeix la informació d'arbre prerequerida a la sèrie de pedaços"
 
-#: builtin/log.c:1467
+#: builtin/log.c:1474
 msgid "add a signature from a file"
 msgstr "afegeix una signatura des d'un fitxer"
 
-#: builtin/log.c:1468
+#: builtin/log.c:1475
 msgid "don't print the patch filenames"
 msgstr "no imprimeixis els noms de fitxer del pedaç"
 
-#: builtin/log.c:1558
+#: builtin/log.c:1565
 msgid "-n and -k are mutually exclusive."
 msgstr "-n i -k són mutualment exclusius."
 
-#: builtin/log.c:1560
-msgid "--subject-prefix and -k are mutually exclusive."
-msgstr "--subject-prefix i -k són mutualment exclusius."
+#: builtin/log.c:1567
+msgid "--subject-prefix/--rfc and -k are mutually exclusive."
+msgstr "--subject-prefix/--rfc i -k són mutualment exclusius."
 
-#: builtin/log.c:1568
+#: builtin/log.c:1575
 msgid "--name-only does not make sense"
 msgstr "--name-only no té sentit"
 
-#: builtin/log.c:1570
+#: builtin/log.c:1577
 msgid "--name-status does not make sense"
 msgstr "--name-status no té sentit"
 
-#: builtin/log.c:1572
+#: builtin/log.c:1579
 msgid "--check does not make sense"
 msgstr "--check no té sentit"
 
-#: builtin/log.c:1602
+#: builtin/log.c:1609
 msgid "standard output, or directory, which one?"
 msgstr "sortida estàndard o directori, quin dels dos?"
 
-#: builtin/log.c:1604
+#: builtin/log.c:1611
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "No s'ha pogut crear el directori '%s'"
 
-#: builtin/log.c:1698
+#: builtin/log.c:1705
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "no s'ha pogut llegir el fitxer de signatura '%s'"
 
-#: builtin/log.c:1769
+#: builtin/log.c:1777
 msgid "Failed to create output files"
 msgstr "S'ha fallat en crear els fitxers de sortida"
 
-#: builtin/log.c:1818
+#: builtin/log.c:1826
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<font> [<cap> [<límit>]]]"
 
-#: builtin/log.c:1872
+#: builtin/log.c:1880
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -8348,101 +8972,105 @@ msgstr ""
 "No s'ha pogut trobar una branca remota seguida. Si us plau, especifiqueu "
 "<font> manualment.\n"
 
-#: builtin/ls-files.c:379
+#: builtin/ls-files.c:458
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<opcions>] [<fitxer>...]"
 
-#: builtin/ls-files.c:428
+#: builtin/ls-files.c:507
 msgid "identify the file status with tags"
 msgstr "identifica l'estat de fitxer amb etiquetes"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:509
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "usa lletres minúscules per als fitxers 'assume unchanged'"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:511
 msgid "show cached files in the output (default)"
 msgstr ""
 "mostra en la sortida els fitxers desats en la memòria cau (per defecte)"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:513
 msgid "show deleted files in the output"
 msgstr "mostra en la sortida els fitxers suprimits"
 
-#: builtin/ls-files.c:436
+#: builtin/ls-files.c:515
 msgid "show modified files in the output"
 msgstr "mostra en la sortida els fitxers modificats"
 
-#: builtin/ls-files.c:438
+#: builtin/ls-files.c:517
 msgid "show other files in the output"
 msgstr "mostra en la sortida els altres fitxers"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:519
 msgid "show ignored files in the output"
 msgstr "mostra en la sortida els fitxers ignorats"
 
-#: builtin/ls-files.c:443
+#: builtin/ls-files.c:522
 msgid "show staged contents' object name in the output"
 msgstr "mostra en la sortida el nom d'objecte dels continguts allistats"
 
-#: builtin/ls-files.c:445
+#: builtin/ls-files.c:524
 msgid "show files on the filesystem that need to be removed"
 msgstr "mostra els fitxers en el sistema de fitxers que s'han d'eliminar"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:526
 msgid "show 'other' directories' names only"
 msgstr "mostra només els noms dels directoris 'other'"
 
-#: builtin/ls-files.c:449
+#: builtin/ls-files.c:528
 msgid "show line endings of files"
-msgstr "mostra els terminis de línia dels fitxers"
+msgstr "mostra els terminadors de línia dels fitxers"
 
-#: builtin/ls-files.c:451
+#: builtin/ls-files.c:530
 msgid "don't show empty directories"
 msgstr "no mostris els directoris buits"
 
-#: builtin/ls-files.c:454
+#: builtin/ls-files.c:533
 msgid "show unmerged files in the output"
 msgstr "mostra en la sortida els fitxers sense fusionar"
 
-#: builtin/ls-files.c:456
+#: builtin/ls-files.c:535
 msgid "show resolve-undo information"
 msgstr "mostra la informació de resolució de desfet"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:537
 msgid "skip files matching pattern"
 msgstr "salta els fitxers coincidents amb el patró"
 
-#: builtin/ls-files.c:461
+#: builtin/ls-files.c:540
 msgid "exclude patterns are read from <file>"
 msgstr "els patrons d'exclusió es llegeixen de <fitxer>"
 
-#: builtin/ls-files.c:464
+#: builtin/ls-files.c:543
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "llegeix els patrons addicionals d'exclusió per directori en <fitxer>"
 
-#: builtin/ls-files.c:466
+#: builtin/ls-files.c:545
 msgid "add the standard git exclusions"
 msgstr "afegeix les exclusions estàndards de git"
 
-#: builtin/ls-files.c:469
+#: builtin/ls-files.c:548
 msgid "make the output relative to the project top directory"
 msgstr "fes que la sortida sigui relativa al directori superior del projecte"
 
-#: builtin/ls-files.c:472
+#: builtin/ls-files.c:551
+msgid "recurse through submodules"
+msgstr "recursa als submòduls"
+
+#: builtin/ls-files.c:553
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "si qualsevol <fitxer> no és en l'índex, tracta això com a error"
 
-#: builtin/ls-files.c:473
+#: builtin/ls-files.c:554
 msgid "tree-ish"
 msgstr "arbre"
 
-#: builtin/ls-files.c:474
+#: builtin/ls-files.c:555
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr ""
 "pretén que els camins eliminats després de <arbre> encara siguin presents"
 
-#: builtin/ls-files.c:476
+#: builtin/ls-files.c:557
 msgid "show debugging data"
 msgstr "mostra les dades de depuració"
 
@@ -8561,33 +9189,33 @@ msgstr "Les estratègies disponibles són:"
 msgid "Available custom strategies are:"
 msgstr "Les estratègies personalitzades disponibles són:"
 
-#: builtin/merge.c:195 builtin/pull.c:126
+#: builtin/merge.c:195 builtin/pull.c:127
 msgid "do not show a diffstat at the end of the merge"
 msgstr "no mostris les estadístiques de diferència al final de la fusió"
 
-#: builtin/merge.c:198 builtin/pull.c:129
+#: builtin/merge.c:198 builtin/pull.c:130
 msgid "show a diffstat at the end of the merge"
 msgstr "mostra les estadístiques de diferència al final de la fusió"
 
-#: builtin/merge.c:199 builtin/pull.c:132
+#: builtin/merge.c:199 builtin/pull.c:133
 msgid "(synonym to --stat)"
 msgstr "(sinònim de --stat)"
 
-#: builtin/merge.c:201 builtin/pull.c:135
+#: builtin/merge.c:201 builtin/pull.c:136
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
 "afegeix (com a màxim <n>) entrades del registre curt al missatge de comissió "
 "de fusió"
 
-#: builtin/merge.c:204 builtin/pull.c:138
+#: builtin/merge.c:204 builtin/pull.c:139
 msgid "create a single commit instead of doing a merge"
 msgstr "crea una única comissió en lloc de fusionar"
 
-#: builtin/merge.c:206 builtin/pull.c:141
+#: builtin/merge.c:206 builtin/pull.c:142
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "realitza una comissió si la fusió té èxit (per defecte)"
 
-#: builtin/merge.c:208 builtin/pull.c:144
+#: builtin/merge.c:208 builtin/pull.c:145
 msgid "edit message before committing"
 msgstr "edita el missatge abans de cometre"
 
@@ -8595,28 +9223,28 @@ msgstr "edita el missatge abans de cometre"
 msgid "allow fast-forward (default)"
 msgstr "permet l'avanç ràpid (per defecte)"
 
-#: builtin/merge.c:211 builtin/pull.c:150
+#: builtin/merge.c:211 builtin/pull.c:151
 msgid "abort if fast-forward is not possible"
 msgstr "avorta si l'avanç ràpid no és possible"
 
-#: builtin/merge.c:215 builtin/pull.c:153
+#: builtin/merge.c:215 builtin/pull.c:154
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "verifica que la comissió anomenada tingui una signatura GPG vàlida"
 
-#: builtin/merge.c:216 builtin/notes.c:772 builtin/pull.c:157
+#: builtin/merge.c:216 builtin/notes.c:774 builtin/pull.c:158
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "estratègia"
 
-#: builtin/merge.c:217 builtin/pull.c:158
+#: builtin/merge.c:217 builtin/pull.c:159
 msgid "merge strategy to use"
 msgstr "estratègia de fusió a usar"
 
-#: builtin/merge.c:218 builtin/pull.c:161
+#: builtin/merge.c:218 builtin/pull.c:162
 msgid "option=value"
 msgstr "opció=valor"
 
-#: builtin/merge.c:219 builtin/pull.c:162
+#: builtin/merge.c:219 builtin/pull.c:163
 msgid "option for selected merge strategy"
 msgstr "opció per a l'estratègia de fusió seleccionada"
 
@@ -8628,7 +9256,7 @@ msgstr "missatge de comissió de fusió (per a una fusió no d'avanç ràpid)"
 msgid "abort the current in-progress merge"
 msgstr "avorta la fusió en curs actual"
 
-#: builtin/merge.c:227 builtin/pull.c:169
+#: builtin/merge.c:227 builtin/pull.c:170
 msgid "allow merging unrelated histories"
 msgstr "permet fusionar històries no relacionades"
 
@@ -8851,55 +9479,55 @@ msgstr "s'està refusant fusionar històries no relacionades"
 msgid "Already up-to-date."
 msgstr "Ja està al dia."
 
-#: builtin/merge.c:1382
+#: builtin/merge.c:1377
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "S'estan actualitzant %s..%s\n"
 
-#: builtin/merge.c:1419
+#: builtin/merge.c:1418
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "S'està intentant una fusió molt trivial en l'índex...\n"
 
-#: builtin/merge.c:1426
+#: builtin/merge.c:1425
 #, c-format
 msgid "Nope.\n"
 msgstr "No.\n"
 
-#: builtin/merge.c:1451
+#: builtin/merge.c:1450
 msgid "Already up-to-date. Yeeah!"
 msgstr "Ja està al dia. Estupend!"
 
-#: builtin/merge.c:1457
+#: builtin/merge.c:1456
 msgid "Not possible to fast-forward, aborting."
 msgstr "No és possible avançar ràpidament, s'està avortant."
 
-#: builtin/merge.c:1480 builtin/merge.c:1559
+#: builtin/merge.c:1479 builtin/merge.c:1558
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "S'està rebobinant l'arbre a la pristina...\n"
 
-#: builtin/merge.c:1484
+#: builtin/merge.c:1483
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "S'està intentant l'estratègia de fusió %s...\n"
 
-#: builtin/merge.c:1550
+#: builtin/merge.c:1549
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Cap estratègia de fusió ha gestionat la fusió.\n"
 
-#: builtin/merge.c:1552
+#: builtin/merge.c:1551
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "L'estratègia de fusió %s ha fallat.\n"
 
-#: builtin/merge.c:1561
+#: builtin/merge.c:1560
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "S'està usant el %s per a preparar la resolució a mà.\n"
 
-#: builtin/merge.c:1573
+#: builtin/merge.c:1572
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -8926,23 +9554,23 @@ msgstr "git merge-base --is-ancestor <comissió> <comissió>"
 msgid "git merge-base --fork-point <ref> [<commit>]"
 msgstr "git merge-base --fork-point <referència> [<comissió>]"
 
-#: builtin/merge-base.c:214
+#: builtin/merge-base.c:217
 msgid "output all common ancestors"
 msgstr "emet tots els avantpassats comuns"
 
-#: builtin/merge-base.c:216
+#: builtin/merge-base.c:219
 msgid "find ancestors for a single n-way merge"
 msgstr "troba els avantpassats per a una sola fusió d'n vies"
 
-#: builtin/merge-base.c:218
+#: builtin/merge-base.c:221
 msgid "list revs not reachable from others"
 msgstr "llista les revisions no abastables d'altres"
 
-#: builtin/merge-base.c:220
+#: builtin/merge-base.c:223
 msgid "is the first one ancestor of the other?"
 msgstr "és la primera un avantpassat de l'altre?"
 
-#: builtin/merge-base.c:222
+#: builtin/merge-base.c:225
 msgid "find where <commit> forked from reflog of <ref>"
 msgstr ""
 "troba on <comissió> s'ha bifurcat del registre de referències de <referència>"
@@ -8987,6 +9615,37 @@ msgstr "no avisis de conflictes"
 msgid "set labels for file1/orig-file/file2"
 msgstr "estableix les etiquetes per a fitxer1/fitxer-original/fitxer2"
 
+#: builtin/merge-recursive.c:45
+#, c-format
+msgid "unknown option %s"
+msgstr "opció desconeguda %s"
+
+#: builtin/merge-recursive.c:51
+#, c-format
+msgid "could not parse object '%s'"
+msgstr "no s'ha pogut analitzar l'objecte '%s'"
+
+#: builtin/merge-recursive.c:55
+#, c-format
+msgid "cannot handle more than %d base. Ignoring %s."
+msgid_plural "cannot handle more than %d bases. Ignoring %s."
+msgstr[0] "no es pot gestionar més d'%d base. S'està ignorant %s."
+msgstr[1] "no es poden gestionar més de %d bases. S'està ignorant %s."
+
+#: builtin/merge-recursive.c:63
+msgid "not handling anything other than two heads merge."
+msgstr "no s'està gestionant res a part de la fusió de dos caps."
+
+#: builtin/merge-recursive.c:69 builtin/merge-recursive.c:71
+#, c-format
+msgid "could not resolve ref '%s'"
+msgstr "no s'ha pogut resoldre la referència '%s'"
+
+#: builtin/merge-recursive.c:77
+#, c-format
+msgid "Merging %s with %s\n"
+msgstr "S'està fusionant %s amb %s\n"
+
 #: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
@@ -9097,43 +9756,43 @@ msgstr "S'està canviant el nom de %s a %s\n"
 msgid "renaming '%s' failed"
 msgstr "el canvi del nom de '%s' ha fallat"
 
-#: builtin/name-rev.c:258
+#: builtin/name-rev.c:257
 msgid "git name-rev [<options>] <commit>..."
 msgstr "git name-rev [<opcions>] <comissió>..."
 
-#: builtin/name-rev.c:259
+#: builtin/name-rev.c:258
 msgid "git name-rev [<options>] --all"
 msgstr "git name-rev [<opcions>] --all"
 
-#: builtin/name-rev.c:260
+#: builtin/name-rev.c:259
 msgid "git name-rev [<options>] --stdin"
 msgstr "git name-rev [<opcions>] --stdin"
 
-#: builtin/name-rev.c:312
+#: builtin/name-rev.c:311
 msgid "print only names (no SHA-1)"
 msgstr "imprimeix només els noms (sense SHA-1)"
 
-#: builtin/name-rev.c:313
+#: builtin/name-rev.c:312
 msgid "only use tags to name the commits"
 msgstr "només usa les etiquetes per a anomenar les comissions"
 
-#: builtin/name-rev.c:315
+#: builtin/name-rev.c:314
 msgid "only use refs matching <pattern>"
 msgstr "només usa les referències que coincideixin amb <patró>"
 
-#: builtin/name-rev.c:317
+#: builtin/name-rev.c:316
 msgid "list all commits reachable from all refs"
 msgstr "llista totes les comissions abastables de totes les referències"
 
-#: builtin/name-rev.c:318
+#: builtin/name-rev.c:317
 msgid "read from stdin"
 msgstr "llegeix d'stdin"
 
-#: builtin/name-rev.c:319
+#: builtin/name-rev.c:318
 msgid "allow to print `undefined` names (default)"
 msgstr "permet imprimir els noms `undefined` (per defecte)"
 
-#: builtin/name-rev.c:325
+#: builtin/name-rev.c:324
 msgid "dereference tags in the input (internal use)"
 msgstr "dereferencia les etiquetes en l'entrada (ús intern)"
 
@@ -9269,9 +9928,9 @@ msgid "failed to finish 'show' for object '%s'"
 msgstr "s'ha fallat en finalitzar 'show' per a l'objecte '%s'"
 
 #: builtin/notes.c:194
-msgid "Please supply the note contents using either -m or -F option"
+msgid "please supply the note contents using either -m or -F option"
 msgstr ""
-"Si us plau, proveïu els continguts de la nota fent servir l'opció -m o "
+"si us plau, proveïu els continguts de la nota fent servir l'opció -m o "
 "l'opció -F"
 
 #: builtin/notes.c:203
@@ -9280,8 +9939,8 @@ msgstr "no s'ha pogut escriure l'objecte de nota"
 
 #: builtin/notes.c:205
 #, c-format
-msgid "The note contents have been left in %s"
-msgstr "Els continguts de la nota s'han deixat en %s"
+msgid "the note contents have been left in %s"
+msgstr "s'han deixat els continguts de la nota en %s"
 
 #: builtin/notes.c:233 builtin/tag.c:439
 #, c-format
@@ -9293,52 +9952,76 @@ msgstr "no es pot llegir '%s'"
 msgid "could not open or read '%s'"
 msgstr "no s'ha pogut obrir o llegir '%s'"
 
+#: builtin/notes.c:254 builtin/notes.c:305 builtin/notes.c:307
+#: builtin/notes.c:372 builtin/notes.c:427 builtin/notes.c:513
+#: builtin/notes.c:518 builtin/notes.c:596 builtin/notes.c:659
+#, c-format
+msgid "failed to resolve '%s' as a valid ref."
+msgstr "s'ha fallat en resoldre '%s' com a referència vàlida."
+
 #: builtin/notes.c:257
 #, c-format
-msgid "Failed to read object '%s'."
-msgstr "S'ha fallat en llegir l'objecte '%s'."
+msgid "failed to read object '%s'."
+msgstr "s'ha fallat en llegir l'objecte '%s'."
 
 #: builtin/notes.c:261
 #, c-format
-msgid "Cannot read note data from non-blob object '%s'."
-msgstr "No es pot llegir les dades de node de l'objecte no de blob '%s'."
+msgid "cannot read note data from non-blob object '%s'."
+msgstr "no es pot llegir les dades de node de l'objecte no de blob '%s'."
+
+#: builtin/notes.c:301
+#, c-format
+msgid "malformed input line: '%s'."
+msgstr "línia d'entrada mal formada: '%s'."
+
+#: builtin/notes.c:316
+#, c-format
+msgid "failed to copy notes from '%s' to '%s'"
+msgstr "s'ha fallat en copiar les notes de '%s' a '%s'"
+
+#. TRANSLATORS: the first %s will be replaced by a
+#. git notes command: 'add', 'merge', 'remove', etc.
+#: builtin/notes.c:345
+#, c-format
+msgid "refusing to %s notes in %s (outside of refs/notes/)"
+msgstr "s'està refusant %s les notes en %s (fora de refs/notes/)"
 
-#: builtin/notes.c:363 builtin/notes.c:418 builtin/notes.c:494
-#: builtin/notes.c:506 builtin/notes.c:582 builtin/notes.c:650
-#: builtin/notes.c:800 builtin/notes.c:947 builtin/notes.c:968
+#: builtin/notes.c:365 builtin/notes.c:420 builtin/notes.c:496
+#: builtin/notes.c:508 builtin/notes.c:584 builtin/notes.c:652
+#: builtin/notes.c:802 builtin/notes.c:949 builtin/notes.c:970
 msgid "too many parameters"
 msgstr "massa paràmetres"
 
-#: builtin/notes.c:376 builtin/notes.c:663
+#: builtin/notes.c:378 builtin/notes.c:665
 #, c-format
-msgid "No note found for object %s."
-msgstr "No s'ha trobat cap nota per a l'objecte %s."
+msgid "no note found for object %s."
+msgstr "no s'ha trobat cap nota per a l'objecte %s."
 
-#: builtin/notes.c:397 builtin/notes.c:560
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents as a string"
 msgstr "anota els continguts com a cadena"
 
-#: builtin/notes.c:400 builtin/notes.c:563
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "note contents in a file"
 msgstr "anota els continguts en un fitxer"
 
-#: builtin/notes.c:403 builtin/notes.c:566
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse and edit specified note object"
 msgstr "reusa i edita l'objecte de nota especificat"
 
-#: builtin/notes.c:406 builtin/notes.c:569
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "reuse specified note object"
 msgstr "reusa l'objecte de nota especificat"
 
-#: builtin/notes.c:409 builtin/notes.c:572
+#: builtin/notes.c:411 builtin/notes.c:574
 msgid "allow storing empty note"
 msgstr "permet l'emmagatzematge d'una nota buida"
 
-#: builtin/notes.c:410 builtin/notes.c:481
+#: builtin/notes.c:412 builtin/notes.c:483
 msgid "replace existing notes"
 msgstr "reemplaça les notes existents"
 
-#: builtin/notes.c:435
+#: builtin/notes.c:437
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -9347,30 +10030,30 @@ msgstr ""
 "No es pot afegir les notes. S'han trobat notes existents de l'objecte %s. "
 "Useu '-f' per a sobreescriure les notes existents."
 
-#: builtin/notes.c:450 builtin/notes.c:529
+#: builtin/notes.c:452 builtin/notes.c:531
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "S'estan sobreescrivint les notes existents de l'objecte %s\n"
 
-#: builtin/notes.c:461 builtin/notes.c:622 builtin/notes.c:887
+#: builtin/notes.c:463 builtin/notes.c:624 builtin/notes.c:889
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "S'està eliminant la nota de l'objecte %s\n"
 
-#: builtin/notes.c:482
+#: builtin/notes.c:484
 msgid "read objects from stdin"
 msgstr "llegeix els objectes des d'stdin"
 
-#: builtin/notes.c:484
+#: builtin/notes.c:486
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr ""
 "carrega la configuració de reescriptura per a <ordre> (implica --stdin)"
 
-#: builtin/notes.c:502
+#: builtin/notes.c:504
 msgid "too few parameters"
 msgstr "hi ha massa pocs paràmetres"
 
-#: builtin/notes.c:523
+#: builtin/notes.c:525
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -9379,12 +10062,12 @@ msgstr ""
 "No es pot copiar les notes. S'han trobat notes existents de l'objecte %s. "
 "Useu '-f' per a sobreescriure les notes existents."
 
-#: builtin/notes.c:535
+#: builtin/notes.c:537
 #, c-format
-msgid "Missing notes on source object %s. Cannot copy."
-msgstr "Manquen notes a l'objecte font %s. No es pot copiar."
+msgid "missing notes on source object %s. Cannot copy."
+msgstr "manquen notes a l'objecte font %s. No es pot copiar."
 
-#: builtin/notes.c:587
+#: builtin/notes.c:589
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -9393,20 +10076,52 @@ msgstr ""
 "S'han desaprovat les opcions -m/-F/-c/-C en favor de la subordre 'edit'.\n"
 "Si us plau, useu 'git notes add -f -m/-F/-c/-C' en lloc d'això.\n"
 
-#: builtin/notes.c:753
+#: builtin/notes.c:685
+msgid "failed to delete ref NOTES_MERGE_PARTIAL"
+msgstr "s'ha fallat en suprimir la referència NOTES_MERGE_PARTIAL"
+
+#: builtin/notes.c:687
+msgid "failed to delete ref NOTES_MERGE_REF"
+msgstr "s'ha fallat en suprimir la referència NOTES_MERGE_REF"
+
+#: builtin/notes.c:689
+msgid "failed to remove 'git notes merge' worktree"
+msgstr "s'ha fallat en eliminar l'arbre de treball de 'git notes merge'"
+
+#: builtin/notes.c:709
+msgid "failed to read ref NOTES_MERGE_PARTIAL"
+msgstr "s'ha fallat en llegir la referència NOTES_MERGE_PARTIAL"
+
+#: builtin/notes.c:711
+msgid "could not find commit from NOTES_MERGE_PARTIAL."
+msgstr "no s'ha pogut trobar cap comissió de NOTES_MERGE_PARTIAL."
+
+#: builtin/notes.c:713
+msgid "could not parse commit from NOTES_MERGE_PARTIAL."
+msgstr "no s'ha pogut analitzar la comissió de NOTES_MERGE_PARTIAL."
+
+#: builtin/notes.c:726
+msgid "failed to resolve NOTES_MERGE_REF"
+msgstr "s'ha fallat en resoldre NOTES_MERGE_REF"
+
+#: builtin/notes.c:729
+msgid "failed to finalize notes merge"
+msgstr "s'ha fallat en finalitzar la fusió de notes"
+
+#: builtin/notes.c:755
 #, c-format
 msgid "unknown notes merge strategy %s"
 msgstr "estratègia de fusió de notes desconeguda %s"
 
-#: builtin/notes.c:769
+#: builtin/notes.c:771
 msgid "General options"
 msgstr "Opcions generals"
 
-#: builtin/notes.c:771
+#: builtin/notes.c:773
 msgid "Merge options"
 msgstr "Opcions de fusió"
 
-#: builtin/notes.c:773
+#: builtin/notes.c:775
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
@@ -9414,47 +10129,47 @@ msgstr ""
 "resol els conflictes de nota usant l'estratègia donada (manual/ours/theirs/"
 "union/cat_sort_uniq)"
 
-#: builtin/notes.c:775
+#: builtin/notes.c:777
 msgid "Committing unmerged notes"
 msgstr "S'estan cometent les notes sense fusionar"
 
-#: builtin/notes.c:777
+#: builtin/notes.c:779
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "finalitza la fusió de notes cometent les notes sense fusionar"
 
-#: builtin/notes.c:779
+#: builtin/notes.c:781
 msgid "Aborting notes merge resolution"
 msgstr "S'està avortant la resolució de fusió de notes"
 
-#: builtin/notes.c:781
+#: builtin/notes.c:783
 msgid "abort notes merge"
 msgstr "avorta la fusió de notes"
 
-#: builtin/notes.c:792
+#: builtin/notes.c:794
 msgid "cannot mix --commit, --abort or -s/--strategy"
 msgstr "no es pot combinar --commit, --abort i -s/--strategy"
 
-#: builtin/notes.c:797
-msgid "Must specify a notes ref to merge"
-msgstr "Cal especificar una referència de notes a fusionar"
+#: builtin/notes.c:799
+msgid "must specify a notes ref to merge"
+msgstr "cal especificar una referència de notes a fusionar"
 
-#: builtin/notes.c:821
+#: builtin/notes.c:823
 #, c-format
-msgid "Unknown -s/--strategy: %s"
+msgid "unknown -s/--strategy: %s"
 msgstr "-s/--strategy desconeguda: %s"
 
-#: builtin/notes.c:858
+#: builtin/notes.c:860
 #, c-format
-msgid "A notes merge into %s is already in-progress at %s"
-msgstr "Una fusió de notes a %s ja està en curs a %s"
+msgid "a notes merge into %s is already in-progress at %s"
+msgstr "una fusió de notes a %s ja està en curs a %s"
 
-#: builtin/notes.c:861
+#: builtin/notes.c:863
 #, c-format
-msgid "Failed to store link to current notes ref (%s)"
+msgid "failed to store link to current notes ref (%s)"
 msgstr ""
-"S'ha fallat en emmagatzemar l'enllaç a la referència de notes actual (%s)"
+"s'ha fallat en emmagatzemar l'enllaç a la referència de notes actual (%s)"
 
-#: builtin/notes.c:863
+#: builtin/notes.c:865
 #, c-format
 msgid ""
 "Automatic notes merge failed. Fix conflicts in %s and commit the result with "
@@ -9465,239 +10180,235 @@ msgstr ""
 "cometeu el resultat amb 'git notes merge --commit', o avorteu la fusió amb "
 "'git notes merge --abort'.\n"
 
-#: builtin/notes.c:885
+#: builtin/notes.c:887
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "L'objecte %s no té cap nota\n"
 
-#: builtin/notes.c:897
+#: builtin/notes.c:899
 msgid "attempt to remove non-existent note is not an error"
 msgstr "l'intent d'eliminar una nota no existent no és un error"
 
-#: builtin/notes.c:900
+#: builtin/notes.c:902
 msgid "read object names from the standard input"
 msgstr "llegeix els noms d'objecte des de l'entrada estàndard"
 
-#: builtin/notes.c:938 builtin/prune.c:105 builtin/worktree.c:127
+#: builtin/notes.c:940 builtin/prune.c:105 builtin/worktree.c:127
 msgid "do not remove, show only"
 msgstr "no eliminis, només mostra"
 
-#: builtin/notes.c:939
+#: builtin/notes.c:941
 msgid "report pruned notes"
 msgstr "informa de notes podades"
 
-#: builtin/notes.c:981
+#: builtin/notes.c:983
 msgid "notes-ref"
 msgstr "referència de notes"
 
-#: builtin/notes.c:982
+#: builtin/notes.c:984
 msgid "use notes from <notes-ref>"
 msgstr "usa les notes de <referència-de-notes>"
 
-#: builtin/notes.c:1017 builtin/remote.c:1623
+#: builtin/notes.c:1019
 #, c-format
-msgid "Unknown subcommand: %s"
-msgstr "Subordre desconeguda: %s"
+msgid "unknown subcommand: %s"
+msgstr "subordre desconeguda: %s"
 
-#: builtin/pack-objects.c:28
+#: builtin/pack-objects.c:29
 msgid ""
 "git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
 msgstr ""
 "git pack-objects --stdout [<opcions>...] [< <llista-de-referències> | < "
 "<llista-de-objectes>]"
 
-#: builtin/pack-objects.c:29
+#: builtin/pack-objects.c:30
 msgid ""
 "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
 msgstr ""
 "git pack-objects [<opcions>...] <nom-base> [< <llista-de-referències> | < "
 "<llista-de-objectes>]"
 
-#: builtin/pack-objects.c:177 builtin/pack-objects.c:180
+#: builtin/pack-objects.c:179 builtin/pack-objects.c:182
 #, c-format
 msgid "deflate error (%d)"
 msgstr "error de deflació (%d)"
 
-#: builtin/pack-objects.c:766
+#: builtin/pack-objects.c:768
 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
 msgstr ""
 "s'està inhabilitant l'escriptura de mapes de bits, es divideixen els paquets "
 "a causa de pack.packSizeLimit"
 
-#: builtin/pack-objects.c:779
+#: builtin/pack-objects.c:781
 msgid "Writing objects"
 msgstr "S'estan escrivint els objectes"
 
-#: builtin/pack-objects.c:1037
+#: builtin/pack-objects.c:1070
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr ""
 "s'està inhabilitant l'escriptura de mapes de bits, perquè alguns objectes no "
 "s'empaqueten"
 
-#: builtin/pack-objects.c:2197
+#: builtin/pack-objects.c:2346
 msgid "Compressing objects"
 msgstr "S'estan comprimint objectes"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2759
 #, c-format
 msgid "unsupported index version %s"
 msgstr "versió d'índex no compatible %s"
 
-#: builtin/pack-objects.c:2615
+#: builtin/pack-objects.c:2763
 #, c-format
 msgid "bad index version '%s'"
 msgstr "versió d'índex dolenta '%s'"
 
-#: builtin/pack-objects.c:2645
+#: builtin/pack-objects.c:2793
 msgid "do not show progress meter"
 msgstr "no mostris l'indicador de progrés"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2795
 msgid "show progress meter"
 msgstr "mostra l'indicador de progrés"
 
-#: builtin/pack-objects.c:2649
+#: builtin/pack-objects.c:2797
 msgid "show progress meter during object writing phase"
 msgstr "mostra l'indicador de progrés durant la fase d'escriptura d'objectes"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2800
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "similar a --all-progress quan l'indicador de progrés es mostra"
 
-#: builtin/pack-objects.c:2653
+#: builtin/pack-objects.c:2801
 msgid "version[,offset]"
 msgstr "versió[,desplaçament]"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2802
 msgid "write the pack index file in the specified idx format version"
 msgstr ""
 "escriu el fitxer d'índex de paquet en la versió de format d'índex "
 "especificada"
 
-#: builtin/pack-objects.c:2657
+#: builtin/pack-objects.c:2805
 msgid "maximum size of each output pack file"
 msgstr "mida màxima de cada fitxer de paquet de sortida"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2807
 msgid "ignore borrowed objects from alternate object store"
 msgstr ""
 "ignora els objectes prestats d'un emmagatzemament d'objectes alternatiu"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2809
 msgid "ignore packed objects"
 msgstr "ignora els objectes empaquetats"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2811
 msgid "limit pack window by objects"
 msgstr "limita la finestra d'empaquetament per objectes"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2813
 msgid "limit pack window by memory in addition to object limit"
 msgstr ""
 "limita la finestra d'empaquetament per memòria a més del límit d'objectes"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2815
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "longitud màxima de la cadena de deltes permesa en el paquet resultant"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2817
 msgid "reuse existing deltas"
 msgstr "reusa les deltes existents"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2819
 msgid "reuse existing objects"
 msgstr "reusa els objectes existents"
 
-#: builtin/pack-objects.c:2673
+#: builtin/pack-objects.c:2821
 msgid "use OFS_DELTA objects"
 msgstr "usa objectes OFS_DELTA"
 
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2823
 msgid "use threads when searching for best delta matches"
 msgstr "usa fils en cercar les millores coincidències de delta"
 
-#: builtin/pack-objects.c:2677
+#: builtin/pack-objects.c:2825
 msgid "do not create an empty pack output"
 msgstr "no creïs una emissió de paquet buida"
 
-#: builtin/pack-objects.c:2679
+#: builtin/pack-objects.c:2827
 msgid "read revision arguments from standard input"
 msgstr "llegeix els paràmetres de revisió des de l'entrada estàndard"
 
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2829
 msgid "limit the objects to those that are not yet packed"
 msgstr "limita els objectes als quals encara no s'hagin empaquetat"
 
-#: builtin/pack-objects.c:2684
+#: builtin/pack-objects.c:2832
 msgid "include objects reachable from any reference"
 msgstr "inclou els objectes abastables de qualsevulla referència"
 
-#: builtin/pack-objects.c:2687
+#: builtin/pack-objects.c:2835
 msgid "include objects referred by reflog entries"
 msgstr ""
 "inclou els objectes als quals facin referència les entrades del registre de "
 "referències"
 
-#: builtin/pack-objects.c:2690
+#: builtin/pack-objects.c:2838
 msgid "include objects referred to by the index"
 msgstr "inclou els objectes als quals faci referència l'índex"
 
-#: builtin/pack-objects.c:2693
+#: builtin/pack-objects.c:2841
 msgid "output pack to stdout"
 msgstr "emet el paquet a stdout"
 
-#: builtin/pack-objects.c:2695
+#: builtin/pack-objects.c:2843
 msgid "include tag objects that refer to objects to be packed"
 msgstr ""
 "inclou els objectes d'etiqueta que facin referència als objectes a empaquetar"
 
-#: builtin/pack-objects.c:2697
+#: builtin/pack-objects.c:2845
 msgid "keep unreachable objects"
 msgstr "retén els objectes inabastables"
 
-#: builtin/pack-objects.c:2699
+#: builtin/pack-objects.c:2847
 msgid "pack loose unreachable objects"
 msgstr "empaqueta els objectes inabastables solts"
 
-#: builtin/pack-objects.c:2700 parse-options.h:142
-msgid "time"
-msgstr "hora"
-
-#: builtin/pack-objects.c:2701
+#: builtin/pack-objects.c:2849
 msgid "unpack unreachable objects newer than <time>"
 msgstr "desempaqueta els objectes inabastables més nous que <hora>"
 
-#: builtin/pack-objects.c:2704
+#: builtin/pack-objects.c:2852
 msgid "create thin packs"
 msgstr "crea paquets prims"
 
-#: builtin/pack-objects.c:2706
+#: builtin/pack-objects.c:2854
 msgid "create packs suitable for shallow fetches"
 msgstr "crea paquets adequats per a les obtencions superficials"
 
-#: builtin/pack-objects.c:2708
+#: builtin/pack-objects.c:2856
 msgid "ignore packs that have companion .keep file"
 msgstr "ignora els paquets que tinguin un fitxer .keep corresponent"
 
-#: builtin/pack-objects.c:2710
+#: builtin/pack-objects.c:2858
 msgid "pack compression level"
 msgstr "nivell de compressió de paquet"
 
-#: builtin/pack-objects.c:2712
+#: builtin/pack-objects.c:2860
 msgid "do not hide commits by grafts"
 msgstr "no amaguis les comissions per empelt"
 
-#: builtin/pack-objects.c:2714
+#: builtin/pack-objects.c:2862
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr ""
 "usa un índex de mapa de bits, si està disponible, per a accelerar el "
 "recompte d'objectes"
 
-#: builtin/pack-objects.c:2716
+#: builtin/pack-objects.c:2864
 msgid "write a bitmap index together with the pack index"
 msgstr "escriu un índex de mapa de bits junt amb l'índex de paquet"
 
-#: builtin/pack-objects.c:2829
+#: builtin/pack-objects.c:2993
 msgid "Counting objects"
 msgstr "S'estan comptant els objectes"
 
@@ -9737,53 +10448,45 @@ msgstr "fes caducar els objectes més vells que <hora>"
 msgid "cannot prune in a precious-objects repo"
 msgstr "no es pot podar en un dipòsit d'objectes preciosos"
 
-#: builtin/pull.c:72
+#: builtin/pull.c:51 builtin/pull.c:53
+#, c-format
+msgid "Invalid value for %s: %s"
+msgstr "Valor no vàlid per a %s: %s"
+
+#: builtin/pull.c:73
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
-msgstr "git pull [opcions] [<dipòsit> [<especificació-de-referència>...]]"
+msgstr "git pull [<opcions>] [<dipòsit> [<especificació-de-referència>...]]"
 
-#: builtin/pull.c:120
+#: builtin/pull.c:121
 msgid "Options related to merging"
 msgstr "Opcions relacionades amb fusionar"
 
-#: builtin/pull.c:123
+#: builtin/pull.c:124
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "incorpora els canvis per rebasar en lloc de fusionar"
 
-#: builtin/pull.c:147 builtin/revert.c:101
+#: builtin/pull.c:148 builtin/revert.c:101
 msgid "allow fast-forward"
 msgstr "permet l'avanç ràpid"
 
-#: builtin/pull.c:156
+#: builtin/pull.c:157
 msgid "automatically stash/stash pop before and after rebase"
 msgstr "automàticament emmagatzema/desempila abans i després de rebasament"
 
-#: builtin/pull.c:172
+#: builtin/pull.c:173
 msgid "Options related to fetching"
 msgstr "Opcions relacionades amb obtenir"
 
-#: builtin/pull.c:194
+#: builtin/pull.c:195
 msgid "number of submodules pulled in parallel"
 msgstr "nombre de submòduls baixats en paral·lel"
 
-#: builtin/pull.c:283
+#: builtin/pull.c:284
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Valor no vàlid per a pull.ff: %s"
 
-#: builtin/pull.c:379 git-sh-setup.sh:226
-msgid "Cannot pull with rebase: You have unstaged changes."
-msgstr "No es pot baixar amb rebasament: Teniu canvis no allistats."
-
-#: builtin/pull.c:385 git-sh-setup.sh:252
-msgid "Additionally, your index contains uncommitted changes."
-msgstr "Addicionalment, el vostre índex conté canvis sense cometre."
-
-#: builtin/pull.c:387 git-sh-setup.sh:245
-msgid "Cannot pull with rebase: Your index contains uncommitted changes."
-msgstr ""
-"No es pot baixar amb rebasament: El vostre índex conté canvis sense cometre."
-
-#: builtin/pull.c:463
+#: builtin/pull.c:397
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -9791,13 +10494,13 @@ msgstr ""
 "No hi ha cap candidat sobre el qual rebasar entre les referències que acabeu "
 "d'obtenir."
 
-#: builtin/pull.c:465
+#: builtin/pull.c:399
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 "No hi ha candidats per a fusionar entre les referències que acabeu d'obtenir."
 
-#: builtin/pull.c:466
+#: builtin/pull.c:400
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -9805,7 +10508,7 @@ msgstr ""
 "Generalment això vol dir que heu proveït una especificació de\n"
 "referència de comodí que no tenia cap coincidència en el costat remot."
 
-#: builtin/pull.c:469
+#: builtin/pull.c:403
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -9816,44 +10519,44 @@ msgstr ""
 "Perquè aquest no és el remot configurat per defecte per a la vostra\n"
 "branca actual, heu d'especificar una branca en la línia d'ordres."
 
-#: builtin/pull.c:474 git-parse-remote.sh:73
+#: builtin/pull.c:408 git-parse-remote.sh:73
 msgid "You are not currently on a branch."
 msgstr "Actualment no sou en cap branca."
 
-#: builtin/pull.c:476 builtin/pull.c:491 git-parse-remote.sh:79
+#: builtin/pull.c:410 builtin/pull.c:425 git-parse-remote.sh:79
 msgid "Please specify which branch you want to rebase against."
 msgstr "Si us plau, especifiqueu sobre què branca voleu rebasar."
 
-#: builtin/pull.c:478 builtin/pull.c:493 git-parse-remote.sh:82
+#: builtin/pull.c:412 builtin/pull.c:427 git-parse-remote.sh:82
 msgid "Please specify which branch you want to merge with."
 msgstr "Si us plau, especifiqueu amb què branca voleu fusionar."
 
-#: builtin/pull.c:479 builtin/pull.c:494
+#: builtin/pull.c:413 builtin/pull.c:428
 msgid "See git-pull(1) for details."
 msgstr "Vegeu git-pull(1) per detalls."
 
-#: builtin/pull.c:481 builtin/pull.c:487 builtin/pull.c:496
+#: builtin/pull.c:415 builtin/pull.c:421 builtin/pull.c:430
 #: git-parse-remote.sh:64
 msgid "<remote>"
 msgstr "<remot>"
 
-#: builtin/pull.c:481 builtin/pull.c:496 builtin/pull.c:501 git-rebase.sh:451
+#: builtin/pull.c:415 builtin/pull.c:430 builtin/pull.c:435 git-rebase.sh:451
 #: git-parse-remote.sh:65
 msgid "<branch>"
 msgstr "<branca>"
 
-#: builtin/pull.c:489 git-parse-remote.sh:75
+#: builtin/pull.c:423 git-parse-remote.sh:75
 msgid "There is no tracking information for the current branch."
 msgstr "No hi ha cap informació de seguiment per a la branca actual."
 
-#: builtin/pull.c:498 git-parse-remote.sh:95
+#: builtin/pull.c:432 git-parse-remote.sh:95
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:"
 msgstr ""
 "Si voleu establir informació de seguiment per a aquesta branca, podeu fer-ho "
 "amb:"
 
-#: builtin/pull.c:503
+#: builtin/pull.c:437
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -9862,20 +10565,28 @@ msgstr ""
 "La vostra configuració especifica fusionar amb la referència '%s'\n"
 "del remot, però no s'ha obtingut tal referència."
 
-#: builtin/pull.c:820
+#: builtin/pull.c:754
 msgid "ignoring --verify-signatures for rebase"
 msgstr "s'està ignorant --verify-signatures per a rebasar"
 
-#: builtin/pull.c:867
+#: builtin/pull.c:801
 msgid "--[no-]autostash option is only valid with --rebase."
 msgstr "l'opció --[no-]-autostash és vàlid només amb --rebase."
 
-#: builtin/pull.c:875
+#: builtin/pull.c:809
 msgid "Updating an unborn branch with changes added to the index."
 msgstr ""
 "S'està actualitzant una branca no nascuda amb canvis afegits a l'índex."
 
-#: builtin/pull.c:903
+#: builtin/pull.c:812
+msgid "pull with rebase"
+msgstr "baixar amb rebasament"
+
+#: builtin/pull.c:813
+msgid "please commit or stash them."
+msgstr "si us plau, cometeu-los o emmagatzemeu-los."
+
+#: builtin/pull.c:838
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -9886,7 +10597,7 @@ msgstr ""
 "s'està avançant ràpidament el vostre arbre de treball des de\n"
 "la comissió %s."
 
-#: builtin/pull.c:908
+#: builtin/pull.c:843
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -9904,11 +10615,11 @@ msgstr ""
 "$ git reset --hard\n"
 "per a recuperar."
 
-#: builtin/pull.c:923
+#: builtin/pull.c:858
 msgid "Cannot merge multiple branches into empty head."
 msgstr "No es pot fusionar múltiples branques a un cap buit."
 
-#: builtin/pull.c:927
+#: builtin/pull.c:862
 msgid "Cannot rebase onto multiple branches."
 msgstr "No es pot rebasar sobre múltiples branques."
 
@@ -10286,15 +10997,68 @@ msgstr "salta l'aplicació del filtre d'agafament parcial"
 msgid "debug unpack-trees"
 msgstr "depura unpack-trees"
 
-#: builtin/receive-pack.c:25
+#: builtin/receive-pack.c:26
 msgid "git receive-pack <git-dir>"
 msgstr "git receive-pack <git-dir>"
 
-#: builtin/receive-pack.c:1843
+#: builtin/receive-pack.c:793
+msgid ""
+"By default, updating the current branch in a non-bare repository\n"
+"is denied, because it will make the index and work tree inconsistent\n"
+"with what you pushed, and will require 'git reset --hard' to match\n"
+"the work tree to HEAD.\n"
+"\n"
+"You can set 'receive.denyCurrentBranch' configuration variable to\n"
+"'ignore' or 'warn' in the remote repository to allow pushing into\n"
+"its current branch; however, this is not recommended unless you\n"
+"arranged to update its work tree to match what you pushed in some\n"
+"other way.\n"
+"\n"
+"To squelch this message and still keep the default behaviour, set\n"
+"'receive.denyCurrentBranch' configuration variable to 'refuse'."
+msgstr ""
+"Per defecte, es denega actualizar la branca actual en un dipòsit no\n"
+"nu, perquè feria l'índex i l'arbre de treball inconsistents amb el\n"
+"que hàgiu pujat, i requerria 'git reset --hard' per a fer que\n"
+"l'arbre de treball coincideixi amb HEAD.\n"
+"\n"
+"Podeu establir la variable de configuració\n"
+"'receive.denyCurrentBranch' a 'ignore' o 'warn' en el dipòsit remot\n"
+"per a permetre pujar a la seva branca actual; no obstant, no es\n"
+"recomana això a menys que hàgiu decidit actualitzar el seu arbre en\n"
+"alguna altra manera per a coincidar amb el que hàgiu pujat.\n"
+"\n"
+"Per a silenciar aquest missatge i encara retenir el comportament\n"
+"predeterminat, establiu la variable de configuració\n"
+"'receive.denyCurrentBranch' a 'refuse'."
+
+#: builtin/receive-pack.c:813
+msgid ""
+"By default, deleting the current branch is denied, because the next\n"
+"'git clone' won't result in any file checked out, causing confusion.\n"
+"\n"
+"You can set 'receive.denyDeleteCurrent' configuration variable to\n"
+"'warn' or 'ignore' in the remote repository to allow deleting the\n"
+"current branch, with or without a warning message.\n"
+"\n"
+"To squelch this message, you can set it to 'refuse'."
+msgstr ""
+"Per defecte, es denega suprimir la branca actual, perquè el\n"
+"'git clone' següent no resultarà en cap fitxer agafat, causant\n"
+"confusió.\n"
+"\n"
+"Podeu establir la variable de configuració\n"
+"'receive.denyDeleteCurrent' a 'warn' o 'ignore' en el dipòsit remot\n"
+"per a permetre suprimir la branca actual, amb o sense un missatge\n"
+"d'advertència.\n"
+"\n"
+"Per a silenciar aquest missatge, podeu establir-la a 'refuse'."
+
+#: builtin/receive-pack.c:1883
 msgid "quiet"
 msgstr "callat"
 
-#: builtin/receive-pack.c:1857
+#: builtin/receive-pack.c:1897
 msgid "You must specify a directory."
 msgstr "Heu d'especificar un directori."
 
@@ -10628,7 +11392,7 @@ msgstr "* remot %s"
 msgid "  Fetch URL: %s"
 msgstr "  URL d'obtenció: %s"
 
-#: builtin/remote.c:1143 builtin/remote.c:1156 builtin/remote.c:1296
+#: builtin/remote.c:1143 builtin/remote.c:1156 builtin/remote.c:1295
 msgid "(no URL)"
 msgstr "(sense URL)"
 
@@ -10666,7 +11430,7 @@ msgid_plural "  Remote branches:%s"
 msgstr[0] "  Branca remota:%s"
 msgstr[1] "  Branques remotes:%s"
 
-#: builtin/remote.c:1179 builtin/remote.c:1206
+#: builtin/remote.c:1179 builtin/remote.c:1205
 msgid " (status not queried)"
 msgstr " (estat no consultat)"
 
@@ -10680,140 +11444,145 @@ msgstr[1] "  Branques locals configurades per a 'git pull':"
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  'git push' reflectirà les referències locals"
 
-#: builtin/remote.c:1203
+#: builtin/remote.c:1202
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  Referència local configurada per a 'git push'%s:"
 msgstr[1] "  Referències locals configurades per a 'git push'%s:"
 
-#: builtin/remote.c:1224
+#: builtin/remote.c:1223
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "estableix refs/remotes/<name>/HEAD segons el remot"
 
-#: builtin/remote.c:1226
+#: builtin/remote.c:1225
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "suprimeix refs/remotes/<name>/HEAD"
 
-#: builtin/remote.c:1241
+#: builtin/remote.c:1240
 msgid "Cannot determine remote HEAD"
 msgstr "No es pot determinar el HEAD remot"
 
-#: builtin/remote.c:1243
+#: builtin/remote.c:1242
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr ""
 "Múltiples branques de HEAD remotes. Si us plau, trieu-ne una explícitament "
 "amb:"
 
-#: builtin/remote.c:1253
+#: builtin/remote.c:1252
 #, c-format
 msgid "Could not delete %s"
 msgstr "No s'ha pogut suprimir %s"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1260
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "No és una referència vàlida: %s"
 
-#: builtin/remote.c:1263
+#: builtin/remote.c:1262
 #, c-format
 msgid "Could not setup %s"
 msgstr "No s'ha pogut configurar %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1280
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s es tornarà penjant!"
 
-#: builtin/remote.c:1282
+#: builtin/remote.c:1281
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s s'ha tornat penjant!"
 
-#: builtin/remote.c:1292
+#: builtin/remote.c:1291
 #, c-format
 msgid "Pruning %s"
 msgstr "S'està podant %s"
 
-#: builtin/remote.c:1293
+#: builtin/remote.c:1292
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1309
+#: builtin/remote.c:1308
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [podaria] %s"
 
-#: builtin/remote.c:1312
+#: builtin/remote.c:1311
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [podat] %s"
 
-#: builtin/remote.c:1357
+#: builtin/remote.c:1356
 msgid "prune remotes after fetching"
 msgstr "poda els remots després d'obtenir-los"
 
-#: builtin/remote.c:1420 builtin/remote.c:1474 builtin/remote.c:1542
+#: builtin/remote.c:1419 builtin/remote.c:1473 builtin/remote.c:1541
 #, c-format
 msgid "No such remote '%s'"
 msgstr "No hi ha tal remot '%s'"
 
-#: builtin/remote.c:1436
+#: builtin/remote.c:1435
 msgid "add branch"
 msgstr "afegeix branca"
 
-#: builtin/remote.c:1443
+#: builtin/remote.c:1442
 msgid "no remote specified"
 msgstr "cap remot especificat"
 
-#: builtin/remote.c:1460
+#: builtin/remote.c:1459
 msgid "query push URLs rather than fetch URLs"
-msgstr "consulta els URL de pujada en lloc dels URL d'obteniment"
+msgstr "consulta els URL de pujada en lloc dels URL d'obtenció"
 
-#: builtin/remote.c:1462
+#: builtin/remote.c:1461
 msgid "return all URLs"
 msgstr "retorna tots els URL"
 
-#: builtin/remote.c:1490
+#: builtin/remote.c:1489
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "cap URL configurat per al remot '%s'"
 
-#: builtin/remote.c:1516
+#: builtin/remote.c:1515
 msgid "manipulate push URLs"
 msgstr "manipula els URL de pujada"
 
-#: builtin/remote.c:1518
+#: builtin/remote.c:1517
 msgid "add URL"
 msgstr "afegeix URL"
 
-#: builtin/remote.c:1520
+#: builtin/remote.c:1519
 msgid "delete URLs"
 msgstr "suprimeix URLs"
 
-#: builtin/remote.c:1527
+#: builtin/remote.c:1526
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete no té sentit"
 
-#: builtin/remote.c:1568
+#: builtin/remote.c:1567
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Patró d'URL antic no vàlid: %s"
 
-#: builtin/remote.c:1576
+#: builtin/remote.c:1575
 #, c-format
 msgid "No such URL found: %s"
 msgstr "No s'ha trobat tal URL: %s"
 
-#: builtin/remote.c:1578
+#: builtin/remote.c:1577
 msgid "Will not delete all non-push URLs"
 msgstr "No se suprimiran tots els URL no de pujada"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1591
 msgid "be verbose; must be placed before a subcommand"
 msgstr "sigues detallat; s'ha de col·locar abans d'una subordre"
 
+#: builtin/remote.c:1622
+#, c-format
+msgid "Unknown subcommand: %s"
+msgstr "Subordre desconeguda: %s"
+
 #: builtin/repack.c:17
 msgid "git repack [<options>]"
 msgstr "git repack [<opcions>]"
@@ -11002,8 +11771,8 @@ msgstr ""
 "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<comissió>]"
 
 #: builtin/reset.c:27
-msgid "git reset [-q] <tree-ish> [--] <paths>..."
-msgstr "git reset [-q] <arbre> [--] <camins>..."
+msgid "git reset [-q] [<tree-ish>] [--] <paths>..."
+msgstr "git reset [-q] [<arbre>] [--] <camins>..."
 
 #: builtin/reset.c:28
 msgid "git reset --patch [<tree-ish>] [--] [<paths>...]"
@@ -11123,27 +11892,27 @@ msgstr "No s'ha pogut restablir el fitxer d'índex a la revisió '%s'."
 msgid "Could not write new index file."
 msgstr "No s'ha pogut escriure el fitxer d'índex nou."
 
-#: builtin/rev-list.c:362
+#: builtin/rev-list.c:354
 msgid "rev-list does not support display of notes"
 msgstr "el rev-list no permet mostrar notes"
 
-#: builtin/rev-parse.c:358
+#: builtin/rev-parse.c:386
 msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
 msgstr "git rev-parse --parseopt [<opcions>] -- [<paràmetres>...]"
 
-#: builtin/rev-parse.c:363
+#: builtin/rev-parse.c:391
 msgid "keep the `--` passed as an arg"
 msgstr "retén el `--` passat com a paràmetre"
 
-#: builtin/rev-parse.c:365
+#: builtin/rev-parse.c:393
 msgid "stop parsing after the first non-option argument"
 msgstr "deixa d'analitzar després del primer paràmetre no d'opció"
 
-#: builtin/rev-parse.c:368
+#: builtin/rev-parse.c:396
 msgid "output in stuck long form"
 msgstr "emet en forma llarga enganxada"
 
-#: builtin/rev-parse.c:499
+#: builtin/rev-parse.c:527
 msgid ""
 "git rev-parse --parseopt [<options>] -- [<args>...]\n"
 "   or: git rev-parse --sq-quote [<arg>...]\n"
@@ -11235,7 +12004,7 @@ msgstr "retén les comissions redundants i buides"
 msgid "revert failed"
 msgstr "la reversió ha fallat"
 
-#: builtin/revert.c:207
+#: builtin/revert.c:205
 msgid "cherry-pick failed"
 msgstr "el recull de cireres ha fallat"
 
@@ -11406,70 +12175,125 @@ msgstr ""
 msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
 msgstr "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<referència>]"
 
-#: builtin/show-branch.c:640
+#: builtin/show-branch.c:375
+#, c-format
+msgid "ignoring %s; cannot handle more than %d ref"
+msgid_plural "ignoring %s; cannot handle more than %d refs"
+msgstr[0] "s'està ignorant %s; no es pot gestionar més de %d referència"
+msgstr[1] "s'està ignorant %s; no es poden gestionar més de %d referències"
+
+#: builtin/show-branch.c:541
+#, c-format
+msgid "no matching refs with %s"
+msgstr "no hi ha referències coincidents amb %s"
+
+#: builtin/show-branch.c:639
 msgid "show remote-tracking and local branches"
 msgstr "mostra les branques amb seguiment remot i les locals"
 
-#: builtin/show-branch.c:642
+#: builtin/show-branch.c:641
 msgid "show remote-tracking branches"
 msgstr "mostra les branques amb seguiment remot"
 
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:643
 msgid "color '*!+-' corresponding to the branch"
 msgstr "colora '*!+-' corresponent a la branca"
 
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:645
 msgid "show <n> more commits after the common ancestor"
 msgstr "mostra <n> comissions després de l'avantpassat comú"
 
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:647
 msgid "synonym to more=-1"
 msgstr "sinònim de more=-1"
 
-#: builtin/show-branch.c:649
+#: builtin/show-branch.c:648
 msgid "suppress naming strings"
 msgstr "omet l'anomenament de cadenes"
 
-#: builtin/show-branch.c:651
+#: builtin/show-branch.c:650
 msgid "include the current branch"
 msgstr "inclou la branca actual"
 
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:652
 msgid "name commits with their object names"
 msgstr "anomena les comissions amb els seus noms d'objecte"
 
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:654
 msgid "show possible merge bases"
 msgstr "mostra les bases de fusió possibles"
 
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:656
 msgid "show refs unreachable from any other ref"
 msgstr "mostra les referències inabastables de qualsevulla altra referència"
 
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:658
 msgid "show commits in topological order"
 msgstr "mostra les comissions en ordre topològic"
 
-#: builtin/show-branch.c:662
+#: builtin/show-branch.c:661
 msgid "show only commits not on the first branch"
 msgstr "mostra només les comissions que no siguin en la primera branca"
 
-#: builtin/show-branch.c:664
+#: builtin/show-branch.c:663
 msgid "show merges reachable from only one tip"
 msgstr "mostra les fusions abastables de només una punta"
 
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:665
 msgid "topologically sort, maintaining date order where possible"
 msgstr "ordena topològicament, mantenint l'ordre de dates on sigui possible"
 
-#: builtin/show-branch.c:669
+#: builtin/show-branch.c:668
 msgid "<n>[,<base>]"
 msgstr "<n>[,<base>]"
 
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:669
 msgid "show <n> most recent ref-log entries starting at base"
 msgstr "mostra les <n> entrades més recents començant a la base"
 
+#: builtin/show-branch.c:703
+msgid ""
+"--reflog is incompatible with --all, --remotes, --independent or --merge-base"
+msgstr ""
+"--reflog és incompatible amb --all, --remotes, --independent o --merge-base"
+
+#: builtin/show-branch.c:727
+msgid "no branches given, and HEAD is not valid"
+msgstr "no s'ha donat cap branca, i HEAD no és vàlid"
+
+#: builtin/show-branch.c:730
+msgid "--reflog option needs one branch name"
+msgstr "l'opció --reflog necessita un nom de branca"
+
+#: builtin/show-branch.c:733
+#, c-format
+msgid "only %d entry can be shown at one time."
+msgid_plural "only %d entries can be shown at one time."
+msgstr[0] "es pot mostrar només %d entrada a la vegada."
+msgstr[1] "es poden mostrar només %d entrades a la vegada."
+
+#: builtin/show-branch.c:737
+#, c-format
+msgid "no such ref %s"
+msgstr "no hi ha tal referència %s"
+
+#: builtin/show-branch.c:829
+#, c-format
+msgid "cannot handle more than %d rev."
+msgid_plural "cannot handle more than %d revs."
+msgstr[0] "no es pot gestionar més d'%d revisió."
+msgstr[1] "no es poden gestionar més de %d revisions."
+
+#: builtin/show-branch.c:833
+#, c-format
+msgid "'%s' is not a valid ref."
+msgstr "'%s' no és una referència vàlida."
+
+#: builtin/show-branch.c:836
+#, c-format
+msgid "cannot find commit %s (%s)"
+msgstr "no es pot trobar la comissió %s (%s)"
+
 #: builtin/show-ref.c:10
 msgid ""
 "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
@@ -11533,12 +12357,12 @@ msgstr ""
 msgid "prepend comment character and space to each line"
 msgstr "anteposa el caràcter de comentari i un espai a cada línia"
 
-#: builtin/submodule--helper.c:24 builtin/submodule--helper.c:923
+#: builtin/submodule--helper.c:24 builtin/submodule--helper.c:1046
 #, c-format
 msgid "No such ref: %s"
 msgstr "No hi ha tal referència: %s"
 
-#: builtin/submodule--helper.c:31 builtin/submodule--helper.c:932
+#: builtin/submodule--helper.c:31 builtin/submodule--helper.c:1055
 #, c-format
 msgid "Expecting a full ref name, got %s"
 msgstr "S'espera un nom de referència ple, s'ha rebut %s"
@@ -11548,77 +12372,96 @@ msgstr "S'espera un nom de referència ple, s'ha rebut %s"
 msgid "cannot strip one component off url '%s'"
 msgstr "no es pot despullar un component de l'url '%s'"
 
-#: builtin/submodule--helper.c:278 builtin/submodule--helper.c:403
-#: builtin/submodule--helper.c:483
+#: builtin/submodule--helper.c:282 builtin/submodule--helper.c:408
+#: builtin/submodule--helper.c:590
 msgid "alternative anchor for relative paths"
 msgstr "àncora alternativa per als camins relatius"
 
-#: builtin/submodule--helper.c:283
+#: builtin/submodule--helper.c:287
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<camí>] [<camí>...]"
 
-#: builtin/submodule--helper.c:324 builtin/submodule--helper.c:338
+#: builtin/submodule--helper.c:329 builtin/submodule--helper.c:343
 #, c-format
 msgid "No url found for submodule path '%s' in .gitmodules"
 msgstr "No s'ha trobat cap url per al camí de submòdul '%s' a .gitmodules"
 
-#: builtin/submodule--helper.c:364
+#: builtin/submodule--helper.c:369
 #, c-format
 msgid "Failed to register url for submodule path '%s'"
 msgstr "S'ha fallat en registrar l'url per al camí de submòdul '%s'"
 
-#: builtin/submodule--helper.c:368
+#: builtin/submodule--helper.c:373
 #, c-format
 msgid "Submodule '%s' (%s) registered for path '%s'\n"
 msgstr "S'ha registrat el submòdul '%s' (%s) per al camí '%s'\n"
 
-#: builtin/submodule--helper.c:378
+#: builtin/submodule--helper.c:383
 #, c-format
 msgid "warning: command update mode suggested for submodule '%s'\n"
 msgstr ""
 "advertència: se suggereix el mode d'actualització per ordre per al submòdul "
 "'%s'\n"
 
-#: builtin/submodule--helper.c:385
+#: builtin/submodule--helper.c:390
 #, c-format
 msgid "Failed to register update mode for submodule path '%s'"
 msgstr ""
 "S'ha fallat en registrar el mode d'actualització per al camí de submòdul '%s'"
 
-#: builtin/submodule--helper.c:404
+#: builtin/submodule--helper.c:409
 msgid "Suppress output for initializing a submodule"
 msgstr "Omet la sortida d'inicialitzar un submòdul"
 
-#: builtin/submodule--helper.c:409
+#: builtin/submodule--helper.c:414
 msgid "git submodule--helper init [<path>]"
 msgstr "git submodule--helper init [<camí>]"
 
-#: builtin/submodule--helper.c:430
+#: builtin/submodule--helper.c:435
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <camí>"
 
-#: builtin/submodule--helper.c:436
+#: builtin/submodule--helper.c:441
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "No s'ha trobat cap mapatge de submòdul a .gitmodules per al camí '%s'"
 
-#: builtin/submodule--helper.c:486
+#: builtin/submodule--helper.c:524 builtin/submodule--helper.c:527
+#, c-format
+msgid "submodule '%s' cannot add alternate: %s"
+msgstr "el submòdul '%s' no pot afegir un alternatiu: %s"
+
+#: builtin/submodule--helper.c:563
+#, c-format
+msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
+msgstr "No es reconeix el valor '%s' per a submodule.alternateErrorStrategy"
+
+#: builtin/submodule--helper.c:570
+#, c-format
+msgid "Value '%s' for submodule.alternateLocation is not recognized"
+msgstr "No es reconeix el valor '%s' per a submodule.alternateLocation"
+
+#: builtin/submodule--helper.c:593
 msgid "where the new submodule will be cloned to"
 msgstr "a on es clonarà el submòdul nou"
 
-#: builtin/submodule--helper.c:489
+#: builtin/submodule--helper.c:596
 msgid "name of the new submodule"
 msgstr "nom del submòdul nou"
 
-#: builtin/submodule--helper.c:492
+#: builtin/submodule--helper.c:599
 msgid "url where to clone the submodule from"
 msgstr "url del qual clonar el submòdul"
 
-#: builtin/submodule--helper.c:498
+#: builtin/submodule--helper.c:605
 msgid "depth for shallow clones"
 msgstr "profunditat dels clons superficials"
 
-#: builtin/submodule--helper.c:504
+#: builtin/submodule--helper.c:608 builtin/submodule--helper.c:964
+msgid "force cloning progress"
+msgstr "força el progrés del clonatge"
+
+#: builtin/submodule--helper.c:613
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--depth <depth>] --url <url> --path <path>"
@@ -11626,97 +12469,97 @@ msgstr ""
 "git submodule--helper clone [--prefix=<camí>] [--quiet] [--reference "
 "<dipòsit>] [--name <nom>] [--depth <profunditat>] --url <url> --path <camí>"
 
-#: builtin/submodule--helper.c:529 builtin/submodule--helper.c:535
+#: builtin/submodule--helper.c:638 builtin/submodule--helper.c:648
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "no s'ha pogut crear el directori '%s'"
 
-#: builtin/submodule--helper.c:531
+#: builtin/submodule--helper.c:644
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "el clonatge de '%s' al camí de submòdul '%s' ha fallat"
 
-#: builtin/submodule--helper.c:547
+#: builtin/submodule--helper.c:660
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "no es pot obrir el fitxer '%s'"
 
-#: builtin/submodule--helper.c:552
+#: builtin/submodule--helper.c:665
 #, c-format
 msgid "could not close file %s"
 msgstr "no s'ha pogut tancar el fitxer %s"
 
-#: builtin/submodule--helper.c:559
+#: builtin/submodule--helper.c:672
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "no s'ha pogut obtenir el directori de submòdul per a '%s'"
 
-#: builtin/submodule--helper.c:611
+#: builtin/submodule--helper.c:726
 #, c-format
 msgid "Submodule path '%s' not initialized"
 msgstr "El camí de submòdul '%s' no està inicialitzat"
 
-#: builtin/submodule--helper.c:615
+#: builtin/submodule--helper.c:730
 msgid "Maybe you want to use 'update --init'?"
 msgstr "Potser voleu usar 'update --init'?"
 
-#: builtin/submodule--helper.c:641
+#: builtin/submodule--helper.c:756
 #, c-format
 msgid "Skipping unmerged submodule %s"
 msgstr "S'està saltant el submòdul no fusionat %s"
 
-#: builtin/submodule--helper.c:662
+#: builtin/submodule--helper.c:777
 #, c-format
 msgid "Skipping submodule '%s'"
 msgstr "S'està saltant el submòdul '%s'"
 
-#: builtin/submodule--helper.c:792
+#: builtin/submodule--helper.c:913
 #, c-format
 msgid "Failed to clone '%s'. Retry scheduled"
 msgstr "S'ha fallat en clonar '%s'. S'ha programat un reintent"
 
-#: builtin/submodule--helper.c:803
+#: builtin/submodule--helper.c:924
 #, c-format
 msgid "Failed to clone '%s' a second time, aborting"
 msgstr "S'ha fallat una segona vegada en clonar '%s', s'està avortant"
 
-#: builtin/submodule--helper.c:824
+#: builtin/submodule--helper.c:945
 msgid "path into the working tree"
 msgstr "camí a l'arbre de treball"
 
-#: builtin/submodule--helper.c:827
+#: builtin/submodule--helper.c:948
 msgid "path into the working tree, across nested submodule boundaries"
 msgstr "camí a l'arbre de treball, a través de fronteres de submòduls niats"
 
-#: builtin/submodule--helper.c:831
+#: builtin/submodule--helper.c:952
 msgid "rebase, merge, checkout or none"
 msgstr "rebase, merge, checkout o none"
 
-#: builtin/submodule--helper.c:835
+#: builtin/submodule--helper.c:956
 msgid "Create a shallow clone truncated to the specified number of revisions"
 msgstr "Crea un clon superficial truncat al nombre de revisions especificat"
 
-#: builtin/submodule--helper.c:838
+#: builtin/submodule--helper.c:959
 msgid "parallel jobs"
 msgstr "tasques paral·leles"
 
-#: builtin/submodule--helper.c:840
+#: builtin/submodule--helper.c:961
 msgid "whether the initial clone should follow the shallow recommendation"
 msgstr "si el clonatge inicial ha de seguir la recomanació de superficialitat"
 
-#: builtin/submodule--helper.c:841
+#: builtin/submodule--helper.c:962
 msgid "don't print cloning progress"
 msgstr "no imprimeixis el progrés del clonatge"
 
-#: builtin/submodule--helper.c:846
+#: builtin/submodule--helper.c:969
 msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper update_clone [--prefix=<camí>] [<camí>...]"
 
-#: builtin/submodule--helper.c:856
+#: builtin/submodule--helper.c:979
 msgid "bad value for update parameter"
 msgstr "valor dolent per al paràmetre update"
 
-#: builtin/submodule--helper.c:927
+#: builtin/submodule--helper.c:1050
 #, c-format
 msgid ""
 "Submodule (%s) branch configured to inherit branch from superproject, but "
@@ -11725,11 +12568,11 @@ msgstr ""
 "La branca de submòdul (%s) està configurada per a heretar la branca del "
 "superprojecte, però el superprojecte no és en cap branca"
 
-#: builtin/submodule--helper.c:977
+#: builtin/submodule--helper.c:1100
 msgid "submodule--helper subcommand must be called with a subcommand"
 msgstr "s'ha d'executar la subordre submodule--helper amb una subordre"
 
-#: builtin/submodule--helper.c:984
+#: builtin/submodule--helper.c:1107
 #, c-format
 msgid "'%s' is not a valid submodule--helper subcommand"
 msgstr "'%s' no és una subordre vàlida de submodule--helper"
@@ -11966,7 +12809,7 @@ msgstr "l'etiqueta '%s' ja existeix"
 msgid "Updated tag '%s' (was %s)\n"
 msgstr "Etiqueta '%s' actualitzada (era %s)\n"
 
-#: builtin/unpack-objects.c:490
+#: builtin/unpack-objects.c:493
 msgid "Unpacking objects"
 msgstr "S'estan desempaquetant els objectes"
 
@@ -12035,136 +12878,152 @@ msgstr ""
 msgid " OK"
 msgstr " D'acord"
 
-#: builtin/update-index.c:575
+#: builtin/update-index.c:564
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<opcions>] [--] [<fitxer>...]"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:919
 msgid "continue refresh even when index needs update"
 msgstr ""
 "continua l'actualització encara que l'índex necessiti una actualització"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:922
 msgid "refresh: ignore submodules"
 msgstr "actualitza: ignora els submòduls"
 
-#: builtin/update-index.c:936
+#: builtin/update-index.c:925
 msgid "do not ignore new files"
 msgstr "no ignoris els fitxers nous"
 
-#: builtin/update-index.c:938
+#: builtin/update-index.c:927
 msgid "let files replace directories and vice-versa"
 msgstr "deixa que els fitxers reemplacin els directoris i viceversa"
 
-#: builtin/update-index.c:940
+#: builtin/update-index.c:929
 msgid "notice files missing from worktree"
 msgstr "tingues en compte els fitxers absents de l'arbre de treball"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:931
 msgid "refresh even if index contains unmerged entries"
 msgstr "actualitza encara que l'índex contingui entrades no fusionades"
 
-#: builtin/update-index.c:945
+#: builtin/update-index.c:934
 msgid "refresh stat information"
 msgstr "actualitza la informació d'estadístiques"
 
-#: builtin/update-index.c:949
+#: builtin/update-index.c:938
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "com --refresh, però ignora l'ajust assume-unchanged"
 
-#: builtin/update-index.c:953
+#: builtin/update-index.c:942
 msgid "<mode>,<object>,<path>"
 msgstr "<mode>,<objecte>,<camí>"
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:943
 msgid "add the specified entry to the index"
 msgstr "afegeix l'entrada especificada a l'índex"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:952
 msgid "mark files as \"not changing\""
 msgstr "marca els fitxers com a \"no canviant\""
 
-#: builtin/update-index.c:966
+#: builtin/update-index.c:955
 msgid "clear assumed-unchanged bit"
 msgstr "neteja el bit assumed-unchanged"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:958
 msgid "mark files as \"index-only\""
 msgstr "marca els fitxers com a \"només índex\""
 
-#: builtin/update-index.c:972
+#: builtin/update-index.c:961
 msgid "clear skip-worktree bit"
 msgstr "neteja el bit skip-worktree"
 
-#: builtin/update-index.c:975
+#: builtin/update-index.c:964
 msgid "add to index only; do not add content to object database"
 msgstr ""
 "només afegeix a l'índex; no afegeixis el contingut a la base de dades "
 "d'objectes"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:966
 msgid "remove named paths even if present in worktree"
 msgstr ""
 "elimina els camins anomenats encara que estiguin presents en l'arbre de "
 "treball"
 
-#: builtin/update-index.c:979
+#: builtin/update-index.c:968
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "amb --stdin: les línies d'entrada acaben amb octets nuls"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:970
 msgid "read list of paths to be updated from standard input"
 msgstr "llegeix la llista de camins a actualitzar des de l'entrada estàndard"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:974
 msgid "add entries from standard input to the index"
 msgstr "afegeix les entrades de l'entrada estàndard a l'índex"
 
-#: builtin/update-index.c:989
+#: builtin/update-index.c:978
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "reemplena les etapes #2 i #3 per als camins llistats"
 
-#: builtin/update-index.c:993
+#: builtin/update-index.c:982
 msgid "only update entries that differ from HEAD"
 msgstr "només actualitza les entrades que difereixin de HEAD"
 
-#: builtin/update-index.c:997
+#: builtin/update-index.c:986
 msgid "ignore files missing from worktree"
 msgstr "ignora els fitxers absents de l'arbre de treball"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:989
 msgid "report actions to standard output"
 msgstr "informa de les accions en la sortida estàndard"
 
-#: builtin/update-index.c:1002
+#: builtin/update-index.c:991
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(per a porcellanes) oblida't dels conflictes no resolts ni desats"
 
-#: builtin/update-index.c:1006
+#: builtin/update-index.c:995
 msgid "write index in this format"
 msgstr "escriu l'índex en aquest format"
 
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:997
 msgid "enable or disable split index"
 msgstr "habilita o inhabilita l'índex dividit"
 
-#: builtin/update-index.c:1010
+#: builtin/update-index.c:999
 msgid "enable/disable untracked cache"
 msgstr "habilita/inhabilita la memòria cau no seguida"
 
-#: builtin/update-index.c:1012
+#: builtin/update-index.c:1001
 msgid "test if the filesystem supports untracked cache"
 msgstr "prova si el sistema de fitxers admet la memòria cau no seguida"
 
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1003
 msgid "enable untracked cache without testing the filesystem"
 msgstr "habilita la memòria cau no seguida sense provar el sistema de fitxers"
 
-#: builtin/update-index.c:1134
+#: builtin/update-index.c:1119
+msgid ""
+"core.untrackedCache is set to true; remove or change it, if you really want "
+"to disable the untracked cache"
+msgstr ""
+"core.untrackedCache està establert a veritable; elimineu-lo o canvieu-lo, si "
+"realment voleu inhabilitar el cau no seguit"
+
+#: builtin/update-index.c:1123
 msgid "Untracked cache disabled"
 msgstr "La memòria cau no seguida està inhabilitada"
 
-#: builtin/update-index.c:1146
+#: builtin/update-index.c:1131
+msgid ""
+"core.untrackedCache is set to false; remove or change it, if you really want "
+"to enable the untracked cache"
+msgstr ""
+"core.untrackedCache està establert a fals; elimineu-lo o canviar-lo, si "
+"realment voleu habilitar el cau no seguit"
+
+#: builtin/update-index.c:1135
 #, c-format
 msgid "Untracked cache enabled for '%s'"
 msgstr "La memòria cau no seguida està habilitada per a '%s'"
@@ -12364,27 +13223,41 @@ msgstr "escriu l'objecte d'arbre per a un subdirectori <prefix>"
 msgid "only useful for debugging"
 msgstr "només útil per a la depuració"
 
-#: upload-pack.c:20
+#: upload-pack.c:22
 msgid "git upload-pack [<options>] <dir>"
 msgstr "git upload-pack [<opcions>] <directori>"
 
-#: upload-pack.c:837
+#: upload-pack.c:1028
 msgid "quit after a single request/response exchange"
 msgstr "surt després d'un sol intercanvi de sol·licitud/resposta"
 
-#: upload-pack.c:839
+#: upload-pack.c:1030
 msgid "exit immediately after initial ref advertisement"
 msgstr "surt immediatament després del anunci inicial de referència"
 
-#: upload-pack.c:841
+#: upload-pack.c:1032
 msgid "do not try <directory>/.git/ if <directory> is no Git directory"
 msgstr ""
 "no intentis <directori>/.git/ si <directori> no és cap directori del Git"
 
-#: upload-pack.c:843
+#: upload-pack.c:1034
 msgid "interrupt transfer after <n> seconds of inactivity"
 msgstr "interromp la transferència després de <n> segons d'inactivitat"
 
+#: credential-cache--daemon.c:223
+#, c-format
+msgid ""
+"The permissions on your socket directory are too loose; other\n"
+"users may be able to read your cached credentials. Consider running:\n"
+"\n"
+"\tchmod 0700 %s"
+msgstr ""
+"Els permisos en el vostre directori de sòcol són massa liberals;\n"
+"potser que altres usuaris poden llegir els vostres credencials.\n"
+"Considereu executar:\n"
+"\n"
+"\tchmod 0700 %s"
+
 #: credential-cache--daemon.c:271
 msgid "print debugging messages to stderr"
 msgstr "imprimeix els missatges de depuració a stderr"
@@ -12400,7 +13273,11 @@ msgstr ""
 "'git help <concepte>' per a llegir sobre una subordre o concepte\n"
 "específic."
 
-#: http.c:323
+#: http.c:342
+msgid "Delegation control is not supported with cURL < 7.22.0"
+msgstr "No s'admet el control de delegació amb el cURL < 7.22.0"
+
+#: http.c:351
 msgid "Public key pinning not supported with cURL < 7.44.0"
 msgstr "No s'admet l'enganx de clau pública amb cURL < 7.44.0"
 
@@ -12519,15 +13396,15 @@ msgstr "data-de-caducitat"
 msgid "no-op (backward compatibility)"
 msgstr "operació nul·la (per a compatibilitat amb versions anteriors)"
 
-#: parse-options.h:237
+#: parse-options.h:238
 msgid "be more verbose"
 msgstr "sigues més detallat"
 
-#: parse-options.h:239
+#: parse-options.h:240
 msgid "be more quiet"
 msgstr "sigues més callat"
 
-#: parse-options.h:245
+#: parse-options.h:246
 msgid "use <n> digits to display SHA-1s"
 msgstr "usa <n> xifres per presentar els SHA-1"
 
@@ -12747,7 +13624,7 @@ msgid "Automated merge did not work."
 msgstr "La fusió automàtica no ha funcionat."
 
 #: git-merge-octopus.sh:62
-msgid "Should not be doing an Octopus."
+msgid "Should not be doing an octopus."
 msgstr "No s'ha de fer un pop."
 
 #: git-merge-octopus.sh:73
@@ -12938,6 +13815,10 @@ msgstr "Encara no teniu la comissió inicial"
 msgid "Cannot save the current index state"
 msgstr "No es pot desar l'estat d'índex actual"
 
+#: git-stash.sh:103
+msgid "Cannot save the untracked files"
+msgstr "No es pot desar els fitxers no seguits"
+
 #: git-stash.sh:123 git-stash.sh:136
 msgid "Cannot save the current worktree state"
 msgstr "No es pot desar l'estat d'arbre de treball actual"
@@ -12978,6 +13859,10 @@ msgstr ""
 "error: opció desconeguda de 'stash save': $option\n"
 "       Per a proveir un missatge, useu git stash save -- '$option'"
 
+#: git-stash.sh:251
+msgid "Can't use --patch and --include-untracked or --all at the same time"
+msgstr "No es poden usar --patch i --include-untracked o --all a la vegada."
+
 #: git-stash.sh:259
 msgid "No local changes to save"
 msgstr "No hi ha canvis locals a desar"
@@ -12999,98 +13884,102 @@ msgstr "S'han desat el directori de treball i l'estat d'ìndex $stash_msg"
 msgid "Cannot remove worktree changes"
 msgstr "No es pot eliminar els canvis de l'arbre de treball"
 
-#: git-stash.sh:404
+#: git-stash.sh:403
 #, sh-format
 msgid "unknown option: $opt"
 msgstr "opció desconeguda: $opt"
 
-#: git-stash.sh:414
+#: git-stash.sh:416
 msgid "No stash found."
 msgstr "No s'ha trobat cap magatzem."
 
-#: git-stash.sh:421
+#: git-stash.sh:423
 #, sh-format
 msgid "Too many revisions specified: $REV"
 msgstr "S'han especificat massa revisions: $REV"
 
-#: git-stash.sh:427
+#: git-stash.sh:438
 #, sh-format
 msgid "$reference is not a valid reference"
 msgstr "$reference no és una referència vàlida"
 
-#: git-stash.sh:455
+#: git-stash.sh:466
 #, sh-format
 msgid "'$args' is not a stash-like commit"
 msgstr "'$args' no és una comissió de tipus magatzem"
 
-#: git-stash.sh:466
+#: git-stash.sh:477
 #, sh-format
 msgid "'$args' is not a stash reference"
 msgstr "'$args' no és una referència de magatzem"
 
-#: git-stash.sh:474
+#: git-stash.sh:485
 msgid "unable to refresh index"
 msgstr "no s'ha pogut actualitzar l'índex"
 
-#: git-stash.sh:478
+#: git-stash.sh:489
 msgid "Cannot apply a stash in the middle of a merge"
 msgstr "No es pot aplicar un magatzem enmig d'una fusió"
 
-#: git-stash.sh:486
+#: git-stash.sh:497
 msgid "Conflicts in index. Try without --index."
 msgstr "Hi ha conflictes en l'índex. Proveu-ho sense --index."
 
-#: git-stash.sh:488
+#: git-stash.sh:499
 msgid "Could not save index tree"
 msgstr "No s'ha pogut desar l'arbre d'índex"
 
-#: git-stash.sh:522
+#: git-stash.sh:508
+msgid "Could not restore untracked files from stash"
+msgstr "No s'ha pogut restaurar els fitxers no seguits des d'emmagatzematge"
+
+#: git-stash.sh:533
 msgid "Cannot unstage modified files"
 msgstr "No es pot desallistar fitxers modificats"
 
-#: git-stash.sh:537
+#: git-stash.sh:548
 msgid "Index was not unstashed."
 msgstr "L'índex no estava sense emmagatzemar."
 
-#: git-stash.sh:551
+#: git-stash.sh:562
 msgid "The stash is kept in case you need it again."
 msgstr "Es conserva el magatzem en cas de que el necessiteu altra vegada."
 
-#: git-stash.sh:560
+#: git-stash.sh:571
 #, sh-format
 msgid "Dropped ${REV} ($s)"
 msgstr "${REV} ($s) descartada"
 
-#: git-stash.sh:561
+#: git-stash.sh:572
 #, sh-format
 msgid "${REV}: Could not drop stash entry"
 msgstr "${REV}: No s'ha pogut descartar l'entrada de magatzem"
 
-#: git-stash.sh:569
+#: git-stash.sh:580
 msgid "No branch name specified"
 msgstr "Cap nom de branca especificat"
 
-#: git-stash.sh:641
+#: git-stash.sh:652
 msgid "(To restore them type \"git stash apply\")"
 msgstr "(Per restaurar-les teclegeu \"git stash apply\")"
 
-#: git-submodule.sh:183
+#: git-submodule.sh:184
 msgid "Relative path can only be used from the toplevel of the working tree"
 msgstr ""
 "El camí relatiu només es pot usar des del nivell superior de l'arbre de "
 "treball"
 
-#: git-submodule.sh:193
+#: git-submodule.sh:194
 #, sh-format
 msgid "repo URL: '$repo' must be absolute or begin with ./|../"
 msgstr "URL de dipòsit: '$repo' ha de ser absolut o començar amb ./|../"
 
-#: git-submodule.sh:210
+#: git-submodule.sh:211
 #, sh-format
 msgid "'$sm_path' already exists in the index"
 msgstr "'$sm_path' ja existeix en l'índex"
 
-#: git-submodule.sh:214
+#: git-submodule.sh:215
 #, sh-format
 msgid ""
 "The following path is ignored by one of your .gitignore files:\n"
@@ -13101,23 +13990,23 @@ msgstr ""
 "$sm_path\n"
 "Useu -f si realment voleu afegir-lo."
 
-#: git-submodule.sh:232
+#: git-submodule.sh:233
 #, sh-format
 msgid "Adding existing repo at '$sm_path' to the index"
 msgstr "S'està afegint el dipòsit existent a '$sm_path' a l'índex"
 
-#: git-submodule.sh:234
+#: git-submodule.sh:235
 #, sh-format
 msgid "'$sm_path' already exists and is not a valid git repo"
 msgstr "'$sm_path' ja existeix i no és un dipòsit de git vàlid"
 
-#: git-submodule.sh:242
+#: git-submodule.sh:243
 #, sh-format
 msgid "A git directory for '$sm_name' is found locally with remote(s):"
 msgstr ""
 "Es troba un directori de git per a '$sm_name' localment amb els remots:"
 
-#: git-submodule.sh:244
+#: git-submodule.sh:245
 #, sh-format
 msgid ""
 "If you want to reuse this local git directory instead of cloning again from\n"
@@ -13134,49 +14023,49 @@ msgstr ""
 "o no esteu segur de què vol dir això, trieu un altre nom amb l'opció '--"
 "name'."
 
-#: git-submodule.sh:250
+#: git-submodule.sh:251
 #, sh-format
 msgid "Reactivating local git directory for submodule '$sm_name'."
 msgstr ""
 "S'està reactivant el directori de git local per al submòdul '$sm_name'."
 
-#: git-submodule.sh:262
+#: git-submodule.sh:263
 #, sh-format
 msgid "Unable to checkout submodule '$sm_path'"
 msgstr "no s'ha pogut agafar el submòdul '$sm_path'"
 
-#: git-submodule.sh:267
+#: git-submodule.sh:268
 #, sh-format
 msgid "Failed to add submodule '$sm_path'"
 msgstr "S'ha fallat en afegir el submòdul '$sm_path'"
 
-#: git-submodule.sh:276
+#: git-submodule.sh:277
 #, sh-format
 msgid "Failed to register submodule '$sm_path'"
 msgstr "S'ha fallat en registrar el submòdul '$sm_path'"
 
-#: git-submodule.sh:323
+#: git-submodule.sh:324
 #, sh-format
 msgid "Entering '$displaypath'"
 msgstr "S'està entrant '$displaypath'"
 
-#: git-submodule.sh:343
+#: git-submodule.sh:344
 #, sh-format
 msgid "Stopping at '$displaypath'; script returned non-zero status."
 msgstr ""
 "S'està aturant a '$displaypath'; l'script ha retornat un estat no zero."
 
-#: git-submodule.sh:414
+#: git-submodule.sh:415
 #, sh-format
 msgid "pathspec and --all are incompatible"
 msgstr "--pathspec i --all són incompatibles"
 
-#: git-submodule.sh:419
+#: git-submodule.sh:420
 #, sh-format
 msgid "Use '--all' if you really want to deinitialize all submodules"
 msgstr "Useu '--all' si realment voleu desinicialitzar tots els submòduls"
 
-#: git-submodule.sh:439
+#: git-submodule.sh:440
 #, sh-format
 msgid ""
 "Submodule work tree '$displaypath' contains a .git directory\n"
@@ -13185,7 +14074,7 @@ msgstr ""
 "L'arbre de treball de submòdul '$displaypath' conté un directori .git\n"
 "(useu 'rm -rf' si realment voleu eliminar-lo, incloent tota la seva història)"
 
-#: git-submodule.sh:447
+#: git-submodule.sh:448
 #, sh-format
 msgid ""
 "Submodule work tree '$displaypath' contains local modifications; use '-f' to "
@@ -13194,38 +14083,38 @@ msgstr ""
 "L'arbre de treball de submòdul '$displaypath' conté modificacions locals; "
 "useu '-f' per a descartar-les"
 
-#: git-submodule.sh:450
+#: git-submodule.sh:451
 #, sh-format
 msgid "Cleared directory '$displaypath'"
 msgstr "S'ha netejat el directori '$displaypath'"
 
-#: git-submodule.sh:451
+#: git-submodule.sh:452
 #, sh-format
 msgid "Could not remove submodule work tree '$displaypath'"
 msgstr "No s'ha pogut eliminar l'arbre de treball de submòdul '$displaypath'"
 
-#: git-submodule.sh:454
+#: git-submodule.sh:455
 #, sh-format
 msgid "Could not create empty submodule directory '$displaypath'"
 msgstr "No s'ha pogut crear el directori de submòdul buit '$displaypath'"
 
-#: git-submodule.sh:463
+#: git-submodule.sh:464
 #, sh-format
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr "Submòdul '$name' ($url) no registrat per al camí '$displaypath'"
 
-#: git-submodule.sh:612
+#: git-submodule.sh:617
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr ""
 "No s'ha pogut trobar la revisió actual en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:622
+#: git-submodule.sh:627
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "No s'ha pogut obtenir en el camí de submòdul '$sm_path'"
 
-#: git-submodule.sh:627
+#: git-submodule.sh:632
 #, sh-format
 msgid ""
 "Unable to find current ${remote_name}/${branch} revision in submodule path "
@@ -13234,101 +14123,97 @@ msgstr ""
 "No s'ha pogut trobar la revisió actual de ${remote_name}/${branch} en el "
 "camí de submòdul '$sm_path'"
 
-#: git-submodule.sh:645
+#: git-submodule.sh:650
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "No s'ha pogut obtenir en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:651
+#: git-submodule.sh:656
 #, sh-format
 msgid ""
 "Fetched in submodule path '$displaypath', but it did not contain $sha1. "
 "Direct fetching of that commit failed."
 msgstr ""
 "S'ha obtingut en el camí de submòdul '$displaypath', però no contenia $sha1. "
-"L'obteniment directe d'aquella comissió ha fallat."
+"L'obtenció directa d'aquella comissió ha fallat."
 
-#: git-submodule.sh:658
+#: git-submodule.sh:663
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "No s'ha pogut agafar '$sha1' en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:659
+#: git-submodule.sh:664
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Camí de submòdul '$displaypath': s'ha agafat '$sha1'"
 
-#: git-submodule.sh:663
+#: git-submodule.sh:668
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "no s'ha pogut rebasar '$sha1' en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:664
+#: git-submodule.sh:669
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Camí de submòdul '$displaypath': s'ha rebasat en '$sha1'"
 
-#: git-submodule.sh:669
+#: git-submodule.sh:674
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "No s'ha pogut fusionar '$sha1' en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:670
+#: git-submodule.sh:675
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Camí de submòdul '$displaypath': s'ha fusionat en '$sha1'"
 
-#: git-submodule.sh:675
+#: git-submodule.sh:680
 #, sh-format
 msgid "Execution of '$command $sha1' failed in submodule path '$displaypath'"
 msgstr ""
 "L'execució de '$command $sha1' ha fallat en el camí de submòdul "
 "'$displaypath'"
 
-#: git-submodule.sh:676
+#: git-submodule.sh:681
 #, sh-format
 msgid "Submodule path '$displaypath': '$command $sha1'"
 msgstr "Camí de submòdul '$displaypath': '$command $sha1'"
 
-#: git-submodule.sh:707
+#: git-submodule.sh:712
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "S'ha fallat en recursar al camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:815
+#: git-submodule.sh:820
 msgid "The --cached option cannot be used with the --files option"
 msgstr "L'opció --cached no es pot usar amb l'opció --files"
 
-#: git-submodule.sh:867
+#: git-submodule.sh:872
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "mode inesperat $mod_dst"
 
-#: git-submodule.sh:887
+#: git-submodule.sh:892
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Avís: $display_name no conté la comissió $sha1_src"
 
-#: git-submodule.sh:890
+#: git-submodule.sh:895
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Avís: $display_name no conté la comissió $sha1_dst"
 
-#: git-submodule.sh:893
+#: git-submodule.sh:898
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr "  Avís: $display_name no conté les comissions $sha1_src i $sha1_dst"
 
-#: git-submodule.sh:918
-msgid "blob"
-msgstr "blob"
-
-#: git-submodule.sh:1040
+#: git-submodule.sh:1045
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "S'ha fallat en recursar al camí de submòdul '$sm_path'"
 
-#: git-submodule.sh:1107
+#: git-submodule.sh:1112
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "S'està sincronitzant l'url de submòdul per a '$displaypath'"
@@ -13338,12 +14223,12 @@ msgstr "S'està sincronitzant l'url de submòdul per a '$displaypath'"
 msgid "See git-${cmd}(1) for details."
 msgstr "Vegeu git-${cmd}(1) per detalls."
 
-#: git-rebase--interactive.sh:131
+#: git-rebase--interactive.sh:140
 #, sh-format
 msgid "Rebasing ($new_count/$total)"
 msgstr "S'està rebasant ($new_count/$total)"
 
-#: git-rebase--interactive.sh:147
+#: git-rebase--interactive.sh:156
 msgid ""
 "\n"
 "Commands:\n"
@@ -13371,7 +14256,7 @@ msgstr ""
 "\n"
 "Es pot canviar l'ordre d'aquestes línies; s'executen de dalt a baix.\n"
 
-#: git-rebase--interactive.sh:162
+#: git-rebase--interactive.sh:171
 msgid ""
 "\n"
 "Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
@@ -13380,7 +14265,7 @@ msgstr ""
 "No elimineu cap línia. Useu 'drop' explícitament per a eliminar una "
 "comissió.\n"
 
-#: git-rebase--interactive.sh:166
+#: git-rebase--interactive.sh:175
 msgid ""
 "\n"
 "If you remove a line here THAT COMMIT WILL BE LOST.\n"
@@ -13388,7 +14273,7 @@ msgstr ""
 "\n"
 "Si elimineu una línia aquí, ES PERDRÀ AQUELLA COMISSIÓ.\n"
 
-#: git-rebase--interactive.sh:202
+#: git-rebase--interactive.sh:211
 #, sh-format
 msgid ""
 "You can amend the commit now, with\n"
@@ -13407,87 +14292,87 @@ msgstr ""
 "\n"
 "\tgit rebase --continue"
 
-#: git-rebase--interactive.sh:227
+#: git-rebase--interactive.sh:236
 #, sh-format
 msgid "$sha1: not a commit that can be picked"
 msgstr "$sha1: no és una comissió que es pugi escollir"
 
-#: git-rebase--interactive.sh:266
+#: git-rebase--interactive.sh:275
 #, sh-format
 msgid "Invalid commit name: $sha1"
 msgstr "Nom de comissió no vàlid: $sha1"
 
-#: git-rebase--interactive.sh:308
+#: git-rebase--interactive.sh:317
 msgid "Cannot write current commit's replacement sha1"
 msgstr "No es pot escriure el sha1 reemplaçant de la comissió actual"
 
-#: git-rebase--interactive.sh:360
+#: git-rebase--interactive.sh:369
 #, sh-format
 msgid "Fast-forward to $sha1"
 msgstr "Avanç ràpid a $sha1"
 
-#: git-rebase--interactive.sh:362
+#: git-rebase--interactive.sh:371
 #, sh-format
 msgid "Cannot fast-forward to $sha1"
 msgstr "No es pot avançar ràpidament a $sha1"
 
-#: git-rebase--interactive.sh:371
+#: git-rebase--interactive.sh:380
 #, sh-format
 msgid "Cannot move HEAD to $first_parent"
 msgstr "No es pot moure HEAD a $first_parent"
 
-#: git-rebase--interactive.sh:376
+#: git-rebase--interactive.sh:385
 #, sh-format
 msgid "Refusing to squash a merge: $sha1"
 msgstr "S'està refusant aixafar una fusió: $sha1"
 
-#: git-rebase--interactive.sh:390
+#: git-rebase--interactive.sh:399
 #, sh-format
 msgid "Error redoing merge $sha1"
 msgstr "Error en refer la fusió $sha1"
 
-#: git-rebase--interactive.sh:398
+#: git-rebase--interactive.sh:407
 #, sh-format
 msgid "Could not pick $sha1"
 msgstr "No s'ha pogut escollir $sha1"
 
-#: git-rebase--interactive.sh:407
+#: git-rebase--interactive.sh:416
 #, sh-format
 msgid "This is the commit message #${n}:"
 msgstr "Aquest és el missatge de comissió núm. ${n}:"
 
-#: git-rebase--interactive.sh:412
+#: git-rebase--interactive.sh:421
 #, sh-format
 msgid "The commit message #${n} will be skipped:"
 msgstr "El missatge de comissió núm. ${n} se saltarà:"
 
-#: git-rebase--interactive.sh:423
+#: git-rebase--interactive.sh:432
 #, sh-format
 msgid "This is a combination of $count commit."
 msgid_plural "This is a combination of $count commits."
 msgstr[0] "Això és una combinació de $count comissió."
 msgstr[1] "Això és una combinació de $count comissions."
 
-#: git-rebase--interactive.sh:431
+#: git-rebase--interactive.sh:440
 #, sh-format
 msgid "Cannot write $fixup_msg"
 msgstr "No es pot escriure $fixup_msg"
 
-#: git-rebase--interactive.sh:434
+#: git-rebase--interactive.sh:443
 msgid "This is a combination of 2 commits."
 msgstr "Això és una combinació de 2 comissions."
 
-#: git-rebase--interactive.sh:435
+#: git-rebase--interactive.sh:444
 msgid "This is the 1st commit message:"
 msgstr "Aquest és el 1er missatge de comissió:"
 
-#: git-rebase--interactive.sh:475 git-rebase--interactive.sh:518
-#: git-rebase--interactive.sh:521
+#: git-rebase--interactive.sh:484 git-rebase--interactive.sh:527
+#: git-rebase--interactive.sh:530
 #, sh-format
 msgid "Could not apply $sha1... $rest"
 msgstr "No s'ha pogut aplicar $sha1... $rest"
 
-#: git-rebase--interactive.sh:549
+#: git-rebase--interactive.sh:558
 #, sh-format
 msgid ""
 "Could not amend commit after successfully picking $sha1... $rest\n"
@@ -13503,31 +14388,31 @@ msgstr ""
 "necessiteu resoldre el problema abans que pugueu canviar el missatge de\n"
 "comissió."
 
-#: git-rebase--interactive.sh:564
+#: git-rebase--interactive.sh:573
 #, sh-format
 msgid "Stopped at $sha1_abbrev... $rest"
 msgstr "S'ha aturat a $sha1_abbrev... $rest"
 
-#: git-rebase--interactive.sh:579
+#: git-rebase--interactive.sh:588
 #, sh-format
 msgid "Cannot '$squash_style' without a previous commit"
 msgstr "No es pot '$squash_style' sense una comissió prèvia"
 
-#: git-rebase--interactive.sh:621
+#: git-rebase--interactive.sh:630
 #, sh-format
 msgid "Executing: $rest"
 msgstr "S'està executant: $rest"
 
-#: git-rebase--interactive.sh:629
+#: git-rebase--interactive.sh:638
 #, sh-format
 msgid "Execution failed: $rest"
 msgstr "L'execució ha fallat: $rest"
 
-#: git-rebase--interactive.sh:631
+#: git-rebase--interactive.sh:640
 msgid "and made changes to the index and/or the working tree"
 msgstr "i ha fet canvis a l'índex o l'arbre de treball"
 
-#: git-rebase--interactive.sh:633
+#: git-rebase--interactive.sh:642
 msgid ""
 "You can fix the problem, and then run\n"
 "\n"
@@ -13538,7 +14423,7 @@ msgstr ""
 "\tgit rebase --continue"
 
 #. TRANSLATORS: after these lines is a command to be issued by the user
-#: git-rebase--interactive.sh:646
+#: git-rebase--interactive.sh:655
 #, sh-format
 msgid ""
 "Execution succeeded: $rest\n"
@@ -13553,25 +14438,25 @@ msgstr ""
 "\n"
 "\tgit rebase --continue"
 
-#: git-rebase--interactive.sh:657
+#: git-rebase--interactive.sh:666
 #, sh-format
 msgid "Unknown command: $command $sha1 $rest"
 msgstr "Ordre desconeguda: $command $sha1 $rest"
 
-#: git-rebase--interactive.sh:658
+#: git-rebase--interactive.sh:667
 msgid "Please fix this using 'git rebase --edit-todo'."
 msgstr "Si us plau, arregleu això usant 'git rebase --edit-todo'."
 
-#: git-rebase--interactive.sh:693
+#: git-rebase--interactive.sh:702
 #, sh-format
 msgid "Successfully rebased and updated $head_name."
 msgstr "S'ha rebasat i actualitzat $head_name amb èxit."
 
-#: git-rebase--interactive.sh:740
+#: git-rebase--interactive.sh:749
 msgid "Could not skip unnecessary pick commands"
 msgstr "No s'ha pogut saltar ordres innecessaris d'elecció"
 
-#: git-rebase--interactive.sh:898
+#: git-rebase--interactive.sh:907
 #, sh-format
 msgid ""
 "Warning: the SHA-1 is missing or isn't a commit in the following line:\n"
@@ -13580,7 +14465,7 @@ msgstr ""
 "Advertència: manca el SHA-1 o no és una comissió en la línia següent:\n"
 " - $line"
 
-#: git-rebase--interactive.sh:931
+#: git-rebase--interactive.sh:940
 #, sh-format
 msgid ""
 "Warning: the command isn't recognized in the following line:\n"
@@ -13589,11 +14474,11 @@ msgstr ""
 "Advertència: no es reconeix l'ordre en la línia següent:\n"
 " - $line"
 
-#: git-rebase--interactive.sh:970
+#: git-rebase--interactive.sh:979
 msgid "could not detach HEAD"
 msgstr "no s'ha pogut separar HEAD"
 
-#: git-rebase--interactive.sh:1008
+#: git-rebase--interactive.sh:1017
 msgid ""
 "Warning: some commits may have been dropped accidentally.\n"
 "Dropped commits (newer to older):"
@@ -13602,7 +14487,7 @@ msgstr ""
 "accidentalment.\n"
 "Les comissions descartades (més nova a més vella):"
 
-#: git-rebase--interactive.sh:1016
+#: git-rebase--interactive.sh:1025
 msgid ""
 "To avoid this message, use \"drop\" to explicitly remove a commit.\n"
 "\n"
@@ -13617,7 +14502,7 @@ msgstr ""
 "d'advertències.\n"
 "Els comportaments possibles són: ignore, warn, error."
 
-#: git-rebase--interactive.sh:1027
+#: git-rebase--interactive.sh:1036
 #, sh-format
 msgid ""
 "Unrecognized setting $check_level for option rebase.missingCommitsCheck. "
@@ -13626,19 +14511,23 @@ msgstr ""
 "No s'ha reconegut l'ajust $check_level per a l'opció rebase."
 "missingCommitsCheck. S'està ignorant."
 
-#: git-rebase--interactive.sh:1044
-msgid "You can fix this with 'git rebase --edit-todo'."
-msgstr "Podeu arreglar això amb 'git rebase --edit-todo'."
+#: git-rebase--interactive.sh:1053
+msgid ""
+"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
+"continue'."
+msgstr ""
+"Podeu arreglar això amb 'git rebase --edit-todo' i desprès 'git rebase --"
+"continue'."
 
-#: git-rebase--interactive.sh:1045
+#: git-rebase--interactive.sh:1054
 msgid "Or you can abort the rebase with 'git rebase --abort'."
 msgstr "O podeu avortar el rebasament amb 'git rebase --abort'."
 
-#: git-rebase--interactive.sh:1069
+#: git-rebase--interactive.sh:1078
 msgid "Could not remove CHERRY_PICK_HEAD"
 msgstr "No s'ha pogut eliminar CHERRY_PICK_HEAD"
 
-#: git-rebase--interactive.sh:1074
+#: git-rebase--interactive.sh:1083
 #, sh-format
 msgid ""
 "You have staged changes in your working tree.\n"
@@ -13651,7 +14540,7 @@ msgid ""
 "\n"
 "  git commit $gpg_sign_opt_quoted\n"
 "\n"
-"In both case, once you're done, continue with:\n"
+"In both cases, once you're done, continue with:\n"
 "\n"
 "  git rebase --continue\n"
 msgstr ""
@@ -13669,13 +14558,13 @@ msgstr ""
 "\n"
 "  git rebase --continue\n"
 
-#: git-rebase--interactive.sh:1091
+#: git-rebase--interactive.sh:1100
 msgid "Error trying to find the author identity to amend commit"
 msgstr ""
 "Ha hagut un error en intentar trobar la identitat d'autor per a esmenar la "
 "comissió"
 
-#: git-rebase--interactive.sh:1096
+#: git-rebase--interactive.sh:1105
 msgid ""
 "You have uncommitted changes in your working tree. Please commit them\n"
 "first and then run 'git rebase --continue' again."
@@ -13683,11 +14572,11 @@ msgstr ""
 "Teniu canvis no comessos en el vostre arbre de treball. Si us plau,\n"
 "primer cometeu-los i després executeu 'git rebase --continue' de nou."
 
-#: git-rebase--interactive.sh:1101 git-rebase--interactive.sh:1105
+#: git-rebase--interactive.sh:1110 git-rebase--interactive.sh:1114
 msgid "Could not commit staged changes."
 msgstr "No s'ha pogut cometre els canvis emmagatzemats."
 
-#: git-rebase--interactive.sh:1129
+#: git-rebase--interactive.sh:1138
 msgid ""
 "\n"
 "You are editing the todo file of an ongoing interactive rebase.\n"
@@ -13696,50 +14585,45 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Esteu editant el fitxer de cosses a fer d'un rebasament interactiu en "
-"marxa.\n"
+"Esteu editant el fitxer de coses a fer d'un rebasament interactiu en marxa.\n"
 "Per a continuar el rebasament després d'editar, executeu:\n"
 "    git rebase --continue\n"
 "\n"
 
-#: git-rebase--interactive.sh:1137 git-rebase--interactive.sh:1298
+#: git-rebase--interactive.sh:1146 git-rebase--interactive.sh:1304
 msgid "Could not execute editor"
 msgstr "No s'ha pogut executar l'editor"
 
-#: git-rebase--interactive.sh:1145
-msgid "You need to set your committer info first"
-msgstr "Heu de primer establir la vostra informació de cometent"
-
-#: git-rebase--interactive.sh:1153
+#: git-rebase--interactive.sh:1159
 #, sh-format
 msgid "Could not checkout $switch_to"
 msgstr "No s'ha pogut agafar $switch_to"
 
-#: git-rebase--interactive.sh:1158
+#: git-rebase--interactive.sh:1164
 msgid "No HEAD?"
 msgstr "No hi ha cap HEAD?"
 
-#: git-rebase--interactive.sh:1159
+#: git-rebase--interactive.sh:1165
 #, sh-format
 msgid "Could not create temporary $state_dir"
 msgstr "No s'ha pogut crear el $state_dir temporal"
 
-#: git-rebase--interactive.sh:1161
+#: git-rebase--interactive.sh:1167
 msgid "Could not mark as interactive"
 msgstr "No s'ha pogut marcar com a interactiu"
 
-#: git-rebase--interactive.sh:1171 git-rebase--interactive.sh:1176
+#: git-rebase--interactive.sh:1177 git-rebase--interactive.sh:1182
 msgid "Could not init rewritten commits"
 msgstr "No s'ha pogut iniciar les comissions reescrites"
 
-#: git-rebase--interactive.sh:1276
+#: git-rebase--interactive.sh:1282
 #, sh-format
 msgid "Rebase $shortrevisions onto $shortonto ($todocount command)"
 msgid_plural "Rebase $shortrevisions onto $shortonto ($todocount commands)"
 msgstr[0] "Rebasa $shortrevisions sobre $shortonto ($todocount ordre)"
 msgstr[1] "Rebasa $shortrevisions sobre $shortonto ($todocount ordres)"
 
-#: git-rebase--interactive.sh:1281
+#: git-rebase--interactive.sh:1287
 msgid ""
 "\n"
 "However, if you remove everything, the rebase will be aborted.\n"
@@ -13749,7 +14633,7 @@ msgstr ""
 "No obstant, si elimineu tot, s'avortarà el rebasament.\n"
 "\n"
 
-#: git-rebase--interactive.sh:1288
+#: git-rebase--interactive.sh:1294
 msgid "Note that empty commits are commented out"
 msgstr "Nota que les comissions buides estan comentades"
 
@@ -13778,6 +14662,10 @@ msgstr "No es pot rebasar: Teniu canvis no allistats."
 msgid "Cannot rewrite branches: You have unstaged changes."
 msgstr "No es pot reescriure branques: Teniu canvis no allistats."
 
+#: git-sh-setup.sh:226
+msgid "Cannot pull with rebase: You have unstaged changes."
+msgstr "No es pot baixar amb rebasament: Teniu canvis no allistats."
+
 #: git-sh-setup.sh:229
 #, sh-format
 msgid "Cannot $action: You have unstaged changes."
@@ -13787,15 +14675,24 @@ msgstr "No es pot $action: Teniu canvis no allistats."
 msgid "Cannot rebase: Your index contains uncommitted changes."
 msgstr "No es pot rebasar: El vostre índex conté canvis sense cometre."
 
+#: git-sh-setup.sh:245
+msgid "Cannot pull with rebase: Your index contains uncommitted changes."
+msgstr ""
+"No es pot baixar amb rebasament: El vostre índex conté canvis sense cometre."
+
 #: git-sh-setup.sh:248
 #, sh-format
 msgid "Cannot $action: Your index contains uncommitted changes."
 msgstr "No es pot $action: El vostre índex conté canvis sense cometre."
 
+#: git-sh-setup.sh:252
+msgid "Additionally, your index contains uncommitted changes."
+msgstr "Addicionalment, el vostre índex conté canvis sense cometre."
+
 #: git-sh-setup.sh:372
 msgid "You need to run this command from the toplevel of the working tree."
 msgstr ""
-"Heu d'executar aquesta ordre des del nivell superior de l'arbre de treball"
+"Heu d'executar aquesta ordre des del nivell superior de l'arbre de treball."
 
 #: git-sh-setup.sh:377
 msgid "Unable to determine absolute path of git directory"
index 760f7ab35691312725e0da007196975d810e81d4..a92ddcf08df3ea4a47105c281a10ba83d8c1468f 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Git Russian Localization Project\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2016-08-27 23:21+0800\n"
-"PO-Revision-Date: 2016-10-16 17:25+0000\n"
+"POT-Creation-Date: 2016-11-25 22:50+0800\n"
+"PO-Revision-Date: 2016-11-28 23:58+0000\n"
 "Last-Translator: Dimitriy Ryazantcev <DJm00n@mail.ru>\n"
 "Language-Team: Russian (http://www.transifex.com/djm00n/git-po-ru/language/ru/)\n"
 "MIME-Version: 1.0\n"
@@ -88,3718 +88,4164 @@ msgid ""
 "\n"
 msgstr "Примечание: переход на «%s».\n\nВы сейчас в состоянии «отделённого HEAD». Вы можете осмотреться, сделать\nэкспериментальные изменения и закоммитить их, также вы можете отменить\nизменения любых коммитов в этом состоянии не затрагивая любые ветки и\nне переходя на них.\n\nЕсли вы хотите создать новую ветку и сохранить свои коммиты, то вы\nможете сделать это (сейчас или позже) вызвав команду checkout снова,\nно с параметром -b. Например:\n\n  git checkout -b <имя-новой-ветки>\n\n"
 
-#: archive.c:12
-msgid "git archive [<options>] <tree-ish> [<path>...]"
-msgstr "git archive [<опции>] <указатель-дерева> [<путь>…]"
+#: apply.c:57
+#, c-format
+msgid "unrecognized whitespace option '%s'"
+msgstr "неопознанная опция для пробелов «%s»"
 
-#: archive.c:13
-msgid "git archive --list"
-msgstr "git archive --list"
+#: apply.c:73
+#, c-format
+msgid "unrecognized whitespace ignore option '%s'"
+msgstr "неопознанная опция для игнорирования пробелов «%s»"
 
-#: archive.c:14
-msgid ""
-"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> "
-"[<path>...]"
-msgstr "git archive --remote <репозиторий> [--exec <команда>] [<опции>] <указатель-дерева> [<путь>…]"
+#: apply.c:125
+msgid "--reject and --3way cannot be used together."
+msgstr "--reject и --3way нельзя использовать одновременно."
 
-#: archive.c:15
-msgid "git archive --remote <repo> [--exec <cmd>] --list"
-msgstr "git archive --remote <репозиторий> [--exec <команда>] --list"
+#: apply.c:127
+msgid "--cached and --3way cannot be used together."
+msgstr "--cached и --3way нельзя использовать одновременно."
 
-#: archive.c:344 builtin/add.c:139 builtin/add.c:435 builtin/rm.c:327
-#, c-format
-msgid "pathspec '%s' did not match any files"
-msgstr "спецификация пути «%s» не соответствует ни одному файлу"
+#: apply.c:130
+msgid "--3way outside a repository"
+msgstr "--3way вне репозитория"
 
-#: archive.c:429
-msgid "fmt"
-msgstr "формат"
+#: apply.c:141
+msgid "--index outside a repository"
+msgstr "--index вне репозитория"
 
-#: archive.c:429
-msgid "archive format"
-msgstr "формат архива"
+#: apply.c:144
+msgid "--cached outside a repository"
+msgstr "--cached вне репозитория"
 
-#: archive.c:430 builtin/log.c:1422
-msgid "prefix"
-msgstr "префикс"
+#: apply.c:845
+#, c-format
+msgid "Cannot prepare timestamp regexp %s"
+msgstr "Не удалось подготовить регулярное выражение для метки времени %s"
 
-#: archive.c:431
-msgid "prepend prefix to each pathname in the archive"
-msgstr "добавлять префикс перед каждым путем файла в архиве"
+#: apply.c:854
+#, c-format
+msgid "regexec returned %d for input: %s"
+msgstr "regexec возвратил %d для ввода: %s"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2553
-#: builtin/blame.c:2554 builtin/config.c:59 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:722 builtin/hash-object.c:100
-#: builtin/ls-files.c:460 builtin/ls-files.c:463 builtin/notes.c:399
-#: builtin/notes.c:562 builtin/read-tree.c:109 parse-options.h:153
-msgid "file"
-msgstr "файл"
+#: apply.c:938
+#, c-format
+msgid "unable to find filename in patch at line %d"
+msgstr "не удалось найти имя файла в строке патча %d"
 
-#: archive.c:433 builtin/archive.c:89
-msgid "write the archive to this file"
-msgstr "запись архива в этот файл"
+#: apply.c:977
+#, c-format
+msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
+msgstr "git apply: плохой git-diff — ожидалось /dev/null, получено %s на строке %d"
 
-#: archive.c:435
-msgid "read .gitattributes in working directory"
-msgstr "читать .gitattributes в рабочем каталоге"
+#: apply.c:983
+#, c-format
+msgid "git apply: bad git-diff - inconsistent new filename on line %d"
+msgstr "git apply: плохой git-diff — не согласующееся новое имя файла на строке %d"
 
-#: archive.c:436
-msgid "report archived files on stderr"
-msgstr "отчет об архивированных файлах в stderr"
+#: apply.c:984
+#, c-format
+msgid "git apply: bad git-diff - inconsistent old filename on line %d"
+msgstr "git apply: плохой git-diff — не согласующееся старое имя файла на строке %d"
 
-#: archive.c:437
-msgid "store only"
-msgstr "только хранение"
+#: apply.c:990
+#, c-format
+msgid "git apply: bad git-diff - expected /dev/null on line %d"
+msgstr "git apply: плохой git-diff  — ожидалось /dev/null на строке %d"
 
-#: archive.c:438
-msgid "compress faster"
-msgstr "сжимать быстрее"
+#: apply.c:1488
+#, c-format
+msgid "recount: unexpected line: %.*s"
+msgstr "recount: не ожидаемая строка: %.*s"
 
-#: archive.c:446
-msgid "compress better"
-msgstr "сжимать лучше"
+#: apply.c:1557
+#, c-format
+msgid "patch fragment without header at line %d: %.*s"
+msgstr "фрагмент изменений без заголовка на строке %d: %.*s"
 
-#: archive.c:449
-msgid "list supported archive formats"
-msgstr "перечислить поддерживаемые форматы архивов"
+#: apply.c:1577
+#, c-format
+msgid ""
+"git diff header lacks filename information when removing %d leading pathname"
+" component (line %d)"
+msgid_plural ""
+"git diff header lacks filename information when removing %d leading pathname"
+" components (line %d)"
+msgstr[0] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущего компонента пути к файлу (строка %d)"
+msgstr[1] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущих компонент пути к файлу (строка %d)"
+msgstr[2] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущих компонент пути к файлу (строка %d)"
+msgstr[3] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущих компонент пути к файлу (строка %d)"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:82
-#: builtin/submodule--helper.c:832
-msgid "repo"
-msgstr "репозиторий"
+#: apply.c:1589
+#, c-format
+msgid "git diff header lacks filename information (line %d)"
+msgstr "заголовок git diff не содержит информации об имени файла (строка %d)"
 
-#: archive.c:452 builtin/archive.c:91
-msgid "retrieve the archive from remote repository <repo>"
-msgstr "полÑ\83Ñ\87иÑ\82Ñ\8c Ð°Ñ\80Ñ\85ив Ð¸Ð· Ð²Ð½ÐµÑ\88него <Ñ\80епозиÑ\82оÑ\80иÑ\8f>"
+#: apply.c:1759
+msgid "new file depends on old contents"
+msgstr "новÑ\8bй Ñ\84айл Ð·Ð°Ð²Ð¸Ñ\81иÑ\82 Ð¾Ñ\82 Ñ\81Ñ\82аÑ\80ого Ñ\81одеÑ\80жимого"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:483
-msgid "command"
-msgstr "команда"
+#: apply.c:1761
+msgid "deleted file still has contents"
+msgstr "удаленный файл все еще имеет содержимое"
 
-#: archive.c:454 builtin/archive.c:93
-msgid "path to the remote git-upload-archive command"
-msgstr "путь к команде git-upload-archive на машине с внешним репозиторием"
+#: apply.c:1795
+#, c-format
+msgid "corrupt patch at line %d"
+msgstr "патч поврежден на строке %d"
 
-#: archive.c:461
-msgid "Unexpected option --remote"
-msgstr "Неожиданная опция --remote"
+#: apply.c:1832
+#, c-format
+msgid "new file %s depends on old contents"
+msgstr "новый файл %s зависит от старого содержимого"
 
-#: archive.c:463
-msgid "Option --exec can only be used together with --remote"
-msgstr "Опция --exec может использоваться только вместе с --remote"
+#: apply.c:1834
+#, c-format
+msgid "deleted file %s still has contents"
+msgstr "удаленный файл %s все еще имеет содержимое"
 
-#: archive.c:465
-msgid "Unexpected option --output"
-msgstr "Неожиданная опция --output"
+#: apply.c:1837
+#, c-format
+msgid "** warning: file %s becomes empty but is not deleted"
+msgstr "** предупреждение: файл %s становится пустым, но не удаляется"
 
-#: archive.c:487
+#: apply.c:1984
 #, c-format
-msgid "Unknown archive format '%s'"
-msgstr "Ð\9dеизвеÑ\81Ñ\82нÑ\8bй Ñ\84оÑ\80маÑ\82 Ð°Ñ\80Ñ\85ива Â«%s»"
+msgid "corrupt binary patch at line %d: %.*s"
+msgstr "повÑ\80ежденнÑ\8bй Ð´Ð²Ð¾Ð¸Ñ\87нÑ\8bй Ð¿Ð°Ñ\82Ñ\87 Ð½Ð° Ñ\81Ñ\82Ñ\80оке %d: %.*s"
 
-#: archive.c:494
+#: apply.c:2021
 #, c-format
-msgid "Argument not supported for format '%s': -%d"
-msgstr "Ð\90Ñ\80гÑ\83менÑ\82 Ð½Ðµ Ð¿Ð¾Ð´Ð´ÐµÑ\80живаеÑ\82Ñ\81Ñ\8f Ð´Ð»Ñ\8f Ñ\84оÑ\80маÑ\82а Â«%s»: -%d"
+msgid "unrecognized binary patch at line %d"
+msgstr "неопознаннÑ\8bй Ð´Ð²Ð¾Ð¸Ñ\87нÑ\8bй Ð¿Ð°Ñ\82Ñ\87 Ð½Ð° Ñ\81Ñ\82Ñ\80оке %d"
 
-#: attr.c:263
-msgid ""
-"Negative patterns are ignored in git attributes\n"
-"Use '\\!' for literal leading exclamation."
-msgstr "Отрицающие шаблоны в атрибутах git игнорируются.\nИспользуйте «\\!» для буквального использования символа в значении «восклицательный знак»."
+#: apply.c:2182
+#, c-format
+msgid "patch with only garbage at line %d"
+msgstr "патч с мусором на строке %d"
 
-#: bisect.c:441
+#: apply.c:2274
 #, c-format
-msgid "Could not open file '%s'"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\84айл Â«%s»"
+msgid "unable to read symlink %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ñ\81имволÑ\8cнÑ\83Ñ\8e Ñ\81Ñ\81Ñ\8bлкÑ\83 %s"
 
-#: bisect.c:446
+#: apply.c:2278
 #, c-format
-msgid "Badly quoted content in file '%s': %s"
-msgstr "Ð\9fлоÑ\85ое Ñ\81одеÑ\80жимое Ñ\84айла Â«%s»: %s"
+msgid "unable to open or read %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ð¸Ð»Ð¸ Ð¿Ñ\80оÑ\87еÑ\81Ñ\82Ñ\8c %s"
 
-#: bisect.c:655
+#: apply.c:2931
 #, c-format
-msgid "We cannot bisect more!\n"
-msgstr "Ð\9dевозможно Ð¿Ñ\80одолжиÑ\82Ñ\8c Ð±Ð¸Ð½Ð°Ñ\80нÑ\8bй Ð¿Ð¾Ð¸Ñ\81к!\n"
+msgid "invalid start of line: '%c'"
+msgstr "непÑ\80авилÑ\8cное Ð½Ð°Ñ\87ало Ñ\81Ñ\82Ñ\80оки: Â«%c»"
 
-#: bisect.c:708
+#: apply.c:3050
 #, c-format
-msgid "Not a valid commit name %s"
-msgstr "Недопустимое имя коммита %s"
+msgid "Hunk #%d succeeded at %d (offset %d line)."
+msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
+msgstr[0] "Часть #%d успешно применена на %d (со сдвигом в %d строку)."
+msgstr[1] "Часть #%d успешно применена на %d (со сдвигом в %d строки)."
+msgstr[2] "Часть #%d успешно применена на %d (со сдвигом в %d строк)."
+msgstr[3] "Часть #%d успешно применена на %d (со сдвигом в %d строк)."
 
-#: bisect.c:732
+#: apply.c:3062
 #, c-format
-msgid ""
-"The merge base %s is bad.\n"
-"This means the bug has been fixed between %s and [%s].\n"
-msgstr "База слияния %s является плохим коммитом.\nЭто значит, что ошибка была исправлена где-то между %s и [%s].\n"
+msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
+msgstr "Контекст сужен до (%ld/%ld), чтобы применить фрагмент на %d строке"
 
-#: bisect.c:737
+#: apply.c:3068
 #, c-format
 msgid ""
-"The merge base %s is new.\n"
-"The property has changed between %s and [%s].\n"
-msgstr "Ð\91аза Ñ\81лиÑ\8fниÑ\8f %s Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ð½Ð¾Ð²Ð¾Ð¹.\nСвойÑ\81Ñ\82во Ð±Ñ\8bло Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ Ð³Ð´Ðµ-Ñ\82о Ð¼ÐµÐ¶Ð´Ñ\83 %s Ð¸ [%s].\n"
+"while searching for:\n"
+"%.*s"
+msgstr "пÑ\80и Ð¿Ð¾Ð¸Ñ\81ке:\n%.*s"
 
-#: bisect.c:742
+#: apply.c:3090
 #, c-format
-msgid ""
-"The merge base %s is %s.\n"
-"This means the first '%s' commit is between %s and [%s].\n"
-msgstr "База слияния %s является %s.\nЭто значит, что «%s» коммит находится где-то между %s и [%s].\n"
+msgid "missing binary patch data for '%s'"
+msgstr "пропущены данные двоичного патча для «%s»"
 
-#: bisect.c:750
+#: apply.c:3098
 #, c-format
-msgid ""
-"Some %s revs are not ancestor of the %s rev.\n"
-"git bisect cannot work properly in this case.\n"
-"Maybe you mistook %s and %s revs?\n"
-msgstr "Несколько %s коммитов не являются предками %s коммита.\nВ этом случае git bisect не может работать правильно.\nВозможно, вы перепутали редакции %s и %s местами?\n"
+msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
+msgstr "невозможно выполнить reverse-apply для двоичного патча, без обращения изменений блока «%s»"
 
-#: bisect.c:763
+#: apply.c:3144
+#, c-format
+msgid "cannot apply binary patch to '%s' without full index line"
+msgstr "невозможно применить двоичный патч «%s» без строки с указанной полной версией индекса"
+
+#: apply.c:3154
 #, c-format
 msgid ""
-"the merge base between %s and [%s] must be skipped.\n"
-"So we cannot be sure the first %s commit is between %s and %s.\n"
-"We continue anyway."
-msgstr "База слияния между %s и [%s] должно быть пропущена.\nПоэтому мы не можем быть уверены, что первый %s коммит находится между %s и %s.\nНо все же продолжаем поиск."
+"the patch applies to '%s' (%s), which does not match the current contents."
+msgstr "патч применятся к файлу «%s» (%s), но его текущее содержимое не соотвествует ожидаемому."
 
-#: bisect.c:798
+#: apply.c:3162
 #, c-format
-msgid "Bisecting: a merge base must be tested\n"
-msgstr "Ð\91инаÑ\80нÑ\8bй Ð¿Ð¾Ð¸Ñ\81к: Ð±Ð°Ð·Ð° Ñ\81лиÑ\8fниÑ\8f Ð´Ð¾Ð»Ð¶Ð½Ð° Ð±Ñ\8bÑ\82Ñ\8c Ð¿Ñ\80овеÑ\80ена\n"
+msgid "the patch applies to an empty '%s' but it is not empty"
+msgstr "паÑ\82Ñ\87 Ð¿Ñ\80именÑ\8fеÑ\82Ñ\81Ñ\8f Ðº Ð¿Ñ\83Ñ\81Ñ\82омÑ\83 Ñ\84айлÑ\83 Â«%s», Ð½Ð¾ Ñ\84айл Ð½Ðµ Ð¿Ñ\83Ñ\81Ñ\82ой"
 
-#: bisect.c:849
+#: apply.c:3180
 #, c-format
-msgid "a %s revision is needed"
-msgstr "нужно указать %s редакцию"
+msgid "the necessary postimage %s for '%s' cannot be read"
+msgstr "не удалось прочитать необходимую посылку %s для «%s»"
 
-#: bisect.c:866 builtin/notes.c:174 builtin/tag.c:248
+#: apply.c:3193
 #, c-format
-msgid "could not create file '%s'"
-msgstr "не удалось создать файл «%s»"
+msgid "binary patch does not apply to '%s'"
+msgstr "не удалось применить двоичный патч к «%s»"
 
-#: bisect.c:917
+#: apply.c:3199
 #, c-format
-msgid "could not read file '%s'"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ñ\84айл Â«%s»"
+msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
+msgstr "поÑ\81ле Ð¿Ñ\80именениÑ\8f Ð´Ð²Ð¾Ð¸Ñ\87ного Ð¿Ð°Ñ\82Ñ\87а Ð´Ð»Ñ\8f Â«%s» Ð±Ñ\8bл Ð¿Ð¾Ð»Ñ\83Ñ\87ен Ð½ÐµÐ¿Ñ\80авилÑ\8cнÑ\8bй Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82 (ожидалоÑ\81Ñ\8c %s, Ð¿Ð¾Ð»Ñ\83Ñ\87ено %s)"
 
-#: bisect.c:947
-msgid "reading bisect refs failed"
-msgstr "сбой при чтении ссылок двоичного поиска"
+#: apply.c:3220
+#, c-format
+msgid "patch failed: %s:%ld"
+msgstr "ошибка применения изменений: %s:%ld"
 
-#: bisect.c:967
+#: apply.c:3342
 #, c-format
-msgid "%s was both %s and %s\n"
-msgstr "%s была одновременно и %s и %s\n"
+msgid "cannot checkout %s"
+msgstr "не удалось переключить состояние на %s"
 
-#: bisect.c:975
+#: apply.c:3390 apply.c:3401 apply.c:3447 setup.c:248
 #, c-format
-msgid ""
-"No testable commit found.\n"
-"Maybe you started with bad path parameters?\n"
-msgstr "Тестируемый коммит не найден.\nВозможно, вы начали поиск с указанием неправильного параметра пути?\n"
+msgid "failed to read %s"
+msgstr "не удалось прочитать %s"
 
-#: bisect.c:994
+#: apply.c:3398
 #, c-format
-msgid "(roughly %d step)"
-msgid_plural "(roughly %d steps)"
-msgstr[0] "(примерно %d шаг)"
-msgstr[1] "(примерно %d шага)"
-msgstr[2] "(примерно %d шагов)"
-msgstr[3] "(примерно %d шагов)"
+msgid "reading from '%s' beyond a symbolic link"
+msgstr "чтение из «%s» за символической ссылкой"
 
-#. TRANSLATORS: the last %s will be replaced with
-#. "(roughly %d steps)" translation
-#: bisect.c:998
+#: apply.c:3427 apply.c:3667
 #, c-format
-msgid "Bisecting: %d revision left to test after this %s\n"
-msgid_plural "Bisecting: %d revisions left to test after this %s\n"
-msgstr[0] "Бинарный поиск: %d редакцию осталось проверить после этой %s\n"
-msgstr[1] "Бинарный поиск: %d редакции осталось проверить после этой %s\n"
-msgstr[2] "Бинарный поиск: %d редакций осталось проверить после этой %s\n"
-msgstr[3] "Бинарный поиск: %d редакций осталось проверить после этой %s\n"
+msgid "path %s has been renamed/deleted"
+msgstr "путь %s был переименован/удален"
 
-#: branch.c:53
+#: apply.c:3510 apply.c:3681
 #, c-format
-msgid ""
-"\n"
-"After fixing the error cause you may try to fix up\n"
-"the remote tracking information by invoking\n"
-"\"git branch --set-upstream-to=%s%s%s\"."
-msgstr "\nПосле исправления причины ошибки,\nвы можете исправить информацию об отслеживаемой\nвнешней ветке, с помощью команды\n«git branch --set-upstream-to=%s%s%s»."
+msgid "%s: does not exist in index"
+msgstr "%s: нет в индексе"
 
-#: branch.c:67
+#: apply.c:3519 apply.c:3689
 #, c-format
-msgid "Not setting branch %s as its own upstream."
-msgstr "Не устанавливаю ветку %s, так так она принадлежит вышестоящему репозиторию."
+msgid "%s: does not match index"
+msgstr "%s: не совпадает с индексом"
 
-#: branch.c:93
-#, c-format
-msgid "Branch %s set up to track remote branch %s from %s by rebasing."
-msgstr "Ветка %s отслеживает внешнюю ветку %s из %s перемещением."
+#: apply.c:3554
+msgid "repository lacks the necessary blob to fall back on 3-way merge."
+msgstr "в репозитории отсутствует необходимый двоичный объект для отката к трёхходовому слиянию."
 
-#: branch.c:94
+#: apply.c:3557
 #, c-format
-msgid "Branch %s set up to track remote branch %s from %s."
-msgstr "Ð\92еÑ\82ка %s Ð¾Ñ\82Ñ\81леживаеÑ\82 Ð²Ð½ÐµÑ\88нÑ\8eÑ\8e Ð²ÐµÑ\82кÑ\83 %s Ð¸Ð· %s."
+msgid "Falling back to three-way merge...\n"
+msgstr "Ð\9eÑ\82каÑ\82 Ðº Ñ\82Ñ\80Ñ\91Ñ\85Ñ\85одовомÑ\83 Ñ\81лиÑ\8fниÑ\8eâ\80¦\n"
 
-#: branch.c:98
+#: apply.c:3573 apply.c:3577
 #, c-format
-msgid "Branch %s set up to track local branch %s by rebasing."
-msgstr "Ð\92еÑ\82ка %s Ð¾Ñ\82Ñ\81леживаеÑ\82 Ð»Ð¾ÐºÐ°Ð»Ñ\8cнÑ\83Ñ\8e Ð²ÐµÑ\82кÑ\83 %s Ð¿ÐµÑ\80емеÑ\89ением."
+msgid "cannot read the current contents of '%s'"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ñ\82екÑ\83Ñ\89ее Ñ\81одеÑ\80жимое Â«%s»"
 
-#: branch.c:99
+#: apply.c:3589
 #, c-format
-msgid "Branch %s set up to track local branch %s."
-msgstr "Ð\92еÑ\82ка %s Ð¾Ñ\82Ñ\81леживаеÑ\82 Ð»Ð¾ÐºÐ°Ð»Ñ\8cнÑ\83Ñ\8e Ð²ÐµÑ\82кÑ\83 %s."
+msgid "Failed to fall back on three-way merge...\n"
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82каÑ\82иÑ\82Ñ\8cÑ\81Ñ\8f Ðº Ñ\82Ñ\80Ñ\91Ñ\85Ñ\85одовомÑ\83 Ñ\81лиÑ\8fниÑ\8eâ\80¦\n"
 
-#: branch.c:104
+#: apply.c:3603
 #, c-format
-msgid "Branch %s set up to track remote ref %s by rebasing."
-msgstr "Ð\92еÑ\82ка %s Ð¾Ñ\82Ñ\81леживаеÑ\82 Ð²Ð½ÐµÑ\88нÑ\8eÑ\8e Ñ\81Ñ\81Ñ\8bлкÑ\83 %s Ð¿ÐµÑ\80емеÑ\89ением."
+msgid "Applied patch to '%s' with conflicts.\n"
+msgstr "Ð\9fаÑ\82Ñ\87 Ð¿Ñ\80именен Ðº Â«%s» Ñ\81 ÐºÐ¾Ð½Ñ\84ликÑ\82ами.\n"
 
-#: branch.c:105
+#: apply.c:3608
 #, c-format
-msgid "Branch %s set up to track remote ref %s."
-msgstr "Ð\92еÑ\82ка %s Ð¾Ñ\82Ñ\81леживаеÑ\82 Ð²Ð½ÐµÑ\88нÑ\8eÑ\8e Ñ\81Ñ\81Ñ\8bлкÑ\83 %s."
+msgid "Applied patch to '%s' cleanly.\n"
+msgstr "Ð\9fаÑ\82Ñ\87 Ð¿Ñ\80именен Ðº Â«%s» Ð±ÐµÐ· Ð¾Ñ\88ибок.\n"
 
-#: branch.c:109
+#: apply.c:3634
+msgid "removal patch leaves file contents"
+msgstr "патч удаления не удалил содержимое файла"
+
+#: apply.c:3706
 #, c-format
-msgid "Branch %s set up to track local ref %s by rebasing."
-msgstr "Ветка %s отслеживает локальную ссылку %s перемещением."
+msgid "%s: wrong type"
+msgstr "%s: неправильный тип"
 
-#: branch.c:110
+#: apply.c:3708
 #, c-format
-msgid "Branch %s set up to track local ref %s."
-msgstr "Ветка %s отслеживает локальную ссылку %s."
+msgid "%s has type %o, expected %o"
+msgstr "%s имеет тип %o, а ожидался %o"
 
-#: branch.c:119
-msgid "Unable to write upstream branch configuration"
-msgstr "Не удалось записать настройки вышестоящей ветки"
+#: apply.c:3859 apply.c:3861
+#, c-format
+msgid "invalid path '%s'"
+msgstr "неправильный путь «%s»"
 
-#: branch.c:156
+#: apply.c:3917
 #, c-format
-msgid "Not tracking: ambiguous information for ref %s"
-msgstr "Не отслеживается: неоднозначная информация для ссылки %s"
+msgid "%s: already exists in index"
+msgstr "%s: уже содержится в индексе"
 
-#: branch.c:185
+#: apply.c:3920
 #, c-format
-msgid "'%s' is not a valid branch name."
-msgstr "«%s» не является действительным именем ветки."
+msgid "%s: already exists in working directory"
+msgstr "%s: уже содержится в рабочем каталоге"
 
-#: branch.c:190
+#: apply.c:3940
 #, c-format
-msgid "A branch named '%s' already exists."
-msgstr "Ð\92еÑ\82ка Ñ\81 Ð¸Ð¼ÐµÐ½ÐµÐ¼ Â«%s» Ñ\83же Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82."
+msgid "new mode (%o) of %s does not match old mode (%o)"
+msgstr "новÑ\8bй Ñ\80ежим Ð´Ð¾Ñ\81Ñ\82Ñ\83па (%o) Ð´Ð»Ñ\8f %s Ð½Ðµ Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83еÑ\82 Ñ\81Ñ\82аÑ\80омÑ\83 Ñ\80ежимÑ\83 Ð´Ð¾Ñ\81Ñ\82Ñ\83па (%o)"
 
-#: branch.c:198
-msgid "Cannot force update the current branch."
-msgstr "Не удалось принудительно обновить текущую ветку."
+#: apply.c:3945
+#, c-format
+msgid "new mode (%o) of %s does not match old mode (%o) of %s"
+msgstr "новый режим доступа (%o) для %s не соответствует старому режиму доступа (%o) для %s"
 
-#: branch.c:218
+#: apply.c:3965
 #, c-format
-msgid ""
-"Cannot setup tracking information; starting point '%s' is not a branch."
-msgstr "Не удалось настроить информацию отслеживания; стартовая точка «%s» не является веткой."
+msgid "affected file '%s' is beyond a symbolic link"
+msgstr "затронутый файл «%s» находится за символической ссылкой"
 
-#: branch.c:220
+#: apply.c:3969
 #, c-format
-msgid "the requested upstream branch '%s' does not exist"
-msgstr "запрошенная ветка вышестоящего репозитория «%s» не существует"
+msgid "%s: patch does not apply"
+msgstr "%s: не удалось применить патч"
 
-#: branch.c:222
-msgid ""
-"\n"
-"If you are planning on basing your work on an upstream\n"
-"branch that already exists at the remote, you may need to\n"
-"run \"git fetch\" to retrieve it.\n"
-"\n"
-"If you are planning to push out a new local branch that\n"
-"will track its remote counterpart, you may want to use\n"
-"\"git push -u\" to set the upstream config as you push."
-msgstr "\nЕсли вы планируете основывать свою работу на вышестоящей ветке, которая уже существует во внешнем репозитории, вам может потребоваться запустить «git fetch» для ее получения.\n\nЕсли вы планируете отправить новую локальную ветку, которая будет отслеживаться, во внешний репозиторий, вам может потребоваться запустить «git push -u» — чтобы сохранить настройку вышестоящего репозитория для отправки."
+#: apply.c:3984
+#, c-format
+msgid "Checking patch %s..."
+msgstr "Проверка патча %s…"
 
-#: branch.c:266
+#: apply.c:4075
 #, c-format
-msgid "Not a valid object name: '%s'."
-msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имое Ð¸Ð¼Ñ\8f Ð¾Ð±Ñ\8aекÑ\82а: Â«%s»."
+msgid "sha1 information is lacking or useless for submodule %s"
+msgstr "инÑ\84оÑ\80маÑ\86иÑ\8f Ð¾Ð± sha1 Ð¾Ñ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82 Ð¸Ð»Ð¸ Ð±ÐµÑ\81полезна Ð´Ð»Ñ\8f Ð¿Ð¾Ð´Ð¼Ð¾Ð´Ñ\83лÑ\8f %s"
 
-#: branch.c:286
+#: apply.c:4082
 #, c-format
-msgid "Ambiguous object name: '%s'."
-msgstr "Ð\9dеоднознаÑ\87ное Ð¸Ð¼Ñ\8f Ð¾Ð±Ñ\8aекÑ\82а: Â«%s»."
+msgid "mode change for %s, which is not in current HEAD"
+msgstr "изменен Ñ\80ежим Ð´Ð»Ñ\8f %s, ÐºÐ¾Ñ\82оÑ\80Ñ\8bй Ð½Ðµ Ð½Ð°Ñ\85одиÑ\82Ñ\81Ñ\8f Ð² Ñ\82екÑ\83Ñ\89ем HEAD"
 
-#: branch.c:291
+#: apply.c:4085
 #, c-format
-msgid "Not a valid branch point: '%s'."
-msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имаÑ\8f Ñ\82оÑ\87ка Ð²ÐµÑ\82ки: Â«%s»."
+msgid "sha1 information is lacking or useless (%s)."
+msgstr "инÑ\84оÑ\80маÑ\86иÑ\8f Ð¾Ð± sha1 Ð¾Ñ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83еÑ\82 Ð¸Ð»Ð¸ Ð±ÐµÑ\81полезна (%s)."
 
-#: branch.c:345
+#: apply.c:4090 builtin/checkout.c:233 builtin/reset.c:135
 #, c-format
-msgid "'%s' is already checked out at '%s'"
-msgstr "«%s» уже находится на «%s»"
+msgid "make_cache_entry failed for path '%s'"
+msgstr "сбой make_cache_entry для пути «%s»"
 
-#: branch.c:364
+#: apply.c:4094
 #, c-format
-msgid "HEAD of working tree %s is not updated"
-msgstr "HEAD рабочего каталога %s не обновлён"
+msgid "could not add %s to temporary index"
+msgstr "не удалось добавить %s во временный индекс"
 
-#: bundle.c:34
+#: apply.c:4104
 #, c-format
-msgid "'%s' does not look like a v2 bundle file"
-msgstr "«%s» не похож на файл пакета версии 2"
+msgid "could not write temporary index to %s"
+msgstr "не удалось записать временный индкекс в %s"
 
-#: bundle.c:61
+#: apply.c:4242
 #, c-format
-msgid "unrecognized header: %s%s (%d)"
-msgstr "неопознанный заголовок: %s%s (%d)"
+msgid "unable to remove %s from index"
+msgstr "не удалось удалить %s из индекса"
 
-#: bundle.c:87 builtin/commit.c:778
+#: apply.c:4277
 #, c-format
-msgid "could not open '%s'"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Â«%s»"
+msgid "corrupt patch for submodule %s"
+msgstr "повÑ\80ежденнÑ\8bй Ð¿Ð°Ñ\82Ñ\87 Ð´Ð»Ñ\8f Ð¿Ð¾Ð´Ð¼Ð¾Ð´Ñ\83лÑ\8f %s"
 
-#: bundle.c:139
-msgid "Repository lacks these prerequisite commits:"
-msgstr "В репозитории отсутствуют необходимые коммиты:"
+#: apply.c:4283
+#, c-format
+msgid "unable to stat newly created file '%s'"
+msgstr "не удалось выполнить stat для созданного файла «%s»"
 
-#: bundle.c:163 ref-filter.c:1462 sequencer.c:630 sequencer.c:1085
-#: builtin/blame.c:2763 builtin/commit.c:1057 builtin/log.c:348
-#: builtin/log.c:890 builtin/log.c:1336 builtin/log.c:1659 builtin/log.c:1901
-#: builtin/merge.c:356 builtin/shortlog.c:170
-msgid "revision walk setup failed"
-msgstr "сбой инициализации прохода по редакциям"
+#: apply.c:4291
+#, c-format
+msgid "unable to create backing store for newly created file %s"
+msgstr "не удалось создать вспомогательный файл для созданного файла %s"
 
-#: bundle.c:185
+#: apply.c:4297 apply.c:4441
 #, c-format
-msgid "The bundle contains this ref:"
-msgid_plural "The bundle contains these %d refs:"
-msgstr[0] "Пакет содержит эту %d ссылку:"
-msgstr[1] "Пакет содержит эти %d ссылки:"
-msgstr[2] "Пакет содержит эти %d ссылок:"
-msgstr[3] "Пакет содержит эти %d ссылок:"
+msgid "unable to add cache entry for %s"
+msgstr "не удалось создать запись в кэше для %s"
 
-#: bundle.c:192
-msgid "The bundle records a complete history."
-msgstr "Пакет содержит полную историю."
+#: apply.c:4338
+#, c-format
+msgid "failed to write to '%s'"
+msgstr "не удалось записать в «%s»"
 
-#: bundle.c:194
+#: apply.c:4342
 #, c-format
-msgid "The bundle requires this ref:"
-msgid_plural "The bundle requires these %d refs:"
-msgstr[0] "Пакет требует эту %d ссылку:"
-msgstr[1] "Пакет требует эти %d ссылки:"
-msgstr[2] "Пакет требует эти %d ссылок:"
-msgstr[3] "Пакет требует эти %d ссылок:"
+msgid "closing file '%s'"
+msgstr "закрытие файла «%s»"
 
-#: bundle.c:253
-msgid "Could not spawn pack-objects"
-msgstr "Не удалось создать объекты пакета"
+#: apply.c:4412
+#, c-format
+msgid "unable to write file '%s' mode %o"
+msgstr "не удалось записать файл «%s» с режимом доступа %o"
 
-#: bundle.c:264
-msgid "pack-objects died"
-msgstr "критическая ошибка pack-objects"
+#: apply.c:4510
+#, c-format
+msgid "Applied patch %s cleanly."
+msgstr "Патч %s применен без ошибок."
 
-#: bundle.c:304
-msgid "rev-list died"
-msgstr "кÑ\80иÑ\82иÑ\87еÑ\81каÑ\8f Ð¾Ñ\88ибка rev-list"
+#: apply.c:4518
+msgid "internal error"
+msgstr "внÑ\83Ñ\82Ñ\80еннÑ\8fÑ\8f Ð¾Ñ\88ибка"
 
-#: bundle.c:353
+#: apply.c:4521
 #, c-format
-msgid "ref '%s' is excluded by the rev-list options"
-msgstr "ссылка «%s» исключена в соответствии с опциями rev-list"
+msgid "Applying patch %%s with %d reject..."
+msgid_plural "Applying patch %%s with %d rejects..."
+msgstr[0] "Применение патча %%s с %d отказом…"
+msgstr[1] "Применение патча %%s с %d отказами…"
+msgstr[2] "Применение патча %%s с %d отказами…"
+msgstr[3] "Применение патча %%s с %d отказами…"
 
-#: bundle.c:443 builtin/log.c:165 builtin/log.c:1565 builtin/shortlog.c:273
+#: apply.c:4532
 #, c-format
-msgid "unrecognized argument: %s"
-msgstr "неопознанный аргумент: %s"
-
-#: bundle.c:451
-msgid "Refusing to create empty bundle."
-msgstr "Отклонение создания пустого пакета."
+msgid "truncating .rej filename to %.*s.rej"
+msgstr "усечение имени .rej файла до %.*s.rej"
 
-#: bundle.c:463
+#: apply.c:4540 builtin/fetch.c:740 builtin/fetch.c:989
 #, c-format
-msgid "cannot create '%s'"
-msgstr "не удалось создать «%s»"
-
-#: bundle.c:491
-msgid "index-pack died"
-msgstr "критическая ошибка index-pack"
+msgid "cannot open %s"
+msgstr "не удалось открыть %s"
 
-#: color.c:290
+#: apply.c:4554
 #, c-format
-msgid "invalid color value: %.*s"
-msgstr "недопÑ\83Ñ\81Ñ\82имое Ð·Ð½Ð°Ñ\87ение Ñ\86веÑ\82а: %.*s"
+msgid "Hunk #%d applied cleanly."
+msgstr "Ð\91лок â\84\96%d Ð¿Ñ\80именен Ð±ÐµÐ· Ð¾Ñ\88ибок."
 
-#: commit.c:40 builtin/am.c:433 builtin/am.c:469 builtin/am.c:1505
-#: builtin/am.c:2119
+#: apply.c:4558
 #, c-format
-msgid "could not parse %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\80азобÑ\80аÑ\82Ñ\8c %s"
+msgid "Rejected hunk #%d."
+msgstr "Ð\91лок â\84\96%d Ð¾Ñ\82клонен."
 
-#: commit.c:42
+#: apply.c:4668
 #, c-format
-msgid "%s %s is not a commit!"
-msgstr "%s %s не является коммитом!"
+msgid "Skipped patch '%s'."
+msgstr "Патч «%s» пропущен."
 
-#: compat/obstack.c:406 compat/obstack.c:408
-msgid "memory exhausted"
-msgstr "памÑ\8fÑ\82Ñ\8c Ð¸Ñ\81Ñ\87еÑ\80пана"
+#: apply.c:4676
+msgid "unrecognized input"
+msgstr "не Ñ\80аÑ\81познаннÑ\8bй Ð²Ð²Ð¾Ð´"
 
-#: config.c:516
+#: apply.c:4695
+msgid "unable to read index file"
+msgstr "не удалось прочитать файл индекса"
+
+#: apply.c:4833
 #, c-format
-msgid "bad config line %d in blob %s"
-msgstr "оÑ\88ибка Ð² %d Ñ\81Ñ\82Ñ\80оке Ð´Ð²Ð¾Ð¸Ñ\87ного Ð¾Ð±Ñ\8aекÑ\82а %s"
+msgid "can't open patch '%s': %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ð¿Ð°Ñ\82Ñ\87 Â«%s»: %s"
 
-#: config.c:520
+#: apply.c:4858
 #, c-format
-msgid "bad config line %d in file %s"
-msgstr "ошибка в %d строке файла %s"
+msgid "squelched %d whitespace error"
+msgid_plural "squelched %d whitespace errors"
+msgstr[0] "пропущена %d ошибка в пробельных символах"
+msgstr[1] "пропущено %d ошибки в пробельных символах"
+msgstr[2] "пропущено %d ошибок в пробельных символах"
+msgstr[3] "пропущено %d ошибок в пробельных символах"
 
-#: config.c:524
+#: apply.c:4864 apply.c:4879
 #, c-format
-msgid "bad config line %d in standard input"
-msgstr "ошибка в %d строке стандартного ввода"
+msgid "%d line adds whitespace errors."
+msgid_plural "%d lines add whitespace errors."
+msgstr[0] "%d строка добавила ошибки в пробельных символах."
+msgstr[1] "%d строки добавили ошибки в пробельных символах."
+msgstr[2] "%d строк добавили ошибки в пробельных символах."
+msgstr[3] "%d строк добавили ошибки в пробельных символах."
 
-#: config.c:528
+#: apply.c:4872
 #, c-format
-msgid "bad config line %d in submodule-blob %s"
-msgstr "ошибка в %d строке двоичного объекта подмодуля %s"
+msgid "%d line applied after fixing whitespace errors."
+msgid_plural "%d lines applied after fixing whitespace errors."
+msgstr[0] "%d строка добавлена после исправления ошибок в пробелах."
+msgstr[1] "%d строки добавлено после исправления ошибок в пробелах."
+msgstr[2] "%d строк добавлено после исправления ошибок в пробелах."
+msgstr[3] "%d строки добавлено после исправления ошибок в пробелах."
 
-#: config.c:532
+#: apply.c:4888 builtin/add.c:463 builtin/mv.c:286 builtin/rm.c:431
+msgid "Unable to write new index file"
+msgstr "Не удалось записать новый файл индекса"
+
+#: apply.c:4919 apply.c:4922 builtin/am.c:2277 builtin/am.c:2280
+#: builtin/clone.c:95 builtin/fetch.c:98 builtin/pull.c:180
+#: builtin/submodule--helper.c:281 builtin/submodule--helper.c:407
+#: builtin/submodule--helper.c:589 builtin/submodule--helper.c:592
+#: builtin/submodule--helper.c:944 builtin/submodule--helper.c:947
+msgid "path"
+msgstr "путь"
+
+#: apply.c:4920
+msgid "don't apply changes matching the given path"
+msgstr "не применять изменения по указанному пути"
+
+#: apply.c:4923
+msgid "apply changes matching the given path"
+msgstr "применять изменения по указанному пути"
+
+#: apply.c:4925 builtin/am.c:2286
+msgid "num"
+msgstr "количество"
+
+#: apply.c:4926
+msgid "remove <num> leading slashes from traditional diff paths"
+msgstr "удалить <количество> ведущих косых черт из традиционных путей списка изменений"
+
+#: apply.c:4929
+msgid "ignore additions made by the patch"
+msgstr "игнорировать добавления, сделанные этим патчем"
+
+#: apply.c:4931
+msgid "instead of applying the patch, output diffstat for the input"
+msgstr "вместо применения патча вывести статистику добавлений и удалений для ввода"
+
+#: apply.c:4935
+msgid "show number of added and deleted lines in decimal notation"
+msgstr "показать количество добавленных и удаленных строк в десятичном представлении"
+
+#: apply.c:4937
+msgid "instead of applying the patch, output a summary for the input"
+msgstr "вместо применения патча вывести статистику изменений для ввода"
+
+#: apply.c:4939
+msgid "instead of applying the patch, see if the patch is applicable"
+msgstr "вместо применения патча проверить подходит ли он"
+
+#: apply.c:4941
+msgid "make sure the patch is applicable to the current index"
+msgstr "проверить, что патч применяется к текущему индексу"
+
+#: apply.c:4943
+msgid "apply a patch without touching the working tree"
+msgstr "применить патч, не изменяя рабочий каталог"
+
+#: apply.c:4945
+msgid "accept a patch that touches outside the working area"
+msgstr "принять патч, который затрагивает файлы за рабочим каталогом"
+
+#: apply.c:4947
+msgid "also apply the patch (use with --stat/--summary/--check)"
+msgstr "а также применить патч (используйте с --stat/--summary/--check)"
+
+#: apply.c:4949
+msgid "attempt three-way merge if a patch does not apply"
+msgstr "попытаться сделать трехходовое слияние, если патч не применяется"
+
+#: apply.c:4951
+msgid "build a temporary index based on embedded index information"
+msgstr "построить временный индекс, основанный на встроенной информации об индексе"
+
+#: apply.c:4954 builtin/checkout-index.c:169 builtin/ls-files.c:505
+msgid "paths are separated with NUL character"
+msgstr "пути, отделённые НУЛЕВЫМ символом"
+
+#: apply.c:4956
+msgid "ensure at least <n> lines of context match"
+msgstr "удостовериться, что по крайней мере <n> строк контекста совпадают"
+
+#: apply.c:4957 builtin/am.c:2265
+msgid "action"
+msgstr "действие"
+
+#: apply.c:4958
+msgid "detect new or modified lines that have whitespace errors"
+msgstr "определять новые или модифицированные строки, у которых есть ошибки в пробельных символах"
+
+#: apply.c:4961 apply.c:4964
+msgid "ignore changes in whitespace when finding context"
+msgstr "игнорировать изменения в пробельных символах при поиске контекста"
+
+#: apply.c:4967
+msgid "apply the patch in reverse"
+msgstr "применить патч с обращением изменений"
+
+#: apply.c:4969
+msgid "don't expect at least one line of context"
+msgstr "не ожидать как минимум одной строки контекста"
+
+#: apply.c:4971
+msgid "leave the rejected hunks in corresponding *.rej files"
+msgstr "оставить отклоненные блоки изменений в соответствующих *.rej файлах"
+
+#: apply.c:4973
+msgid "allow overlapping hunks"
+msgstr "разрешить перекрывающиеся блоки изменений"
+
+#: apply.c:4974 builtin/add.c:267 builtin/check-ignore.c:19
+#: builtin/commit.c:1339 builtin/count-objects.c:94 builtin/fsck.c:593
+#: builtin/log.c:1860 builtin/mv.c:110 builtin/read-tree.c:114
+msgid "be verbose"
+msgstr "быть многословнее"
+
+#: apply.c:4976
+msgid "tolerate incorrectly detected missing new-line at the end of file"
+msgstr "разрешить некорректно определенные пропущенные пустые строки в конце файла"
+
+#: apply.c:4979
+msgid "do not trust the line counts in the hunk headers"
+msgstr "не доверять количеству строк из заголовка блока изменений"
+
+#: apply.c:4981 builtin/am.c:2274
+msgid "root"
+msgstr "корень"
+
+#: apply.c:4982
+msgid "prepend <root> to all filenames"
+msgstr "добавить <корень> спереди ко всем именам файлов"
+
+#: archive.c:12
+msgid "git archive [<options>] <tree-ish> [<path>...]"
+msgstr "git archive [<опции>] <указатель-дерева> [<путь>…]"
+
+#: archive.c:13
+msgid "git archive --list"
+msgstr "git archive --list"
+
+#: archive.c:14
+msgid ""
+"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> "
+"[<path>...]"
+msgstr "git archive --remote <репозиторий> [--exec <команда>] [<опции>] <указатель-дерева> [<путь>…]"
+
+#: archive.c:15
+msgid "git archive --remote <repo> [--exec <cmd>] --list"
+msgstr "git archive --remote <репозиторий> [--exec <команда>] --list"
+
+#: archive.c:344 builtin/add.c:152 builtin/add.c:442 builtin/rm.c:327
 #, c-format
-msgid "bad config line %d in command line %s"
-msgstr "ошибка в %d строке коммандной строки %s"
+msgid "pathspec '%s' did not match any files"
+msgstr "спецификация пути «%s» не соответствует ни одному файлу"
 
-#: config.c:536
+#: archive.c:429
+msgid "fmt"
+msgstr "формат"
+
+#: archive.c:429
+msgid "archive format"
+msgstr "формат архива"
+
+#: archive.c:430 builtin/log.c:1429
+msgid "prefix"
+msgstr "префикс"
+
+#: archive.c:431
+msgid "prepend prefix to each pathname in the archive"
+msgstr "добавлять префикс перед каждым путем файла в архиве"
+
+#: archive.c:432 builtin/blame.c:2603 builtin/blame.c:2604 builtin/config.c:59
+#: builtin/fast-export.c:987 builtin/fast-export.c:989 builtin/grep.c:723
+#: builtin/hash-object.c:101 builtin/ls-files.c:539 builtin/ls-files.c:542
+#: builtin/notes.c:401 builtin/notes.c:564 builtin/read-tree.c:109
+#: parse-options.h:153
+msgid "file"
+msgstr "файл"
+
+#: archive.c:433 builtin/archive.c:89
+msgid "write the archive to this file"
+msgstr "запись архива в этот файл"
+
+#: archive.c:435
+msgid "read .gitattributes in working directory"
+msgstr "читать .gitattributes в рабочем каталоге"
+
+#: archive.c:436
+msgid "report archived files on stderr"
+msgstr "отчет об архивированных файлах в stderr"
+
+#: archive.c:437
+msgid "store only"
+msgstr "только хранение"
+
+#: archive.c:438
+msgid "compress faster"
+msgstr "сжимать быстрее"
+
+#: archive.c:446
+msgid "compress better"
+msgstr "сжимать лучше"
+
+#: archive.c:449
+msgid "list supported archive formats"
+msgstr "перечислить поддерживаемые форматы архивов"
+
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:85 builtin/clone.c:88
+#: builtin/submodule--helper.c:601 builtin/submodule--helper.c:953
+msgid "repo"
+msgstr "репозиторий"
+
+#: archive.c:452 builtin/archive.c:91
+msgid "retrieve the archive from remote repository <repo>"
+msgstr "получить архив из внешнего <репозитория>"
+
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:485
+msgid "command"
+msgstr "команда"
+
+#: archive.c:454 builtin/archive.c:93
+msgid "path to the remote git-upload-archive command"
+msgstr "путь к команде git-upload-archive на машине с внешним репозиторием"
+
+#: archive.c:461
+msgid "Unexpected option --remote"
+msgstr "Неожиданная опция --remote"
+
+#: archive.c:463
+msgid "Option --exec can only be used together with --remote"
+msgstr "Опция --exec может использоваться только вместе с --remote"
+
+#: archive.c:465
+msgid "Unexpected option --output"
+msgstr "Неожиданная опция --output"
+
+#: archive.c:487
 #, c-format
-msgid "bad config line %d in %s"
-msgstr "оÑ\88ибка Ð² %d Ñ\81Ñ\82Ñ\80оке Ð² %s"
+msgid "Unknown archive format '%s'"
+msgstr "Ð\9dеизвеÑ\81Ñ\82нÑ\8bй Ñ\84оÑ\80маÑ\82 Ð°Ñ\80Ñ\85ива Â«%s»"
 
-#: config.c:655
-msgid "out of range"
-msgstr "вне диапазона"
+#: archive.c:494
+#, c-format
+msgid "Argument not supported for format '%s': -%d"
+msgstr "Аргумент не поддерживается для формата «%s»: -%d"
 
-#: config.c:655
-msgid "invalid unit"
-msgstr "неправильное число"
+#: attr.c:263
+msgid ""
+"Negative patterns are ignored in git attributes\n"
+"Use '\\!' for literal leading exclamation."
+msgstr "Отрицающие шаблоны в атрибутах git игнорируются.\nИспользуйте «\\!» для буквального использования символа в значении «восклицательный знак»."
 
-#: config.c:661
+#: bisect.c:441
 #, c-format
-msgid "bad numeric config value '%s' for '%s': %s"
-msgstr "непÑ\80авилÑ\8cное Ñ\87иÑ\81ловое Ð·Ð½Ð°Ñ\87ение Â«%s» Ð´Ð»Ñ\8f Â«%s»: %s"
+msgid "Could not open file '%s'"
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\84айл Â«%s»"
 
-#: config.c:666
+#: bisect.c:446
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
-msgstr "непÑ\80авилÑ\8cное Ñ\87иÑ\81ловое Ð·Ð½Ð°Ñ\87ение Â«%s» Ð´Ð»Ñ\8f Â«%s» Ð² Ð´Ð²Ð¾Ð¸Ñ\87ном Ð¾Ð±Ñ\8aекÑ\82е %s: %s"
+msgid "Badly quoted content in file '%s': %s"
+msgstr "Ð\9fлоÑ\85ое Ñ\81одеÑ\80жимое Ñ\84айла Â«%s»: %s"
 
-#: config.c:669
+#: bisect.c:655
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in file %s: %s"
-msgstr "непÑ\80авилÑ\8cное Ñ\87иÑ\81ловое Ð·Ð½Ð°Ñ\87ение Â«%s» Ð´Ð»Ñ\8f Â«%s» Ð² Ñ\84айле %s: %s"
+msgid "We cannot bisect more!\n"
+msgstr "Ð\9dевозможно Ð¿Ñ\80одолжиÑ\82Ñ\8c Ð±Ð¸Ð½Ð°Ñ\80нÑ\8bй Ð¿Ð¾Ð¸Ñ\81к!\n"
 
-#: config.c:672
+#: bisect.c:708
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in standard input: %s"
-msgstr "непÑ\80авилÑ\8cное Ñ\87иÑ\81ловое Ð·Ð½Ð°Ñ\87ение Â«%s» Ð´Ð»Ñ\8f Â«%s» Ð½Ð° Ñ\81Ñ\82андаÑ\80Ñ\82ном Ð²Ð²Ð¾Ð´Ðµ: %s"
+msgid "Not a valid commit name %s"
+msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имое Ð¸Ð¼Ñ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а %s"
 
-#: config.c:675
+#: bisect.c:732
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
-msgstr "неправильное числовое значение «%s» для «%s» в двоичном объекте подмодуля %s: %s"
+msgid ""
+"The merge base %s is bad.\n"
+"This means the bug has been fixed between %s and [%s].\n"
+msgstr "База слияния %s является плохим коммитом.\nЭто значит, что ошибка была исправлена где-то между %s и [%s].\n"
 
-#: config.c:678
+#: bisect.c:737
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
-msgstr "неправильное числовое значение «%s» для «%s» на коммандной строке %s: %s"
+msgid ""
+"The merge base %s is new.\n"
+"The property has changed between %s and [%s].\n"
+msgstr "База слияния %s является новой.\nСвойство было изменено где-то между %s и [%s].\n"
 
-#: config.c:681
+#: bisect.c:742
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "неправильное числовое значение «%s» для «%s» в %s: %s"
+msgid ""
+"The merge base %s is %s.\n"
+"This means the first '%s' commit is between %s and [%s].\n"
+msgstr "База слияния %s является %s.\nЭто значит, что «%s» коммит находится где-то между %s и [%s].\n"
 
-#: config.c:768
+#: bisect.c:750
 #, c-format
-msgid "failed to expand user dir in: '%s'"
-msgstr "сбой разворачивания пути каталога пользователя: «%s»"
+msgid ""
+"Some %s revs are not ancestor of the %s rev.\n"
+"git bisect cannot work properly in this case.\n"
+"Maybe you mistook %s and %s revs?\n"
+msgstr "Несколько %s коммитов не являются предками %s коммита.\nВ этом случае git bisect не может работать правильно.\nВозможно, вы перепутали редакции %s и %s местами?\n"
 
-#: config.c:849 config.c:860
+#: bisect.c:763
 #, c-format
-msgid "bad zlib compression level %d"
-msgstr "неправильный уровень сжатия zlib %d"
+msgid ""
+"the merge base between %s and [%s] must be skipped.\n"
+"So we cannot be sure the first %s commit is between %s and %s.\n"
+"We continue anyway."
+msgstr "База слияния между %s и [%s] должно быть пропущена.\nПоэтому мы не можем быть уверены, что первый %s коммит находится между %s и %s.\nНо все же продолжаем поиск."
 
-#: config.c:978
+#: bisect.c:798
 #, c-format
-msgid "invalid mode for object creation: %s"
-msgstr "недопÑ\83Ñ\81Ñ\82имÑ\8bй Ñ\80ежим Ñ\81озданиÑ\8f Ð¾Ð±Ñ\8aекÑ\82а: %s"
+msgid "Bisecting: a merge base must be tested\n"
+msgstr "Ð\91инаÑ\80нÑ\8bй Ð¿Ð¾Ð¸Ñ\81к: Ð±Ð°Ð·Ð° Ñ\81лиÑ\8fниÑ\8f Ð´Ð¾Ð»Ð¶Ð½Ð° Ð±Ñ\8bÑ\82Ñ\8c Ð¿Ñ\80овеÑ\80ена\n"
 
-#: config.c:1312
-msgid "unable to parse command-line config"
-msgstr "не удалось разобрать конфигурацию из командной строки"
+#: bisect.c:849
+#, c-format
+msgid "a %s revision is needed"
+msgstr "нужно указать %s редакцию"
 
-#: config.c:1362
-msgid "unknown error occurred while reading the configuration files"
-msgstr "произошла неизвестная ошибка при чтении файлов конфигурации"
+#: bisect.c:866 builtin/notes.c:174 builtin/tag.c:248
+#, c-format
+msgid "could not create file '%s'"
+msgstr "не удалось создать файл «%s»"
 
-#: config.c:1716
+#: bisect.c:917
 #, c-format
-msgid "unable to parse '%s' from command-line config"
-msgstr "не удалось разобрать «%s» в конфигурации из командной строки"
+msgid "could not read file '%s'"
+msgstr "не удалось прочитать файл «%s»"
 
-#: config.c:1718
+#: bisect.c:947
+msgid "reading bisect refs failed"
+msgstr "сбой при чтении ссылок двоичного поиска"
+
+#: bisect.c:967
 #, c-format
-msgid "bad config variable '%s' in file '%s' at line %d"
-msgstr "неправильная переменная конфигурации «%s» в файле «%s» на строке %d"
+msgid "%s was both %s and %s\n"
+msgstr "%s была одновременно и %s и %s\n"
 
-#: config.c:1777
+#: bisect.c:975
 #, c-format
-msgid "%s has multiple values"
-msgstr "%s имеет несколько значений"
+msgid ""
+"No testable commit found.\n"
+"Maybe you started with bad path parameters?\n"
+msgstr "Тестируемый коммит не найден.\nВозможно, вы начали поиск с указанием неправильного параметра пути?\n"
 
-#: config.c:2311
+#: bisect.c:994
 #, c-format
-msgid "could not set '%s' to '%s'"
-msgstr "не удалось установить «%s» в «%s»"
+msgid "(roughly %d step)"
+msgid_plural "(roughly %d steps)"
+msgstr[0] "(примерно %d шаг)"
+msgstr[1] "(примерно %d шага)"
+msgstr[2] "(примерно %d шагов)"
+msgstr[3] "(примерно %d шагов)"
 
-#: config.c:2313
+#. TRANSLATORS: the last %s will be replaced with
+#. "(roughly %d steps)" translation
+#: bisect.c:998
 #, c-format
-msgid "could not unset '%s'"
-msgstr "не удалось сбросить значение для «%s»"
+msgid "Bisecting: %d revision left to test after this %s\n"
+msgid_plural "Bisecting: %d revisions left to test after this %s\n"
+msgstr[0] "Бинарный поиск: %d редакцию осталось проверить после этой %s\n"
+msgstr[1] "Бинарный поиск: %d редакции осталось проверить после этой %s\n"
+msgstr[2] "Бинарный поиск: %d редакций осталось проверить после этой %s\n"
+msgstr[3] "Бинарный поиск: %d редакций осталось проверить после этой %s\n"
 
-#: connected.c:63 builtin/fsck.c:173 builtin/prune.c:140
-msgid "Checking connectivity"
-msgstr "Проверка соединения"
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr "\nПосле исправления причины ошибки,\nвы можете исправить информацию об отслеживаемой\nвнешней ветке, с помощью команды\n«git branch --set-upstream-to=%s%s%s»."
 
-#: connected.c:74
-msgid "Could not run 'git rev-list'"
-msgstr "Не удалось запустить «git rev-list»"
+#: branch.c:67
+#, c-format
+msgid "Not setting branch %s as its own upstream."
+msgstr "Не устанавливаю ветку %s, так так она принадлежит вышестоящему репозиторию."
 
-#: connected.c:94
-msgid "failed write to rev-list"
-msgstr "сбой записи в rev-list"
+#: branch.c:93
+#, c-format
+msgid "Branch %s set up to track remote branch %s from %s by rebasing."
+msgstr "Ветка %s отслеживает внешнюю ветку %s из %s перемещением."
 
-#: connected.c:101
-msgid "failed to close rev-list's stdin"
-msgstr "сбой закрытия стандартного ввода у rev-list"
+#: branch.c:94
+#, c-format
+msgid "Branch %s set up to track remote branch %s from %s."
+msgstr "Ветка %s отслеживает внешнюю ветку %s из %s."
 
-#: date.c:97
-msgid "in the future"
-msgstr "в будущем"
+#: branch.c:98
+#, c-format
+msgid "Branch %s set up to track local branch %s by rebasing."
+msgstr "Ветка %s отслеживает локальную ветку %s перемещением."
 
-#: date.c:103
+#: branch.c:99
 #, c-format
-msgid "%lu second ago"
-msgid_plural "%lu seconds ago"
-msgstr[0] "%lu секунду назад"
-msgstr[1] "%lu секунды назад"
-msgstr[2] "%lu секунд назад"
-msgstr[3] "%lu секунд назад"
+msgid "Branch %s set up to track local branch %s."
+msgstr "Ветка %s отслеживает локальную ветку %s."
 
-#: date.c:110
+#: branch.c:104
 #, c-format
-msgid "%lu minute ago"
-msgid_plural "%lu minutes ago"
-msgstr[0] "%lu минуту назад"
-msgstr[1] "%lu минуты назад"
-msgstr[2] "%lu минут назад"
-msgstr[3] "%lu минут назад"
+msgid "Branch %s set up to track remote ref %s by rebasing."
+msgstr "Ветка %s отслеживает внешнюю ссылку %s перемещением."
 
-#: date.c:117
+#: branch.c:105
 #, c-format
-msgid "%lu hour ago"
-msgid_plural "%lu hours ago"
-msgstr[0] "%lu час назад"
-msgstr[1] "%lu часа назад"
-msgstr[2] "%lu часов назад"
-msgstr[3] "%lu часов назад"
+msgid "Branch %s set up to track remote ref %s."
+msgstr "Ветка %s отслеживает внешнюю ссылку %s."
 
-#: date.c:124
+#: branch.c:109
 #, c-format
-msgid "%lu day ago"
-msgid_plural "%lu days ago"
-msgstr[0] "%lu день назад"
-msgstr[1] "%lu дня назад"
-msgstr[2] "%lu дней назад"
-msgstr[3] "%lu дней назад"
+msgid "Branch %s set up to track local ref %s by rebasing."
+msgstr "Ветка %s отслеживает локальную ссылку %s перемещением."
 
-#: date.c:130
+#: branch.c:110
 #, c-format
-msgid "%lu week ago"
-msgid_plural "%lu weeks ago"
-msgstr[0] "%lu неделю назад"
-msgstr[1] "%lu недели назад"
-msgstr[2] "%lu недель назад"
-msgstr[3] "%lu недель назад"
+msgid "Branch %s set up to track local ref %s."
+msgstr "Ветка %s отслеживает локальную ссылку %s."
 
-#: date.c:137
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Не удалось записать настройки вышестоящей ветки"
+
+#: branch.c:156
 #, c-format
-msgid "%lu month ago"
-msgid_plural "%lu months ago"
-msgstr[0] "%lu месяц назад"
-msgstr[1] "%lu месяца назад"
-msgstr[2] "%lu месяцев назад"
-msgstr[3] "%lu месяцев назад"
+msgid "Not tracking: ambiguous information for ref %s"
+msgstr "Не отслеживается: неоднозначная информация для ссылки %s"
 
-#: date.c:148
+#: branch.c:185
 #, c-format
-msgid "%lu year"
-msgid_plural "%lu years"
-msgstr[0] "%lu год"
-msgstr[1] "%lu года"
-msgstr[2] "%lu лет"
-msgstr[3] "%lu лет"
+msgid "'%s' is not a valid branch name."
+msgstr "«%s» не является действительным именем ветки."
 
-#. TRANSLATORS: "%s" is "<n> years"
-#: date.c:151
+#: branch.c:190
 #, c-format
-msgid "%s, %lu month ago"
-msgid_plural "%s, %lu months ago"
-msgstr[0] "%s и %lu месяц назад"
-msgstr[1] "%s и %lu месяца назад"
-msgstr[2] "%s и %lu месяцев назад"
-msgstr[3] "%s и %lu месяцев назад"
+msgid "A branch named '%s' already exists."
+msgstr "Ветка с именем «%s» уже существует."
 
-#: date.c:156 date.c:161
+#: branch.c:198
+msgid "Cannot force update the current branch."
+msgstr "Не удалось принудительно обновить текущую ветку."
+
+#: branch.c:218
 #, c-format
-msgid "%lu year ago"
-msgid_plural "%lu years ago"
-msgstr[0] "%lu год назад"
-msgstr[1] "%lu года назад"
-msgstr[2] "%lu лет назад"
-msgstr[3] "%lu лет назад"
+msgid ""
+"Cannot setup tracking information; starting point '%s' is not a branch."
+msgstr "Не удалось настроить информацию отслеживания; стартовая точка «%s» не является веткой."
 
-#: diffcore-order.c:24
+#: branch.c:220
 #, c-format
-msgid "failed to read orderfile '%s'"
-msgstr "сбой чтения orderfile «%s»"
+msgid "the requested upstream branch '%s' does not exist"
+msgstr "запрошенная ветка вышестоящего репозитория «%s» не существует"
 
-#: diffcore-rename.c:540
-msgid "Performing inexact rename detection"
-msgstr "Выполняется неточное определение переименования"
+#: branch.c:222
+msgid ""
+"\n"
+"If you are planning on basing your work on an upstream\n"
+"branch that already exists at the remote, you may need to\n"
+"run \"git fetch\" to retrieve it.\n"
+"\n"
+"If you are planning to push out a new local branch that\n"
+"will track its remote counterpart, you may want to use\n"
+"\"git push -u\" to set the upstream config as you push."
+msgstr "\nЕсли вы планируете основывать свою работу на вышестоящей ветке, которая уже существует во внешнем репозитории, вам может потребоваться запустить «git fetch» для ее получения.\n\nЕсли вы планируете отправить новую локальную ветку, которая будет отслеживаться, во внешний репозиторий, вам может потребоваться запустить «git push -u» — чтобы сохранить настройку вышестоящего репозитория для отправки."
 
-#: diff.c:116
+#: branch.c:265
 #, c-format
-msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
-msgstr "  Сбой разбора величины среза (cut-off) у dirstat «%s»\n"
+msgid "Not a valid object name: '%s'."
+msgstr "Недопустимое имя объекта: «%s»."
 
-#: diff.c:121
+#: branch.c:285
 #, c-format
-msgid "  Unknown dirstat parameter '%s'\n"
-msgstr "Ð\9dеизвеÑ\81Ñ\82нÑ\8bй Ð¿Ð°Ñ\80амеÑ\82Ñ\80 dirstat: Â«%s»\n"
+msgid "Ambiguous object name: '%s'."
+msgstr "Ð\9dеоднознаÑ\87ное Ð¸Ð¼Ñ\8f Ð¾Ð±Ñ\8aекÑ\82а: Â«%s»."
 
-#: diff.c:225
+#: branch.c:290
 #, c-format
-msgid "Unknown value for 'diff.submodule' config variable: '%s'"
-msgstr "Ð\9dеизвеÑ\81Ñ\82ное Ð·Ð½Ð°Ñ\87ениÑ\8f Ð´Ð»Ñ\8f Ð¿ÐµÑ\80еменной Â«diff.submodule»: Â«%s»"
+msgid "Not a valid branch point: '%s'."
+msgstr "Ð\9dедопÑ\83Ñ\81Ñ\82имаÑ\8f Ñ\82оÑ\87ка Ð²ÐµÑ\82ки: Â«%s»."
 
-#: diff.c:277
+#: branch.c:344
 #, c-format
-msgid ""
-"Found errors in 'diff.dirstat' config variable:\n"
-"%s"
-msgstr "Найдены ошибки в переменной «diff.dirstat»:\n%s"
+msgid "'%s' is already checked out at '%s'"
+msgstr "«%s» уже находится на «%s»"
 
-#: diff.c:3017
+#: branch.c:363
 #, c-format
-msgid "external diff died, stopping at %s"
-msgstr "критическая ошибка при внешнем сравнении, останов на %s"
+msgid "HEAD of working tree %s is not updated"
+msgstr "HEAD рабочего каталога %s не обновлён"
 
-#: diff.c:3415
-msgid "--follow requires exactly one pathspec"
-msgstr "--follow требует ровно одной спецификации пути"
+#: bundle.c:34
+#, c-format
+msgid "'%s' does not look like a v2 bundle file"
+msgstr "«%s» не похож на файл пакета версии 2"
 
-#: diff.c:3578
+#: bundle.c:61
 #, c-format
-msgid ""
-"Failed to parse --dirstat/-X option parameter:\n"
-"%s"
-msgstr "Сбой разбора параметра опции --dirstat/-X :\n%s"
+msgid "unrecognized header: %s%s (%d)"
+msgstr "неопознанный заголовок: %s%s (%d)"
 
-#: diff.c:3592
+#: bundle.c:87 sequencer.c:963 builtin/commit.c:777
 #, c-format
-msgid "Failed to parse --submodule option parameter: '%s'"
-msgstr "Сбой Ñ\80азбоÑ\80а Ð¿Ð°Ñ\80амеÑ\82Ñ\80а Ð¾Ð¿Ñ\86ии --submodule: «%s»"
+msgid "could not open '%s'"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c «%s»"
 
-#: dir.c:1823
-msgid "failed to get kernel name and information"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ð¾Ð»Ñ\83Ñ\87иÑ\82Ñ\8c Ð¸Ð¼Ñ\8f Ñ\8fдÑ\80а Ð¸ Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8e"
+#: bundle.c:139
+msgid "Repository lacks these prerequisite commits:"
+msgstr "Ð\92 Ñ\80епозиÑ\82оÑ\80ии Ð¾Ñ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\82 Ð½ÐµÐ¾Ð±Ñ\85одимÑ\8bе ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82Ñ\8b:"
 
-#: dir.c:1942
-msgid "Untracked cache is disabled on this system or location."
-msgstr "Кэш неотслеживаемых файлов отключен на этой системе или в этом месте."
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:830 sequencer.c:1374
+#: builtin/blame.c:2814 builtin/commit.c:1061 builtin/log.c:348
+#: builtin/log.c:890 builtin/log.c:1340 builtin/log.c:1666 builtin/log.c:1909
+#: builtin/merge.c:356 builtin/shortlog.c:170
+msgid "revision walk setup failed"
+msgstr "сбой инициализации прохода по редакциям"
 
-#: gpg-interface.c:178
-msgid "gpg failed to sign the data"
-msgstr "gpg не удалось подписать данные"
+#: bundle.c:185
+#, c-format
+msgid "The bundle contains this ref:"
+msgid_plural "The bundle contains these %d refs:"
+msgstr[0] "Пакет содержит эту %d ссылку:"
+msgstr[1] "Пакет содержит эти %d ссылки:"
+msgstr[2] "Пакет содержит эти %d ссылок:"
+msgstr[3] "Пакет содержит эти %d ссылок:"
 
-#: gpg-interface.c:208
-msgid "could not create temporary file"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\81оздаÑ\82Ñ\8c Ð²Ñ\80еменнÑ\8bй Ñ\84айл"
+#: bundle.c:192
+msgid "The bundle records a complete history."
+msgstr "Ð\9fакеÑ\82 Ñ\81одеÑ\80жиÑ\82 Ð¿Ð¾Ð»Ð½Ñ\83Ñ\8e Ð¸Ñ\81Ñ\82оÑ\80иÑ\8e."
 
-#: gpg-interface.c:210
+#: bundle.c:194
 #, c-format
-msgid "failed writing detached signature to '%s'"
-msgstr "сбой записи отсоединенной подписи в «%s»"
+msgid "The bundle requires this ref:"
+msgid_plural "The bundle requires these %d refs:"
+msgstr[0] "Пакет требует эту %d ссылку:"
+msgstr[1] "Пакет требует эти %d ссылки:"
+msgstr[2] "Пакет требует эти %d ссылок:"
+msgstr[3] "Пакет требует эти %d ссылок:"
 
-#: grep.c:1792
-#, c-format
-msgid "'%s': unable to read %s"
-msgstr "«%s»: не удалось прочесть %s"
+#: bundle.c:253
+msgid "Could not spawn pack-objects"
+msgstr "Не удалось создать объекты пакета"
 
-#: grep.c:1809 builtin/clone.c:382 builtin/diff.c:84 builtin/rm.c:155
-#, c-format
-msgid "failed to stat '%s'"
-msgstr "не удалось выполнить stat «%s»"
+#: bundle.c:264
+msgid "pack-objects died"
+msgstr "критическая ошибка pack-objects"
 
-#: grep.c:1820
-#, c-format
-msgid "'%s': short read"
-msgstr "«%s»: слишком мало данных прочитано"
+#: bundle.c:304
+msgid "rev-list died"
+msgstr "критическая ошибка rev-list"
 
-#: help.c:205
+#: bundle.c:353
 #, c-format
-msgid "available git commands in '%s'"
-msgstr "доступные команды git в «%s»"
+msgid "ref '%s' is excluded by the rev-list options"
+msgstr "ссылка «%s» исключена в соответствии с опциями rev-list"
 
-#: help.c:212
-msgid "git commands available from elsewhere on your $PATH"
-msgstr "команды git, доступные в других местах вашего $PATH"
+#: bundle.c:443 builtin/log.c:165 builtin/log.c:1572 builtin/shortlog.c:273
+#, c-format
+msgid "unrecognized argument: %s"
+msgstr "неопознанный аргумент: %s"
 
-#: help.c:244
-msgid "These are common Git commands used in various situations:"
-msgstr "СÑ\82андаÑ\80Ñ\82нÑ\8bе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\8b Git Ð¸Ñ\81полÑ\8cзÑ\83емÑ\8bе Ð² Ñ\80азлиÑ\87нÑ\8bÑ\85 Ñ\81иÑ\82Ñ\83аÑ\86иÑ\8fÑ\85:"
+#: bundle.c:451
+msgid "Refusing to create empty bundle."
+msgstr "Ð\9eÑ\82клонение Ñ\81озданиÑ\8f Ð¿Ñ\83Ñ\81Ñ\82ого Ð¿Ð°ÐºÐµÑ\82а."
 
-#: help.c:309
+#: bundle.c:463
 #, c-format
-msgid ""
-"'%s' appears to be a git command, but we were not\n"
-"able to execute it. Maybe git-%s is broken?"
-msgstr "«%s» похоже на команду git, но нам не удалось ее запустить. Возможно, git-%s  не работает?"
+msgid "cannot create '%s'"
+msgstr "не удалось создать «%s»"
 
-#: help.c:366
-msgid "Uh oh. Your system reports no Git commands at all."
-msgstr "Ð\9eй-Ñ\91й! Ð\92аÑ\88а Ñ\81иÑ\81Ñ\82ема Ð½Ðµ Ñ\81ообÑ\89аеÑ\82 Ð½Ð¸ Ð¾ ÐºÐ°ÐºÐ¸Ñ\85 ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ\85 Git Ð²Ð¾Ð¾Ð±Ñ\89е."
+#: bundle.c:491
+msgid "index-pack died"
+msgstr "кÑ\80иÑ\82иÑ\87еÑ\81каÑ\8f Ð¾Ñ\88ибка index-pack"
 
-#: help.c:388
+#: color.c:290
 #, c-format
-msgid ""
-"WARNING: You called a Git command named '%s', which does not exist.\n"
-"Continuing under the assumption that you meant '%s'"
-msgstr "ВНИМАНИЕ: Вы вызвали команду Git «%s», но такой не существует.\nПродолжаем с предположением, что вы имели в виду «%s»"
+msgid "invalid color value: %.*s"
+msgstr "недопустимое значение цвета: %.*s"
 
-#: help.c:393
+#: commit.c:40 builtin/am.c:421 builtin/am.c:457 builtin/am.c:1493
+#: builtin/am.c:2127
 #, c-format
-msgid "in %0.1f seconds automatically..."
-msgstr "через %0.1f секунд автоматически…"
+msgid "could not parse %s"
+msgstr "не удалось разобрать %s"
 
-#: help.c:400
+#: commit.c:42
 #, c-format
-msgid "git: '%s' is not a git command. See 'git --help'."
-msgstr "git: «%s» не является командой git. Смотрите «git --help»."
+msgid "%s %s is not a commit!"
+msgstr "%s %s не является коммитом!"
 
-#: help.c:404 help.c:470
+#: commit.c:1514
 msgid ""
-"\n"
-"Did you mean this?"
-msgid_plural ""
-"\n"
-"Did you mean one of these?"
-msgstr[0] "\nВозможно, вы имели в виду это?"
-msgstr[1] "\nВозможно, вы имели в виду что-то из этого?"
-msgstr[2] "\nВозможно, вы имели в виду что-то из этого?"
-msgstr[3] "\nВозможно, вы имели в виду что-то из этого?"
+"Warning: commit message did not conform to UTF-8.\n"
+"You may want to amend it after fixing the message, or set the config\n"
+"variable i18n.commitencoding to the encoding your project uses.\n"
+msgstr "Предупреждение: сообщение коммита не соответствует UTF-8.\nВозможно, вы захотите исправить его после исправления сообщения\nили настроить опцию i18n.commitencoding и указать кодировку\nсообщений, которую использует ваш проект.\n"
 
-#: help.c:466
-#, c-format
-msgid "%s: %s - %s"
-msgstr "%s: %s — %s"
+#: compat/obstack.c:406 compat/obstack.c:408
+msgid "memory exhausted"
+msgstr "память исчерпана"
 
-#: lockfile.c:152
+#: config.c:516
 #, c-format
-msgid ""
-"Unable to create '%s.lock': %s.\n"
-"\n"
-"Another git process seems to be running in this repository, e.g.\n"
-"an editor opened by 'git commit'. Please make sure all processes\n"
-"are terminated then try again. If it still fails, a git process\n"
-"may have crashed in this repository earlier:\n"
-"remove the file manually to continue."
-msgstr "Не удалось создать «%s.lock»: %s.\n\nПохоже, что другой процесс git запущен в этом репозитории,\nнапример редактор открыт из «git commit». Пожалуйста, убедитесь,\nчто все процессы были завершены и потом попробуйте снова.\nЕсли это не поможет, то возможно процесс git был ранее завершен\nс ошибкой в этом репозитории: \nудалите файл вручную для продолжения."
+msgid "bad config line %d in blob %s"
+msgstr "ошибка в %d строке двоичного объекта %s"
 
-#: lockfile.c:160
+#: config.c:520
 #, c-format
-msgid "Unable to create '%s.lock': %s"
-msgstr "Не удалось создать «%s.lock»: %s"
-
-#: merge.c:41
-msgid "failed to read the cache"
-msgstr "сбой чтения кэша"
-
-#: merge.c:94 builtin/am.c:1992 builtin/am.c:2027 builtin/checkout.c:375
-#: builtin/checkout.c:589 builtin/clone.c:732
-msgid "unable to write new index file"
-msgstr "не удалось записать новый файл индекса"
-
-#: merge-recursive.c:209
-msgid "(bad commit)\n"
-msgstr "(плохой коммит)\n"
+msgid "bad config line %d in file %s"
+msgstr "ошибка в %d строке файла %s"
 
-#: merge-recursive.c:231
+#: config.c:524
 #, c-format
-msgid "addinfo_cache failed for path '%s'"
-msgstr "сбой addinfo_cache для пути «%s»"
-
-#: merge-recursive.c:301
-msgid "error building trees"
-msgstr "ошибка при построении деревьев"
+msgid "bad config line %d in standard input"
+msgstr "ошибка в %d строке стандартного ввода"
 
-#: merge-recursive.c:720
+#: config.c:528
 #, c-format
-msgid "failed to create path '%s'%s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\81оздаÑ\82Ñ\8c Ð¿Ñ\83Ñ\82Ñ\8c Â«%s»%s"
+msgid "bad config line %d in submodule-blob %s"
+msgstr "оÑ\88ибка Ð² %d Ñ\81Ñ\82Ñ\80оке Ð´Ð²Ð¾Ð¸Ñ\87ного Ð¾Ð±Ñ\8aекÑ\82а Ð¿Ð¾Ð´Ð¼Ð¾Ð´Ñ\83лÑ\8f %s"
 
-#: merge-recursive.c:731
+#: config.c:532
 #, c-format
-msgid "Removing %s to make room for subdirectory\n"
-msgstr "Удаление %s, чтобы освободить место для подкаталогов\n"
-
-#: merge-recursive.c:745 merge-recursive.c:764
-msgid ": perhaps a D/F conflict?"
-msgstr ": возможно, конфликт каталогов/файлов?"
+msgid "bad config line %d in command line %s"
+msgstr "ошибка в %d строке коммандной строки %s"
 
-#: merge-recursive.c:754
+#: config.c:536
 #, c-format
-msgid "refusing to lose untracked file at '%s'"
-msgstr "оÑ\82каз Ð¿Ð¾Ñ\82еÑ\80и Ð½ÐµÐ¾Ñ\82Ñ\81леживаемого Ñ\84айла Ð² Â«%s»"
+msgid "bad config line %d in %s"
+msgstr "оÑ\88ибка Ð² %d Ñ\81Ñ\82Ñ\80оке Ð² %s"
 
-#: merge-recursive.c:796
-#, c-format
-msgid "cannot read object %s '%s'"
-msgstr "невозможно прочитать объект %s «%s»"
+#: config.c:655
+msgid "out of range"
+msgstr "вне диапазона"
 
-#: merge-recursive.c:798
-#, c-format
-msgid "blob expected for %s '%s'"
-msgstr "ожидается двоичный объект для %s «%s»"
+#: config.c:655
+msgid "invalid unit"
+msgstr "неправильное число"
 
-#: merge-recursive.c:822
+#: config.c:661
 #, c-format
-msgid "failed to open '%s': %s"
-msgstr "не удалось открыть «%s»: %s"
+msgid "bad numeric config value '%s' for '%s': %s"
+msgstr "неправильное числовое значение «%s» для «%s»: %s"
 
-#: merge-recursive.c:833
+#: config.c:666
 #, c-format
-msgid "failed to symlink '%s': %s"
-msgstr "не удалось создать символьную ссылку «%s»: %s"
+msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
+msgstr "неправильное числовое значение «%s» для «%s» в двоичном объекте %s: %s"
 
-#: merge-recursive.c:838
+#: config.c:669
 #, c-format
-msgid "do not know what to do with %06o %s '%s'"
-msgstr "не понятно, что делать с %06o %s «%s»"
-
-#: merge-recursive.c:978
-msgid "Failed to execute internal merge"
-msgstr "Не удалось запустить внутреннее слияние"
+msgid "bad numeric config value '%s' for '%s' in file %s: %s"
+msgstr "неправильное числовое значение «%s» для «%s» в файле %s: %s"
 
-#: merge-recursive.c:982
+#: config.c:672
 #, c-format
-msgid "Unable to add %s to database"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ\82Ñ\8c %s Ð² Ð±Ð°Ð·Ñ\83 Ð´Ð°Ð½Ð½Ñ\8bÑ\85"
+msgid "bad numeric config value '%s' for '%s' in standard input: %s"
+msgstr "непÑ\80авилÑ\8cное Ñ\87иÑ\81ловое Ð·Ð½Ð°Ñ\87ение Â«%s» Ð´Ð»Ñ\8f Â«%s» Ð½Ð° Ñ\81Ñ\82андаÑ\80Ñ\82ном Ð²Ð²Ð¾Ð´Ðµ: %s"
 
-#: merge-recursive.c:1081 merge-recursive.c:1095
+#: config.c:675
 #, c-format
-msgid ""
-"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
-"in tree."
-msgstr "КОНФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. Версия %s из %s оставлена в дереве."
+msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
+msgstr "неправильное числовое значение «%s» для «%s» в двоичном объекте подмодуля %s: %s"
 
-#: merge-recursive.c:1087 merge-recursive.c:1100
+#: config.c:678
 #, c-format
-msgid ""
-"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
-"in tree at %s."
-msgstr "КОНФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. Версия %s из %s оставлена в дереве на %s."
+msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
+msgstr "неправильное числовое значение «%s» для «%s» на коммандной строке %s: %s"
 
-#: merge-recursive.c:1143
-msgid "rename"
-msgstr "переименование"
+#: config.c:681
+#, c-format
+msgid "bad numeric config value '%s' for '%s' in %s: %s"
+msgstr "неправильное числовое значение «%s» для «%s» в %s: %s"
 
-#: merge-recursive.c:1143
-msgid "renamed"
-msgstr "переименовано"
+#: config.c:768
+#, c-format
+msgid "failed to expand user dir in: '%s'"
+msgstr "сбой разворачивания пути каталога пользователя: «%s»"
 
-#: merge-recursive.c:1200
+#: config.c:852 config.c:863
 #, c-format
-msgid "%s is a directory in %s adding as %s instead"
-msgstr "%s — это каталог в %s, добавляем как %s вместо этого"
+msgid "bad zlib compression level %d"
+msgstr "неправильный уровень сжатия zlib %d"
 
-#: merge-recursive.c:1225
+#: config.c:978
 #, c-format
-msgid ""
-"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
-"\"%s\"->\"%s\" in \"%s\"%s"
-msgstr "КОНФЛИКТ (переименование/переименование): Переименование «%s»→«%s» в ветке «%s» и переименование «%s»→«%s» в ветке «%s»%s"
+msgid "invalid mode for object creation: %s"
+msgstr "недопустимый режим создания объекта: %s"
 
-#: merge-recursive.c:1230
-msgid " (left unresolved)"
-msgstr " (оставлено неразрешенным)"
+#: config.c:1312
+msgid "unable to parse command-line config"
+msgstr "не удалось разобрать конфигурацию из командной строки"
 
-#: merge-recursive.c:1292
-#, c-format
-msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
-msgstr "КОНФЛИКТ (переименование/переименование): Переименование «%s»→«%s» в ветке «%s» и переименование «%s»→«%s» в ветке «%s»"
+#: config.c:1362
+msgid "unknown error occurred while reading the configuration files"
+msgstr "произошла неизвестная ошибка при чтении файлов конфигурации"
 
-#: merge-recursive.c:1325
+#: config.c:1716
 #, c-format
-msgid "Renaming %s to %s and %s to %s instead"
-msgstr "Ð\9fеÑ\80еименовÑ\8bваÑ\8e %s Ð² %s Ð¸ %s Ð² %s Ð²Ð¼ÐµÑ\81Ñ\82о Ñ\8dÑ\82ого"
+msgid "unable to parse '%s' from command-line config"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\80азобÑ\80аÑ\82Ñ\8c Â«%s» Ð² ÐºÐ¾Ð½Ñ\84игÑ\83Ñ\80аÑ\86ии Ð¸Ð· ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ Ñ\81Ñ\82Ñ\80оки"
 
-#: merge-recursive.c:1531
+#: config.c:1718
 #, c-format
-msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
-msgstr "Ð\9aÐ\9eÐ\9dФÐ\9bÐ\98Ð\9aТ (пеÑ\80еименование/добавление): Ð\9fеÑ\80еименование Â«%s»â\86\92«%s» Ð² Ð²ÐµÑ\82ке Â«%s» Ð¸ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ Â«%s» Ð² Ð²ÐµÑ\82ке Â«%s»"
+msgid "bad config variable '%s' in file '%s' at line %d"
+msgstr "непÑ\80авилÑ\8cнаÑ\8f Ð¿ÐµÑ\80еменнаÑ\8f ÐºÐ¾Ð½Ñ\84игÑ\83Ñ\80аÑ\86ии Â«%s» Ð² Ñ\84айле Â«%s» Ð½Ð° Ñ\81Ñ\82Ñ\80оке %d"
 
-#: merge-recursive.c:1546
+#: config.c:1777
 #, c-format
-msgid "Adding merged %s"
-msgstr "Добавление слитого %s"
+msgid "%s has multiple values"
+msgstr "%s имеет несколько значений"
 
-#: merge-recursive.c:1553 merge-recursive.c:1766
+#: config.c:2311
 #, c-format
-msgid "Adding as %s instead"
-msgstr "Ð\94обавление Ð²Ð¼ÐµÑ\81Ñ\82о Ñ\8dÑ\82ого ÐºÐ°Ðº %s"
+msgid "could not set '%s' to '%s'"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\83Ñ\81Ñ\82ановиÑ\82Ñ\8c Â«%s» Ð² Â«%s»"
 
-#: merge-recursive.c:1610
+#: config.c:2313
 #, c-format
-msgid "cannot read object %s"
-msgstr "невозможно прочитать объект «%s»"
+msgid "could not unset '%s'"
+msgstr "не удалось сбросить значение для «%s»"
 
-#: merge-recursive.c:1613
-#, c-format
-msgid "object %s is not a blob"
-msgstr "объект %s не является двоичным объектом"
+#: connect.c:49
+msgid "The remote end hung up upon initial contact"
+msgstr "Внешний сервер отсоединился до начала сеанса связи"
 
-#: merge-recursive.c:1666
-msgid "modify"
-msgstr "изменение"
+#: connect.c:51
+msgid ""
+"Could not read from remote repository.\n"
+"\n"
+"Please make sure you have the correct access rights\n"
+"and the repository exists."
+msgstr "Не удалось прочитать из внешнего репозитория.\n\nУдостоверьтесь, что у вас есть необходимые права доступа\nи репозиторий существует."
 
-#: merge-recursive.c:1666
-msgid "modified"
-msgstr "изменено"
+#: connected.c:63 builtin/fsck.c:173 builtin/prune.c:140
+msgid "Checking connectivity"
+msgstr "Ð\9fÑ\80овеÑ\80ка Ñ\81оединениÑ\8f"
 
-#: merge-recursive.c:1676
-msgid "content"
-msgstr "содержимое"
+#: connected.c:75
+msgid "Could not run 'git rev-list'"
+msgstr "Не удалось запустить «git rev-list»"
 
-#: merge-recursive.c:1683
-msgid "add/add"
-msgstr "добавление/добавление"
+#: connected.c:95
+msgid "failed write to rev-list"
+msgstr "сбой записи в rev-list"
 
-#: merge-recursive.c:1718
-#, c-format
-msgid "Skipped %s (merged same as existing)"
-msgstr "Пропуск %s (слиты одинаковые изменения как существующие)"
+#: connected.c:102
+msgid "failed to close rev-list's stdin"
+msgstr "сбой закрытия стандартного ввода у rev-list"
 
-#: merge-recursive.c:1732
+#: convert.c:201
 #, c-format
-msgid "Auto-merging %s"
-msgstr "Автослияние %s"
+msgid ""
+"CRLF will be replaced by LF in %s.\n"
+"The file will have its original line endings in your working directory."
+msgstr "CRLF будет заменен на LF в %s.\nФайл будет иметь свои оригинальные концы строк в рашей рабочей копии."
 
-#: merge-recursive.c:1736 git-submodule.sh:919
-msgid "submodule"
-msgstr "подмодуль"
+#: convert.c:205
+#, c-format
+msgid "CRLF would be replaced by LF in %s."
+msgstr "CRLF будет заменен на LF в %s."
 
-#: merge-recursive.c:1737
+#: convert.c:211
 #, c-format
-msgid "CONFLICT (%s): Merge conflict in %s"
-msgstr "КОНФЛИКТ (%s): Конфликт слияния в %s"
+msgid ""
+"LF will be replaced by CRLF in %s.\n"
+"The file will have its original line endings in your working directory."
+msgstr "LF будет заменен на CRLF в %s.\nФайл будет иметь свои оригинальные концы строк в рашей рабочей копии."
 
-#: merge-recursive.c:1831
+#: convert.c:215
 #, c-format
-msgid "Removing %s"
-msgstr "Удаление %s"
+msgid "LF would be replaced by CRLF in %s"
+msgstr "LF будет заменен на CRLF в %s"
 
-#: merge-recursive.c:1857
-msgid "file/directory"
-msgstr "файл/каталог"
+#: date.c:97
+msgid "in the future"
+msgstr "в будущем"
 
-#: merge-recursive.c:1863
-msgid "directory/file"
-msgstr "каталог/файл"
+#: date.c:103
+#, c-format
+msgid "%lu second ago"
+msgid_plural "%lu seconds ago"
+msgstr[0] "%lu секунду назад"
+msgstr[1] "%lu секунды назад"
+msgstr[2] "%lu секунд назад"
+msgstr[3] "%lu секунд назад"
 
-#: merge-recursive.c:1868
+#: date.c:110
 #, c-format
-msgid ""
-"CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
-msgstr "КОНФЛИКТ (%s): Уже существует каталог с именем «%s» в «%s». Добавление «%s» как «%s»"
+msgid "%lu minute ago"
+msgid_plural "%lu minutes ago"
+msgstr[0] "%lu минуту назад"
+msgstr[1] "%lu минуты назад"
+msgstr[2] "%lu минут назад"
+msgstr[3] "%lu минут назад"
 
-#: merge-recursive.c:1877
+#: date.c:117
 #, c-format
-msgid "Adding %s"
-msgstr "Добавление %s"
+msgid "%lu hour ago"
+msgid_plural "%lu hours ago"
+msgstr[0] "%lu час назад"
+msgstr[1] "%lu часа назад"
+msgstr[2] "%lu часов назад"
+msgstr[3] "%lu часов назад"
 
-#: merge-recursive.c:1914
-msgid "Already up-to-date!"
-msgstr "Уже обновлено!"
+#: date.c:124
+#, c-format
+msgid "%lu day ago"
+msgid_plural "%lu days ago"
+msgstr[0] "%lu день назад"
+msgstr[1] "%lu дня назад"
+msgstr[2] "%lu дней назад"
+msgstr[3] "%lu дней назад"
 
-#: merge-recursive.c:1923
+#: date.c:130
 #, c-format
-msgid "merging of trees %s and %s failed"
-msgstr "сбой слияния деревьев «%s» и «%s»"
+msgid "%lu week ago"
+msgid_plural "%lu weeks ago"
+msgstr[0] "%lu неделю назад"
+msgstr[1] "%lu недели назад"
+msgstr[2] "%lu недель назад"
+msgstr[3] "%lu недель назад"
 
-#: merge-recursive.c:2006
-msgid "Merging:"
-msgstr "Слияние:"
+#: date.c:137
+#, c-format
+msgid "%lu month ago"
+msgid_plural "%lu months ago"
+msgstr[0] "%lu месяц назад"
+msgstr[1] "%lu месяца назад"
+msgstr[2] "%lu месяцев назад"
+msgstr[3] "%lu месяцев назад"
 
-#: merge-recursive.c:2019
+#: date.c:148
 #, c-format
-msgid "found %u common ancestor:"
-msgid_plural "found %u common ancestors:"
-msgstr[0] "найден %u общий предок:"
-msgstr[1] "найдено %u общих предка:"
-msgstr[2] "найдено %u общих предков:"
-msgstr[3] "найдено %u общих предков:"
+msgid "%lu year"
+msgid_plural "%lu years"
+msgstr[0] "%lu год"
+msgstr[1] "%lu года"
+msgstr[2] "%lu лет"
+msgstr[3] "%lu лет"
 
-#: merge-recursive.c:2058
-msgid "merge returned no commit"
-msgstr "слияние не вернуло коммит"
+#. TRANSLATORS: "%s" is "<n> years"
+#: date.c:151
+#, c-format
+msgid "%s, %lu month ago"
+msgid_plural "%s, %lu months ago"
+msgstr[0] "%s и %lu месяц назад"
+msgstr[1] "%s и %lu месяца назад"
+msgstr[2] "%s и %lu месяцев назад"
+msgstr[3] "%s и %lu месяцев назад"
 
-#: merge-recursive.c:2121
+#: date.c:156 date.c:161
 #, c-format
-msgid "Could not parse object '%s'"
-msgstr "Не удалось разобрать объект «%s»"
+msgid "%lu year ago"
+msgid_plural "%lu years ago"
+msgstr[0] "%lu год назад"
+msgstr[1] "%lu года назад"
+msgstr[2] "%lu лет назад"
+msgstr[3] "%lu лет назад"
 
-#: merge-recursive.c:2135 builtin/merge.c:641 builtin/merge.c:788
-msgid "Unable to write index."
-msgstr "Не удается записать индекс."
+#: diffcore-order.c:24
+#, c-format
+msgid "failed to read orderfile '%s'"
+msgstr "сбой чтения orderfile «%s»"
 
-#: notes-utils.c:41
-msgid "Cannot commit uninitialized/unreferenced notes tree"
-msgstr "Нельзя закоммитить неинициализированное или не имеющее ссылок дерево заметок"
+#: diffcore-rename.c:536
+msgid "Performing inexact rename detection"
+msgstr "Выполняется неточное определение переименования"
+
+#: diff.c:62
+#, c-format
+msgid "option '%s' requires a value"
+msgstr "параметр «%s» требует указания значения"
+
+#: diff.c:124
+#, c-format
+msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
+msgstr "  Сбой разбора величины среза (cut-off) у dirstat «%s»\n"
 
-#: notes-utils.c:100
+#: diff.c:129
 #, c-format
-msgid "Bad notes.rewriteMode value: '%s'"
-msgstr "Ð\9dепÑ\80авилÑ\8cное Ð·Ð½Ð°Ñ\87ение notes.rewriteMode: Â«%s»"
+msgid "  Unknown dirstat parameter '%s'\n"
+msgstr "Ð\9dеизвеÑ\81Ñ\82нÑ\8bй Ð¿Ð°Ñ\80амеÑ\82Ñ\80 dirstat: Â«%s»\n"
 
-#: notes-utils.c:110
+#: diff.c:283
 #, c-format
-msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
-msgstr "Ð\9eÑ\82каз Ð² Ð¿ÐµÑ\80езапиÑ\81и Ð·Ð°Ð¼ÐµÑ\82ок Ð² %s (за Ð¿Ñ\80еделами refs/notes/)"
+msgid "Unknown value for 'diff.submodule' config variable: '%s'"
+msgstr "Ð\9dеизвеÑ\81Ñ\82ное Ð·Ð½Ð°Ñ\87ениÑ\8f Ð´Ð»Ñ\8f Ð¿ÐµÑ\80еменной Â«diff.submodule»: Â«%s»"
 
-#. TRANSLATORS: The first %s is the name of the
-#. environment variable, the second %s is its value
-#: notes-utils.c:137
+#: diff.c:346
 #, c-format
-msgid "Bad %s value: '%s'"
-msgstr "Неправильное значение переменной %s: «%s»"
+msgid ""
+"Found errors in 'diff.dirstat' config variable:\n"
+"%s"
+msgstr "Найдены ошибки в переменной «diff.dirstat»:\n%s"
 
-#: object.c:242
+#: diff.c:3087
 #, c-format
-msgid "unable to parse object: %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\80азобÑ\80аÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82: %s"
+msgid "external diff died, stopping at %s"
+msgstr "кÑ\80иÑ\82иÑ\87еÑ\81каÑ\8f Ð¾Ñ\88ибка Ð¿Ñ\80и Ð²Ð½ÐµÑ\88нем Ñ\81Ñ\80авнении, Ð¾Ñ\81Ñ\82анов Ð½Ð° %s"
 
-#: parse-options.c:572
-msgid "..."
-msgstr ""
+#: diff.c:3412
+msgid "--name-only, --name-status, --check and -s are mutually exclusive"
+msgstr "--name-only, --name-status, --check и -s нельзя использовать одновременно"
 
-#: parse-options.c:590
-#, c-format
-msgid "usage: %s"
-msgstr "использование: %s"
+#: diff.c:3502
+msgid "--follow requires exactly one pathspec"
+msgstr "--follow требует ровно одной спецификации пути"
 
-#. TRANSLATORS: the colon here should align with the
-#. one in "usage: %s" translation
-#: parse-options.c:594
+#: diff.c:3665
 #, c-format
-msgid "   or: %s"
-msgstr "          или: %s"
+msgid ""
+"Failed to parse --dirstat/-X option parameter:\n"
+"%s"
+msgstr "Сбой разбора параметра опции --dirstat/-X :\n%s"
 
-#: parse-options.c:597
+#: diff.c:3679
 #, c-format
-msgid "    %s"
-msgstr "            %s"
+msgid "Failed to parse --submodule option parameter: '%s'"
+msgstr "Сбой разбора параметра опции --submodule: «%s»"
 
-#: parse-options.c:631
-msgid "-NUM"
-msgstr "-КОЛИЧЕСТВО"
+#: diff.c:4700
+msgid "inexact rename detection was skipped due to too many files."
+msgstr "неточное определение переименования было пропущено из-за слишком большого количества файлов."
 
-#: parse-options-cb.c:108
-#, c-format
-msgid "malformed object name '%s'"
-msgstr "Неправильное имя объекта «%s»"
+#: diff.c:4703
+msgid "only found copies from modified paths due to too many files."
+msgstr "найдены только копии из измененных путей из-за слишком большого количества файлов."
 
-#: path.c:798
+#: diff.c:4706
 #, c-format
-msgid "Could not make %s writable by group"
-msgstr "Не удалось предоставить доступ к %s на запись"
+msgid ""
+"you may want to set your %s variable to at least %d and retry the command."
+msgstr "возможно вы захотите установить переменную %s в как минимум значение %d и повторить вызов команды."
 
-#: pathspec.c:133
-msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
-msgstr "глобалÑ\8cнÑ\8bе Ð¾Ð¿Ñ\86ии Ñ\81пеÑ\86иÑ\84икаÑ\86ии Ð¿Ñ\83Ñ\82и Â«glob» Ð¸ Â«noglob» Ð½ÐµÐ»Ñ\8cзÑ\8f Ð¸Ñ\81полÑ\8cзоваÑ\82Ñ\8c Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно"
+#: dir.c:1866
+msgid "failed to get kernel name and information"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ð¾Ð»Ñ\83Ñ\87иÑ\82Ñ\8c Ð¸Ð¼Ñ\8f Ñ\8fдÑ\80а Ð¸ Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\8e"
 
-#: pathspec.c:143
-msgid ""
-"global 'literal' pathspec setting is incompatible with all other global "
-"pathspec settings"
-msgstr "глобальная опция спецификации пути «literal» не совместима с другими глобальными спецификаторами доступа"
+#: dir.c:1985
+msgid "Untracked cache is disabled on this system or location."
+msgstr "Кэш неотслеживаемых файлов отключен на этой системе или в этом месте."
 
-#: pathspec.c:177
-msgid "invalid parameter for pathspec magic 'prefix'"
-msgstr "неправильный параметр для магического слова «prefix» в спецификации пути "
+#: fetch-pack.c:213
+msgid "git fetch-pack: expected shallow list"
+msgstr "git fetch-pack: ожидается передача списка для получение части"
 
-#: pathspec.c:183
+#: fetch-pack.c:225
+msgid "git fetch-pack: expected ACK/NAK, got EOF"
+msgstr "git fetch-pack: ожидается ACK/NAK, а получено EOF"
+
+#: fetch-pack.c:243
 #, c-format
-msgid "Invalid pathspec magic '%.*s' in '%s'"
-msgstr "неправильное магическое слово «%.*s» в спецификации пути «%s»"
+msgid "git fetch-pack: expected ACK/NAK, got '%s'"
+msgstr "git fetch-pack: ожидается ACK/NAK, а получено «%s»"
 
-#: pathspec.c:187
+#: fetch-pack.c:295
+msgid "--stateless-rpc requires multi_ack_detailed"
+msgstr "--stateless-rpc требует multi_ack_detailed"
+
+#: fetch-pack.c:381
 #, c-format
-msgid "Missing ')' at the end of pathspec magic in '%s'"
-msgstr "Ð\9fÑ\80опÑ\83Ñ\89ено Â«)» Ð² ÐºÐ¾Ð½Ñ\86е Ð¼Ð°Ð³Ð¸Ñ\87еÑ\81кого Ñ\81лова Ñ\81пеÑ\86иÑ\84икаÑ\86ии Ð¿Ñ\83Ñ\82и Â«%s»"
+msgid "invalid shallow line: %s"
+msgstr "непÑ\80авилÑ\8cнаÑ\8f Ñ\81Ñ\82Ñ\80ока Ñ\87аÑ\81Ñ\82иÑ\87ного Ð¿Ð¾Ð»Ñ\83Ñ\87ениÑ\8f: %s"
 
-#: pathspec.c:205
+#: fetch-pack.c:387
 #, c-format
-msgid "Unimplemented pathspec magic '%c' in '%s'"
-msgstr "Ð\9dеÑ\80еализованное Ð¼Ð°Ð³Ð¸Ñ\87еÑ\81кое Ñ\81лово Â«%c» Ñ\81пеÑ\86иÑ\84икаÑ\86ии Ð¿Ñ\83Ñ\82и Â«%s»"
+msgid "invalid unshallow line: %s"
+msgstr "непÑ\80авилÑ\8cнаÑ\8f Ñ\81Ñ\82Ñ\80ока Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ\83Ñ\87ениÑ\8f: %s"
 
-#: pathspec.c:230
+#: fetch-pack.c:389
 #, c-format
-msgid "%s: 'literal' and 'glob' are incompatible"
-msgstr "%s: «literal» и «glob» не совместимы"
+msgid "object not found: %s"
+msgstr "объект не найден: %s"
 
-#: pathspec.c:241
+#: fetch-pack.c:392
 #, c-format
-msgid "%s: '%s' is outside repository"
-msgstr "%s: «%s» вне репозитория"
+msgid "error in object: %s"
+msgstr "ошибка в объекте: %s"
 
-#: pathspec.c:291
+#: fetch-pack.c:394
 #, c-format
-msgid "Pathspec '%s' is in submodule '%.*s'"
-msgstr "Спецификация пути «%s» в подмодуле «%.*s»"
+msgid "no shallow found: %s"
+msgstr "частичный клон не найден: %s"
 
-#: pathspec.c:353
+#: fetch-pack.c:397
 #, c-format
-msgid "%s: pathspec magic not supported by this command: %s"
-msgstr "%s: магические слова в спецификации пути не поддерживаются командой: %s"
+msgid "expected shallow/unshallow, got %s"
+msgstr "ожидалось shallow/unshallow, а получено %s"
 
-#: pathspec.c:433
+#: fetch-pack.c:436
 #, c-format
-msgid "pathspec '%s' is beyond a symbolic link"
-msgstr "спецификация пути «%s» находится за символической ссылкой"
+msgid "got %s %d %s"
+msgstr "получено %s %d %s"
 
-#: pathspec.c:442
-msgid ""
-"There is nothing to exclude from by :(exclude) patterns.\n"
-"Perhaps you forgot to add either ':/' or '.' ?"
-msgstr "Не указан шаблон для исключения с помощью :(exclude).\nВозможно, вы забыли «:/» или «.» ?"
+#: fetch-pack.c:450
+#, c-format
+msgid "invalid commit %s"
+msgstr "недопустимый коммит %s"
 
-#: pretty.c:973
-msgid "unable to parse --pretty format"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\80азобÑ\80аÑ\82Ñ\8c Ñ\84оÑ\80маÑ\82 Ð´Ð»Ñ\8f --pretty"
+#: fetch-pack.c:483
+msgid "giving up"
+msgstr "оÑ\81Ñ\82анавливаÑ\8e Ð´Ð°Ð»Ñ\8cнейÑ\88ие Ð¿Ð¾Ð¿Ñ\8bÑ\82ки"
 
-#: progress.c:235
+#: fetch-pack.c:493 progress.c:235
 msgid "done"
 msgstr "готово"
 
-#: read-cache.c:1281
+#: fetch-pack.c:505
 #, c-format
-msgid ""
-"index.version set, but the value is invalid.\n"
-"Using version %i"
-msgstr "index.version указан, но значение недействительное.\nИспользую версию %i"
+msgid "got %s (%d) %s"
+msgstr "получено %s (%d) %s"
 
-#: read-cache.c:1291
+#: fetch-pack.c:551
 #, c-format
-msgid ""
-"GIT_INDEX_VERSION set, but the value is invalid.\n"
-"Using version %i"
-msgstr "GIT_INDEX_VERSION указан, но значение недействительное.\nИспользую версию %i"
+msgid "Marking %s as complete"
+msgstr "Помечаю %s как завершенный"
 
-#: refs.c:551 builtin/merge.c:840
+#: fetch-pack.c:697
 #, c-format
-msgid "Could not open '%s' for writing"
-msgstr "Не удалось открыть «%s» для записи"
+msgid "already have %s (%s)"
+msgstr "уже есть %s (%s)"
 
-#: refs/files-backend.c:2534
-#, c-format
-msgid "could not delete reference %s: %s"
-msgstr "не удалось удалить ссылку %s: %s"
+#: fetch-pack.c:735
+msgid "fetch-pack: unable to fork off sideband demultiplexer"
+msgstr "fetch-pack: не удалось запустить программу разбора данных"
 
-#: refs/files-backend.c:2537
-#, c-format
-msgid "could not delete references: %s"
-msgstr "не удалось удалить ссылки: %s"
+#: fetch-pack.c:743
+msgid "protocol error: bad pack header"
+msgstr "ошибка протокола: неправильный заголовок потока"
 
-#: refs/files-backend.c:2546
+#: fetch-pack.c:799
 #, c-format
-msgid "could not remove reference %s"
-msgstr "не удалось удалить ссылки %s"
+msgid "fetch-pack: unable to fork off %s"
+msgstr "fetch-pack: не удалось запустить программу %s"
 
-#: ref-filter.c:55
+#: fetch-pack.c:815
 #, c-format
-msgid "expected format: %%(color:<color>)"
-msgstr "ожидаемый формат: %%(color:<color>)"
+msgid "%s failed"
+msgstr "%s завершен с ошибкой"
 
-#: ref-filter.c:57
-#, c-format
-msgid "unrecognized color: %%(color:%s)"
-msgstr "неопознанный цвет: %%(color:%s)"
+#: fetch-pack.c:817
+msgid "error in sideband demultiplexer"
+msgstr "произошла  ошибка в  программе разбора данных"
 
-#: ref-filter.c:71
+#: fetch-pack.c:844
+msgid "Server does not support shallow clients"
+msgstr "Сервер не поддерживает клиентов с частичным клонированием"
+
+#: fetch-pack.c:848
+msgid "Server supports multi_ack_detailed"
+msgstr "Сервер поддерживает multi_ack_detailed"
+
+#: fetch-pack.c:851
+msgid "Server supports no-done"
+msgstr "Сервер поддерживает no-done"
+
+#: fetch-pack.c:857
+msgid "Server supports multi_ack"
+msgstr "Сервер поддерживает multi_ack"
+
+#: fetch-pack.c:861
+msgid "Server supports side-band-64k"
+msgstr "Сервер поддерживает side-band-64k"
+
+#: fetch-pack.c:865
+msgid "Server supports side-band"
+msgstr "Сервер поддерживает side-band"
+
+#: fetch-pack.c:869
+msgid "Server supports allow-tip-sha1-in-want"
+msgstr "Сервер поддерживает allow-tip-sha1-in-want"
+
+#: fetch-pack.c:873
+msgid "Server supports allow-reachable-sha1-in-want"
+msgstr "Сервер поддерживает allow-reachable-sha1-in-want"
+
+#: fetch-pack.c:883
+msgid "Server supports ofs-delta"
+msgstr "Сервер поддерживает ofs-delta"
+
+#: fetch-pack.c:890
 #, c-format
-msgid "unrecognized format: %%(%s)"
-msgstr "неопознаннÑ\8bй Ñ\84оÑ\80маÑ\82: %%(%s)"
+msgid "Server version is %.*s"
+msgstr "Ð\92еÑ\80Ñ\81иÑ\8f Ñ\81еÑ\80веÑ\80а %.*s"
 
-#: ref-filter.c:77
+#: fetch-pack.c:896
+msgid "Server does not support --shallow-since"
+msgstr "Сервер не поддерживает --shallow-since"
+
+#: fetch-pack.c:900
+msgid "Server does not support --shallow-exclude"
+msgstr "Сервер не поддерживает --shallow-exclude"
+
+#: fetch-pack.c:902
+msgid "Server does not support --deepen"
+msgstr "Сервер не поддерживает --deepen"
+
+#: fetch-pack.c:913
+msgid "no common commits"
+msgstr "не общих коммитов"
+
+#: fetch-pack.c:925
+msgid "git fetch-pack: fetch failed."
+msgstr "git fetch-pack: ошибка при получении данных."
+
+#: fetch-pack.c:1087
+msgid "no matching remote head"
+msgstr "нет соотвествующего внешнего указателя на ветку"
+
+#: gpg-interface.c:185
+msgid "gpg failed to sign the data"
+msgstr "gpg не удалось подписать данные"
+
+#: gpg-interface.c:215
+msgid "could not create temporary file"
+msgstr "не удалось создать временный файл"
+
+#: gpg-interface.c:217
 #, c-format
-msgid "%%(body) does not take arguments"
-msgstr "%%(body) не принимает аргументов"
+msgid "failed writing detached signature to '%s'"
+msgstr "сбой записи отсоединенной подписи в «%s»"
 
-#: ref-filter.c:84
+#: grep.c:1782
 #, c-format
-msgid "%%(subject) does not take arguments"
-msgstr "%%(subject) не принимает аргументов"
+msgid "'%s': unable to read %s"
+msgstr "«%s»: не удалось прочесть %s"
 
-#: ref-filter.c:101
+#: grep.c:1799 builtin/clone.c:381 builtin/diff.c:84 builtin/rm.c:155
 #, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "положиÑ\82елÑ\8cное Ð·Ð½Ð°Ñ\87ение Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ\82 Ñ\81одеÑ\80жимое:lines=%s"
+msgid "failed to stat '%s'"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð²Ñ\8bполниÑ\82Ñ\8c stat Â«%s»"
 
-#: ref-filter.c:103
+#: grep.c:1810
 #, c-format
-msgid "unrecognized %%(contents) argument: %s"
-msgstr "неопознанный аргумент %%(contents): %s"
+msgid "'%s': short read"
+msgstr "«%s»: слишком мало данных прочитано"
 
-#: ref-filter.c:113
+#: help.c:203
 #, c-format
-msgid "unrecognized %%(objectname) argument: %s"
-msgstr "неопознаннÑ\8bй Ð°Ñ\80гÑ\83менÑ\82 %%(objectname): %s"
+msgid "available git commands in '%s'"
+msgstr "доÑ\81Ñ\82Ñ\83пнÑ\8bе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\8b git Ð² Â«%s»"
 
-#: ref-filter.c:135
+#: help.c:210
+msgid "git commands available from elsewhere on your $PATH"
+msgstr "команды git, доступные в других местах вашего $PATH"
+
+#: help.c:241
+msgid "These are common Git commands used in various situations:"
+msgstr "Стандартные команды Git используемые в различных ситуациях:"
+
+#: help.c:306
 #, c-format
-msgid "expected format: %%(align:<width>,<position>)"
-msgstr "ожидаемый формат: %%(align:<width>,<position>)"
+msgid ""
+"'%s' appears to be a git command, but we were not\n"
+"able to execute it. Maybe git-%s is broken?"
+msgstr "«%s» похоже на команду git, но нам не удалось ее запустить. Возможно, git-%s  не работает?"
 
-#: ref-filter.c:147
+#: help.c:361
+msgid "Uh oh. Your system reports no Git commands at all."
+msgstr "Ой-ёй! Ваша система не сообщает ни о каких командах Git вообще."
+
+#: help.c:383
 #, c-format
-msgid "unrecognized position:%s"
-msgstr "неопознанная позиция:%s"
+msgid ""
+"WARNING: You called a Git command named '%s', which does not exist.\n"
+"Continuing under the assumption that you meant '%s'"
+msgstr "ВНИМАНИЕ: Вы вызвали команду Git «%s», но такой не существует.\nПродолжаем с предположением, что вы имели в виду «%s»"
 
-#: ref-filter.c:151
+#: help.c:388
 #, c-format
-msgid "unrecognized width:%s"
-msgstr "неопознанная ширина:%s"
+msgid "in %0.1f seconds automatically..."
+msgstr "через %0.1f секунд автоматически…"
 
-#: ref-filter.c:157
+#: help.c:395
 #, c-format
-msgid "unrecognized %%(align) argument: %s"
-msgstr "неопознанный аргумент %%(align): %s"
+msgid "git: '%s' is not a git command. See 'git --help'."
+msgstr "git: «%s» не является командой git. Смотрите «git --help»."
 
-#: ref-filter.c:161
+#: help.c:399 help.c:465
+msgid ""
+"\n"
+"Did you mean this?"
+msgid_plural ""
+"\n"
+"Did you mean one of these?"
+msgstr[0] "\nВозможно, вы имели в виду это?"
+msgstr[1] "\nВозможно, вы имели в виду что-то из этого?"
+msgstr[2] "\nВозможно, вы имели в виду что-то из этого?"
+msgstr[3] "\nВозможно, вы имели в виду что-то из этого?"
+
+#: help.c:461
 #, c-format
-msgid "positive width expected with the %%(align) atom"
-msgstr "ожидается положительная ширина с указанием частицы %%(align)"
+msgid "%s: %s - %s"
+msgstr "%s: %s — %s"
 
-#: ref-filter.c:244
+#: ident.c:334
+msgid ""
+"\n"
+"*** Please tell me who you are.\n"
+"\n"
+"Run\n"
+"\n"
+"  git config --global user.email \"you@example.com\"\n"
+"  git config --global user.name \"Your Name\"\n"
+"\n"
+"to set your account's default identity.\n"
+"Omit --global to set the identity only in this repository.\n"
+"\n"
+msgstr "\n*** Пожалуйста, скажите мне кто вы есть.\n\nЗапустите\n\n  git config --global user.email \"you@example.com\"\n  git config --global user.name \"Ваше Имя\"\n\nдля указания идентификационных данных аккаунта по умолчанию.\nПропустите параметр --global для указания данных только для этого репозитория.\n\n"
+
+#: lockfile.c:152
 #, c-format
-msgid "malformed field name: %.*s"
-msgstr "неправильное имя поля: %.*s"
+msgid ""
+"Unable to create '%s.lock': %s.\n"
+"\n"
+"Another git process seems to be running in this repository, e.g.\n"
+"an editor opened by 'git commit'. Please make sure all processes\n"
+"are terminated then try again. If it still fails, a git process\n"
+"may have crashed in this repository earlier:\n"
+"remove the file manually to continue."
+msgstr "Не удалось создать «%s.lock»: %s.\n\nПохоже, что другой процесс git запущен в этом репозитории,\nнапример редактор открыт из «git commit». Пожалуйста, убедитесь,\nчто все процессы были завершены и потом попробуйте снова.\nЕсли это не поможет, то возможно процесс git был ранее завершен\nс ошибкой в этом репозитории: \nудалите файл вручную для продолжения."
 
-#: ref-filter.c:270
+#: lockfile.c:160
 #, c-format
-msgid "unknown field name: %.*s"
-msgstr "неизвестное имя поля: %.*s"
+msgid "Unable to create '%s.lock': %s"
+msgstr "Не удалось создать «%s.lock»: %s"
+
+#: merge.c:41
+msgid "failed to read the cache"
+msgstr "сбой чтения кэша"
 
-#: ref-filter.c:372
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "формат: частица %%(end) использована без соответствующей частицы"
+#: merge.c:96 builtin/am.c:2000 builtin/am.c:2035 builtin/checkout.c:374
+#: builtin/checkout.c:588 builtin/clone.c:731
+msgid "unable to write new index file"
+msgstr "не удалось записать новый файл индекса"
 
-#: ref-filter.c:424
+#: merge-recursive.c:209
+msgid "(bad commit)\n"
+msgstr "(плохой коммит)\n"
+
+#: merge-recursive.c:231
 #, c-format
-msgid "malformed format string %s"
-msgstr "неправильная строка формата %s"
+msgid "addinfo_cache failed for path '%s'"
+msgstr "сбой addinfo_cache для пути «%s»"
 
-#: ref-filter.c:878
-msgid ":strip= requires a positive integer argument"
-msgstr ":strip= требует наличия положительного целого аргумента"
+#: merge-recursive.c:301
+msgid "error building trees"
+msgstr "ошибка при построении деревьев"
 
-#: ref-filter.c:883
+#: merge-recursive.c:720
 #, c-format
-msgid "ref '%s' does not have %ld components to :strip"
-msgstr "ссылка «%s» не содержит %ld компонент для :strip"
+msgid "failed to create path '%s'%s"
+msgstr "не удалось создать путь «%s»%s"
 
-#: ref-filter.c:1046
+#: merge-recursive.c:731
 #, c-format
-msgid "unknown %.*s format %s"
-msgstr "неизвеÑ\81Ñ\82нÑ\8bй %.*s Ñ\84оÑ\80маÑ\82 %s"
+msgid "Removing %s to make room for subdirectory\n"
+msgstr "Удаление %s, Ñ\87Ñ\82обÑ\8b Ð¾Ñ\81вободиÑ\82Ñ\8c Ð¼ÐµÑ\81Ñ\82о Ð´Ð»Ñ\8f Ð¿Ð¾Ð´ÐºÐ°Ñ\82алогов\n"
 
-#: ref-filter.c:1066 ref-filter.c:1097
-#, c-format
-msgid "missing object %s for %s"
-msgstr "не найден объект %s для %s"
+#: merge-recursive.c:745 merge-recursive.c:764
+msgid ": perhaps a D/F conflict?"
+msgstr ": возможно, конфликт каталогов/файлов?"
 
-#: ref-filter.c:1069 ref-filter.c:1100
+#: merge-recursive.c:754
 #, c-format
-msgid "parse_object_buffer failed on %s for %s"
-msgstr "сбой при выполнении parse_object_buffer на %s для %s"
+msgid "refusing to lose untracked file at '%s'"
+msgstr "отказ потери неотслеживаемого файла в «%s»"
 
-#: ref-filter.c:1311
+#: merge-recursive.c:796 builtin/cat-file.c:34
 #, c-format
-msgid "malformed object at '%s'"
-msgstr "Ð\9fовÑ\80еждÑ\91ннÑ\8bй Ð¾Ð±Ñ\8aекÑ\82 «%s»"
+msgid "cannot read object %s '%s'"
+msgstr "невозможно Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ð¾Ð±Ñ\8aекÑ\82 %s «%s»"
 
-#: ref-filter.c:1373
+#: merge-recursive.c:798
 #, c-format
-msgid "ignoring ref with broken name %s"
-msgstr "игноÑ\80иÑ\80Ñ\83Ñ\8e Ñ\81Ñ\81Ñ\8bлкÑ\83 Ñ\81 Ð½ÐµÐ¿Ñ\80авилÑ\8cнÑ\8bм Ð¸Ð¼ÐµÐ½ÐµÐ¼ %s"
+msgid "blob expected for %s '%s'"
+msgstr "ожидаеÑ\82Ñ\81Ñ\8f Ð´Ð²Ð¾Ð¸Ñ\87нÑ\8bй Ð¾Ð±Ñ\8aекÑ\82 Ð´Ð»Ñ\8f %s Â«%s»"
 
-#: ref-filter.c:1378
+#: merge-recursive.c:822
 #, c-format
-msgid "ignoring broken ref %s"
-msgstr "игноÑ\80иÑ\80Ñ\83Ñ\8e Ð½ÐµÐ¿Ñ\80авилÑ\8cнÑ\83Ñ\8e Ñ\81Ñ\81Ñ\8bлкÑ\83 %s"
+msgid "failed to open '%s': %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Â«%s»: %s"
 
-#: ref-filter.c:1651
+#: merge-recursive.c:833
 #, c-format
-msgid "format: %%(end) atom missing"
-msgstr "format: пропущена частица %%(end)"
+msgid "failed to symlink '%s': %s"
+msgstr "не удалось создать символьную ссылку «%s»: %s"
 
-#: ref-filter.c:1705
+#: merge-recursive.c:838
 #, c-format
-msgid "malformed object name %s"
-msgstr "неправильное имя объекта %s"
+msgid "do not know what to do with %06o %s '%s'"
+msgstr "не понятно, что делать с %06o %s «%s»"
 
-#: remote.c:746
+#: merge-recursive.c:978
+msgid "Failed to execute internal merge"
+msgstr "Не удалось запустить внутреннее слияние"
+
+#: merge-recursive.c:982
 #, c-format
-msgid "Cannot fetch both %s and %s to %s"
-msgstr "Нельзя извлечь одновременно %s и %s в %s"
+msgid "Unable to add %s to database"
+msgstr "Не удалось добавить %s в базу данных"
 
-#: remote.c:750
+#: merge-recursive.c:1081 merge-recursive.c:1095
 #, c-format
-msgid "%s usually tracks %s, not %s"
-msgstr "%s обычно отслеживает %s, а не %s"
+msgid ""
+"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
+"in tree."
+msgstr "КОНФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. Версия %s из %s оставлена в дереве."
 
-#: remote.c:754
+#: merge-recursive.c:1087 merge-recursive.c:1100
 #, c-format
-msgid "%s tracks both %s and %s"
-msgstr "%s отслеживает и %s и %s"
+msgid ""
+"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
+"in tree at %s."
+msgstr "КОНФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. Версия %s из %s оставлена в дереве на %s."
 
-#: remote.c:762
-msgid "Internal error"
-msgstr "Ð\92нÑ\83Ñ\82Ñ\80еннÑ\8fÑ\8f Ð¾Ñ\88ибка"
+#: merge-recursive.c:1143
+msgid "rename"
+msgstr "пеÑ\80еименование"
 
-#: remote.c:1677 remote.c:1720
-msgid "HEAD does not point to a branch"
-msgstr "HEAD не указывает на ветку"
+#: merge-recursive.c:1143
+msgid "renamed"
+msgstr "переименовано"
 
-#: remote.c:1686
+#: merge-recursive.c:1200
 #, c-format
-msgid "no such branch: '%s'"
-msgstr "нет такой ветки: «%s»"
+msgid "%s is a directory in %s adding as %s instead"
+msgstr "%s — это каталог в %s, добавляем как %s вместо этого"
 
-#: remote.c:1689
+#: merge-recursive.c:1225
 #, c-format
-msgid "no upstream configured for branch '%s'"
-msgstr "вышестоящая ветка не настроена для ветки «%s»"
+msgid ""
+"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
+"\"%s\"->\"%s\" in \"%s\"%s"
+msgstr "КОНФЛИКТ (переименование/переименование): Переименование «%s»→«%s» в ветке «%s» и переименование «%s»→«%s» в ветке «%s»%s"
 
-#: remote.c:1695
-#, c-format
-msgid "upstream branch '%s' not stored as a remote-tracking branch"
-msgstr "вышестоящая ветка «%s» не сохранена как отслеживаемая ветка"
+#: merge-recursive.c:1230
+msgid " (left unresolved)"
+msgstr " (оставлено неразрешенным)"
 
-#: remote.c:1710
+#: merge-recursive.c:1292
 #, c-format
-msgid "push destination '%s' on remote '%s' has no local tracking branch"
-msgstr "назнаÑ\87ение Ð´Ð»Ñ\8f Ð¾Ñ\82пÑ\80авки Â«%s» Ð½Ð° Ð²Ð½ÐµÑ\88нем Ñ\81еÑ\80веÑ\80е Â«%s» Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð»Ð¾ÐºÐ°Ð»Ñ\8cной Ð¾Ñ\82Ñ\81леживаемой Ð²ÐµÑ\82ки"
+msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
+msgstr "Ð\9aÐ\9eÐ\9dФÐ\9bÐ\98Ð\9aТ (пеÑ\80еименование/пеÑ\80еименование): Ð\9fеÑ\80еименование Â«%s»â\86\92«%s» Ð² Ð²ÐµÑ\82ке Â«%s» Ð¸ Ð¿ÐµÑ\80еименование Â«%s»â\86\92«%s» Ð² Ð²ÐµÑ\82ке Â«%s»"
 
-#: remote.c:1725
+#: merge-recursive.c:1325
 #, c-format
-msgid "branch '%s' has no remote for pushing"
-msgstr "веÑ\82ка Â«%s» Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð²Ð½ÐµÑ\88него Ñ\81еÑ\80веÑ\80а Ð´Ð»Ñ\8f Ð¾Ñ\82пÑ\80авки"
+msgid "Renaming %s to %s and %s to %s instead"
+msgstr "Ð\9fеÑ\80еименовÑ\8bваÑ\8e %s Ð² %s Ð¸ %s Ð² %s Ð²Ð¼ÐµÑ\81Ñ\82о Ñ\8dÑ\82ого"
 
-#: remote.c:1736
+#: merge-recursive.c:1531
 #, c-format
-msgid "push refspecs for '%s' do not include '%s'"
-msgstr "спецификации пути для отправки «%s» не включают в себя «%s»"
-
-#: remote.c:1749
-msgid "push has no destination (push.default is 'nothing')"
-msgstr "отправка не имеет точки назначения (push.default выставлен в «nothing»)"
-
-#: remote.c:1771
-msgid "cannot resolve 'simple' push to a single destination"
-msgstr "не удалось выполнить «simple» отправку в единственную точку назначения"
+msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
+msgstr "КОНФЛИКТ (переименование/добавление): Переименование «%s»→«%s» в ветке «%s» и добавление «%s» в ветке «%s»"
 
-#: remote.c:2073
+#: merge-recursive.c:1546
 #, c-format
-msgid "Your branch is based on '%s', but the upstream is gone.\n"
-msgstr "Ваша ветка базируется на «%s», но вышестоящий репозиторий исчез.\n"
-
-#: remote.c:2077
-msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
-msgstr "(для исправления запустите «git branch --unset-upstream»)\n"
+msgid "Adding merged %s"
+msgstr "Добавление слитого %s"
 
-#: remote.c:2080
+#: merge-recursive.c:1553 merge-recursive.c:1766
 #, c-format
-msgid "Your branch is up-to-date with '%s'.\n"
-msgstr "Ð\92аÑ\88а Ð²ÐµÑ\82ка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° Ð² Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вии Ñ\81 Â«%s».\n"
+msgid "Adding as %s instead"
+msgstr "Ð\94обавление Ð²Ð¼ÐµÑ\81Ñ\82о Ñ\8dÑ\82ого ÐºÐ°Ðº %s"
 
-#: remote.c:2084
+#: merge-recursive.c:1610
 #, c-format
-msgid "Your branch is ahead of '%s' by %d commit.\n"
-msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "Ваша ветка опережает «%s» на %d коммит.\n"
-msgstr[1] "Ваша ветка опережает «%s» на %d коммита.\n"
-msgstr[2] "Ваша ветка опережает «%s» на %d коммитов.\n"
-msgstr[3] "Ваша ветка опережает «%s» на %d коммитов.\n"
-
-#: remote.c:2090
-msgid "  (use \"git push\" to publish your local commits)\n"
-msgstr "  (используйте «git push», чтобы опубликовать ваши локальные коммиты)\n"
+msgid "cannot read object %s"
+msgstr "невозможно прочитать объект «%s»"
 
-#: remote.c:2093
+#: merge-recursive.c:1613
 #, c-format
-msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
-msgid_plural ""
-"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
-msgstr[0] "Ваша ветка отстает от «%s» на %d коммит и может быть перемотана вперед.\n"
-msgstr[1] "Ваша ветка отстает от «%s» на %d коммита и может быть перемотана вперед.\n"
-msgstr[2] "Ваша ветка отстает от «%s» на %d коммитов и может быть перемотана вперед.\n"
-msgstr[3] "Ваша ветка отстает от «%s» на %d коммитов и может быть перемотана вперед.\n"
+msgid "object %s is not a blob"
+msgstr "объект %s не является двоичным объектом"
 
-#: remote.c:2101
-msgid "  (use \"git pull\" to update your local branch)\n"
-msgstr "  (используйте «git pull», чтобы обновить вашу локальную ветку)\n"
+#: merge-recursive.c:1666
+msgid "modify"
+msgstr "изменение"
 
-#: remote.c:2104
-#, c-format
-msgid ""
-"Your branch and '%s' have diverged,\n"
-"and have %d and %d different commit each, respectively.\n"
-msgid_plural ""
-"Your branch and '%s' have diverged,\n"
-"and have %d and %d different commits each, respectively.\n"
-msgstr[0] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разный коммит в каждой соответственно.\n"
-msgstr[1] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммита в каждой соответственно.\n"
-msgstr[2] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
-msgstr[3] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
+#: merge-recursive.c:1666
+msgid "modified"
+msgstr "изменено"
 
-#: remote.c:2114
-msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
-msgstr "  (используйте «git pull», чтобы слить внешнюю ветку в вашу)\n"
+#: merge-recursive.c:1676
+msgid "content"
+msgstr "содержимое"
 
-#: revision.c:2132
-msgid "your current branch appears to be broken"
-msgstr "поÑ\85оже, Ð²Ð°Ñ\88а Ñ\82екÑ\83Ñ\89аÑ\8f Ð²ÐµÑ\82ка Ð¿Ð¾Ð²Ñ\80еждена"
+#: merge-recursive.c:1683
+msgid "add/add"
+msgstr "добавление/добавление"
 
-#: revision.c:2135
+#: merge-recursive.c:1718
 #, c-format
-msgid "your current branch '%s' does not have any commits yet"
-msgstr "ваша текущая ветка «%s» еще не содержит ни одного коммита"
-
-#: revision.c:2329
-msgid "--first-parent is incompatible with --bisect"
-msgstr "опцию --first-parent нельзя использовать одновременно с --bisect"
-
-#: run-command.c:92
-msgid "open /dev/null failed"
-msgstr "сбой открытия /dev/null"
+msgid "Skipped %s (merged same as existing)"
+msgstr "Пропуск %s (слиты одинаковые изменения как существующие)"
 
-#: run-command.c:94
+#: merge-recursive.c:1732
 #, c-format
-msgid "dup2(%d,%d) failed"
-msgstr "dup2(%d,%d) сбой"
-
-#: send-pack.c:298
-msgid "failed to sign the push certificate"
-msgstr "сбой подписания сертификата отправки"
-
-#: send-pack.c:411
-msgid "the receiving end does not support --signed push"
-msgstr "принимающая сторона не поддерживает отправку с опцией --signed"
+msgid "Auto-merging %s"
+msgstr "Автослияние %s"
 
-#: send-pack.c:413
-msgid ""
-"not sending a push certificate since the receiving end does not support "
-"--signed push"
-msgstr "не отправляем сертификат для отправки, так как принимающая сторона не поддерживает отправку с опцией --signed"
+#: merge-recursive.c:1736 git-submodule.sh:924
+msgid "submodule"
+msgstr "подмодуль"
 
-#: send-pack.c:425
-msgid "the receiving end does not support --atomic push"
-msgstr "принимающая сторона не поддерживает отправку с опцией --atomic"
+#: merge-recursive.c:1737
+#, c-format
+msgid "CONFLICT (%s): Merge conflict in %s"
+msgstr "КОНФЛИКТ (%s): Конфликт слияния в %s"
 
-#: send-pack.c:430
-msgid "the receiving end does not support push options"
-msgstr "принимающая сторона не поддерживает отправку с опциями"
+#: merge-recursive.c:1831
+#, c-format
+msgid "Removing %s"
+msgstr "Удаление %s"
 
-#: sequencer.c:174
-msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'"
-msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»"
+#: merge-recursive.c:1857
+msgid "file/directory"
+msgstr "файл/каталог"
 
-#: sequencer.c:177
-msgid ""
-"after resolving the conflicts, mark the corrected paths\n"
-"with 'git add <paths>' or 'git rm <paths>'\n"
-"and commit the result with 'git commit'"
-msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»\nи сделайте коммит с помощью «git commit»"
+#: merge-recursive.c:1863
+msgid "directory/file"
+msgstr "каталог/файл"
 
-#: sequencer.c:190 sequencer.c:841 sequencer.c:924
+#: merge-recursive.c:1868
 #, c-format
-msgid "Could not write to %s"
-msgstr "Не удалось записать в %s"
+msgid ""
+"CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
+msgstr "КОНФЛИКТ (%s): Уже существует каталог с именем «%s» в «%s». Добавление «%s» как «%s»"
 
-#: sequencer.c:193 sequencer.c:843 sequencer.c:928
+#: merge-recursive.c:1877
 #, c-format
-msgid "Error wrapping up %s."
-msgstr "Ð\9eÑ\88ибка Ð¾Ð±Ð¾Ñ\80аÑ\87иваниÑ\8f %s."
+msgid "Adding %s"
+msgstr "Ð\94обавление %s"
 
-#: sequencer.c:208
-msgid "Your local changes would be overwritten by cherry-pick."
-msgstr "Ð\92аÑ\88и Ð»Ð¾ÐºÐ°Ð»Ñ\8cнÑ\8bе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ Ð±Ñ\83дÑ\83Ñ\82 Ð¿ÐµÑ\80езапиÑ\81анÑ\8b ÐºÐ¾Ð¿Ð¸ÐµÐ¹ ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а."
+#: merge-recursive.c:1914
+msgid "Already up-to-date!"
+msgstr "Уже Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾!"
 
-#: sequencer.c:210
-msgid "Your local changes would be overwritten by revert."
-msgstr "Ваши локальные изменения будут перезаписаны обратными изменениями коммита."
+#: merge-recursive.c:1923
+#, c-format
+msgid "merging of trees %s and %s failed"
+msgstr "сбой слияния деревьев «%s» и «%s»"
 
-#: sequencer.c:213
-msgid "Commit your changes or stash them to proceed."
-msgstr "СделайÑ\82е ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 Ð¸Ð»Ð¸ Ñ\81пÑ\80Ñ\8fÑ\87Ñ\8cÑ\82е Ð²Ð°Ñ\88и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð´Ð»Ñ\8f Ð¿Ñ\80одолжениÑ\8f."
+#: merge-recursive.c:2006
+msgid "Merging:"
+msgstr "СлиÑ\8fние:"
 
-#: sequencer.c:228
+#: merge-recursive.c:2019
 #, c-format
-msgid "%s: fast-forward"
-msgstr "%s: перемотка вперед"
+msgid "found %u common ancestor:"
+msgid_plural "found %u common ancestors:"
+msgstr[0] "найден %u общий предок:"
+msgstr[1] "найдено %u общих предка:"
+msgstr[2] "найдено %u общих предков:"
+msgstr[3] "найдено %u общих предков:"
 
-#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:303
-#, c-format
-msgid "%s: Unable to write new index file"
-msgstr "%s: Не удалось записать файл индекса"
+#: merge-recursive.c:2058
+msgid "merge returned no commit"
+msgstr "слияние не вернуло коммит"
 
-#: sequencer.c:321
-msgid "Could not resolve HEAD commit\n"
-msgstr "Не удалось определить HEAD коммит\n"
+#: merge-recursive.c:2121
+#, c-format
+msgid "Could not parse object '%s'"
+msgstr "Не удалось разобрать объект «%s»"
 
-#: sequencer.c:341
-msgid "Unable to update cache tree\n"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ\82Ñ\8c Ð´ÐµÑ\80ево ÐºÑ\8dÑ\88а\n"
+#: merge-recursive.c:2135 builtin/merge.c:641 builtin/merge.c:788
+msgid "Unable to write index."
+msgstr "Ð\9dе Ñ\83даеÑ\82Ñ\81Ñ\8f Ð·Ð°Ð¿Ð¸Ñ\81аÑ\82Ñ\8c Ð¸Ð½Ð´ÐµÐºÑ\81."
 
-#: sequencer.c:393
+#: notes-merge.c:273
 #, c-format
-msgid "Could not parse commit %s\n"
-msgstr "Не удалось разобрать коммит %s\n"
+msgid ""
+"You have not concluded your previous notes merge (%s exists).\n"
+"Please, use 'git notes merge --commit' or 'git notes merge --abort' to commit/abort the previous merge before you start a new notes merge."
+msgstr "Вы не закончили предыдущее слияние заметок (%s существует).\nЗапустите «git notes merge --commit» или «git notes merge --abort» для коммита или отмены предыдущего слияния и запуска нового слияния заметок."
 
-#: sequencer.c:398
+#: notes-merge.c:280
 #, c-format
-msgid "Could not parse parent commit %s\n"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ñ\80азобÑ\80аÑ\82Ñ\8c Ñ\80одиÑ\82елÑ\8cÑ\81кÑ\83Ñ\8e ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 %s\n"
+msgid "You have not concluded your notes merge (%s exists)."
+msgstr "Ð\92Ñ\8b Ð½Ðµ Ð·Ð°ÐºÐ¾Ð½Ñ\87или Ð¿Ñ\80едÑ\8bдÑ\83Ñ\89ее Ñ\81лиÑ\8fние Ð·Ð°Ð¼ÐµÑ\82ок (%s Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82)."
 
-#: sequencer.c:463
-msgid "Your index file is unmerged."
-msgstr "Ð\92аÑ\88 Ñ\84айл Ð¸Ð½Ð´ÐµÐºÑ\81а Ð½Ðµ Ñ\81лиÑ\82."
+#: notes-utils.c:41
+msgid "Cannot commit uninitialized/unreferenced notes tree"
+msgstr "Ð\9dелÑ\8cзÑ\8f Ð·Ð°ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82иÑ\82Ñ\8c Ð½ÐµÐ¸Ð½Ð¸Ñ\86иализиÑ\80ованное Ð¸Ð»Ð¸ Ð½Ðµ Ð¸Ð¼ÐµÑ\8eÑ\89ее Ñ\81Ñ\81Ñ\8bлок Ð´ÐµÑ\80ево Ð·Ð°Ð¼ÐµÑ\82ок"
 
-#: sequencer.c:482
+#: notes-utils.c:100
 #, c-format
-msgid "Commit %s is a merge but no -m option was given."
-msgstr "Ð\9aоммиÑ\82 %s â\80\94 Ñ\8dÑ\82о ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82\81лиÑ\8fние, Ð½Ð¾ Ð¾Ð¿Ñ\86иÑ\8f -m Ð½Ðµ Ñ\83казана."
+msgid "Bad notes.rewriteMode value: '%s'"
+msgstr "Ð\9dепÑ\80авилÑ\8cное Ð·Ð½Ð°Ñ\87ение notes.rewriteMode: Â«%s»"
 
-#: sequencer.c:490
+#: notes-utils.c:110
 #, c-format
-msgid "Commit %s does not have parent %d"
-msgstr "У ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а %s Ð½ÐµÑ\82 Ð¿Ñ\80едка %d"
+msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
+msgstr "Ð\9eÑ\82каз Ð² Ð¿ÐµÑ\80езапиÑ\81и Ð·Ð°Ð¼ÐµÑ\82ок Ð² %s (за Ð¿Ñ\80еделами refs/notes/)"
 
-#: sequencer.c:494
+#. TRANSLATORS: The first %s is the name of the
+#. environment variable, the second %s is its value
+#: notes-utils.c:137
 #, c-format
-msgid "Mainline was specified but commit %s is not a merge."
-msgstr "Ð\9eÑ\81новнаÑ\8f Ð²ÐµÑ\82ка Ñ\83казана, Ð½Ð¾ ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 %s Ð½Ðµ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\81лиÑ\8fнием."
+msgid "Bad %s value: '%s'"
+msgstr "Ð\9dепÑ\80авилÑ\8cное Ð·Ð½Ð°Ñ\87ение Ð¿ÐµÑ\80еменной %s: Â«%s»"
 
-#. TRANSLATORS: The first %s will be "revert" or
-#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:507
+#: object.c:242
 #, c-format
-msgid "%s: cannot parse parent commit %s"
-msgstr "%s: не удалось разобрать родительский коммит для %s"
+msgid "unable to parse object: %s"
+msgstr "не удалось разобрать объект: %s"
+
+#: parse-options.c:572
+msgid "..."
+msgstr "…"
 
-#: sequencer.c:511
+#: parse-options.c:590
 #, c-format
-msgid "Cannot get commit message for %s"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿Ð¾Ð»Ñ\83Ñ\87иÑ\82Ñ\8c Ñ\81ообÑ\89ение ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а Ð´Ð»Ñ\8f %s"
+msgid "usage: %s"
+msgstr "иÑ\81полÑ\8cзование: %s"
 
-#: sequencer.c:597
+#. TRANSLATORS: the colon here should align with the
+#. one in "usage: %s" translation
+#: parse-options.c:594
 #, c-format
-msgid "could not revert %s... %s"
-msgstr "не удалось обратить изменения коммита %s… %s"
+msgid "   or: %s"
+msgstr "          или: %s"
 
-#: sequencer.c:598
+#: parse-options.c:597
 #, c-format
-msgid "could not apply %s... %s"
-msgstr "не удалось применить коммит %s… %s"
+msgid "    %s"
+msgstr "            %s"
 
-#: sequencer.c:633
-msgid "empty commit set passed"
-msgstr "передан пустой набор коммитов"
+#: parse-options.c:631
+msgid "-NUM"
+msgstr "-КОЛИЧЕСТВО"
 
-#: sequencer.c:641
+#: parse-options-cb.c:108
 #, c-format
-msgid "git %s: failed to read the index"
-msgstr "git %s: сбой чтения индекса"
+msgid "malformed object name '%s'"
+msgstr "Неправильное имя объекта «%s»"
 
-#: sequencer.c:645
+#: path.c:826
 #, c-format
-msgid "git %s: failed to refresh the index"
-msgstr "git %s: сбой обновления индекса"
-
-#: sequencer.c:705
-msgid "Cannot revert during another revert."
-msgstr "Нельзя обратить изменения коммита во время другого процесса обращения коммита."
+msgid "Could not make %s writable by group"
+msgstr "Не удалось предоставить доступ к %s на запись"
 
-#: sequencer.c:706
-msgid "Cannot revert during a cherry-pick."
-msgstr "Ð\9dелÑ\8cзÑ\8f Ð¾Ð±Ñ\80аÑ\82иÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а Ð²Ð¾ Ð²Ñ\80емÑ\8f ÐºÐ¾Ð¿Ð¸Ñ\80ованиÑ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а."
+#: pathspec.c:133
+msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
+msgstr "глобалÑ\8cнÑ\8bе Ð¾Ð¿Ñ\86ии Ñ\81пеÑ\86иÑ\84икаÑ\86ии Ð¿Ñ\83Ñ\82и Â«glob» Ð¸ Â«noglob» Ð½ÐµÐ»Ñ\8cзÑ\8f Ð¸Ñ\81полÑ\8cзоваÑ\82Ñ\8c Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно"
 
-#: sequencer.c:709
-msgid "Cannot cherry-pick during a revert."
-msgstr "Нельзя скопировать коммит во время процесса обращения коммита."
+#: pathspec.c:143
+msgid ""
+"global 'literal' pathspec setting is incompatible with all other global "
+"pathspec settings"
+msgstr "глобальная опция спецификации пути «literal» не совместима с другими глобальными спецификаторами доступа"
 
-#: sequencer.c:710
-msgid "Cannot cherry-pick during another cherry-pick."
-msgstr "Ð\9dелÑ\8cзÑ\8f Ñ\81копиÑ\80оваÑ\82Ñ\8c ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 Ð²Ð¾ Ð²Ñ\80емÑ\8f Ð´Ñ\80Ñ\83гого Ð¿Ñ\80оÑ\86еÑ\81Ñ\81а ÐºÐ¾Ð¿Ð¸Ñ\80ованиÑ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а."
+#: pathspec.c:177
+msgid "invalid parameter for pathspec magic 'prefix'"
+msgstr "непÑ\80авилÑ\8cнÑ\8bй Ð¿Ð°Ñ\80амеÑ\82Ñ\80 Ð´Ð»Ñ\8f Ð¼Ð°Ð³Ð¸Ñ\87еÑ\81кого Ñ\81лова Â«prefix» Ð² Ñ\81пеÑ\86иÑ\84икаÑ\86ии Ð¿Ñ\83Ñ\82и "
 
-#: sequencer.c:732
+#: pathspec.c:183
 #, c-format
-msgid "Could not parse line %d."
-msgstr "Не удалось разобрать строку %d."
-
-#: sequencer.c:737
-msgid "No commits parsed."
-msgstr "Коммиты не разобраны."
+msgid "Invalid pathspec magic '%.*s' in '%s'"
+msgstr "неправильное магическое слово «%.*s» в спецификации пути «%s»"
 
-#: sequencer.c:749
+#: pathspec.c:187
 #, c-format
-msgid "Could not open %s"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c %s"
+msgid "Missing ')' at the end of pathspec magic in '%s'"
+msgstr "Ð\9fÑ\80опÑ\83Ñ\89ено Â«)» Ð² ÐºÐ¾Ð½Ñ\86е Ð¼Ð°Ð³Ð¸Ñ\87еÑ\81кого Ñ\81лова Ñ\81пеÑ\86иÑ\84икаÑ\86ии Ð¿Ñ\83Ñ\82и Â«%s»"
 
-#: sequencer.c:753
+#: pathspec.c:205
 #, c-format
-msgid "Could not read %s."
-msgstr "Не удалось прочитать %s."
+msgid "Unimplemented pathspec magic '%c' in '%s'"
+msgstr "Нереализованное магическое слово «%c» спецификации пути «%s»"
 
-#: sequencer.c:760
+#: pathspec.c:230
 #, c-format
-msgid "Unusable instruction sheet: %s"
-msgstr "Непригодная для использования карта с инструкциями: %s"
+msgid "%s: 'literal' and 'glob' are incompatible"
+msgstr "%s: «literal» и «glob» не совместимы"
 
-#: sequencer.c:790
+#: pathspec.c:241
 #, c-format
-msgid "Invalid key: %s"
-msgstr "Недействительный ключ: %s"
+msgid "%s: '%s' is outside repository"
+msgstr "%s: «%s» вне репозитория"
 
-#: sequencer.c:793 builtin/pull.c:50 builtin/pull.c:52
+#: pathspec.c:291
 #, c-format
-msgid "Invalid value for %s: %s"
-msgstr "Ð\9dепÑ\80авилÑ\8cное Ð·Ð½Ð°Ñ\87ение %s: %s"
+msgid "Pathspec '%s' is in submodule '%.*s'"
+msgstr "СпеÑ\86иÑ\84икаÑ\86иÑ\8f Ð¿Ñ\83Ñ\82и Â«%s» Ð² Ð¿Ð¾Ð´Ð¼Ð¾Ð´Ñ\83ле Â«%.*s»"
 
-#: sequencer.c:803
+#: pathspec.c:353
 #, c-format
-msgid "Malformed options sheet: %s"
-msgstr "Повреждённая карта с опциями: %s"
-
-#: sequencer.c:822
-msgid "a cherry-pick or revert is already in progress"
-msgstr "копирование или обращение изменений коммита уже выполняются"
+msgid "%s: pathspec magic not supported by this command: %s"
+msgstr "%s: магические слова в спецификации пути не поддерживаются командой: %s"
 
-#: sequencer.c:823
-msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
-msgstr "попробуйте «git cherry-pick (--continue | --quit | --abort)»"
+#: pathspec.c:408
+msgid ""
+"empty strings as pathspecs will be made invalid in upcoming releases. please"
+" use . instead if you meant to match all paths"
+msgstr "пустые строки как спецификаторы пути будут сделаны недопустимыми в следующих версиях. используйте вместо них «.», что значит соотвествие всем путям"
 
-#: sequencer.c:827
+#: pathspec.c:440
 #, c-format
-msgid "Could not create sequencer directory %s"
-msgstr "Не удалось создать каталог для указателя следования коммитов %s"
-
-#: sequencer.c:862 sequencer.c:998
-msgid "no cherry-pick or revert in progress"
-msgstr "копирование или обращение изменений коммита уже выполняются"
+msgid "pathspec '%s' is beyond a symbolic link"
+msgstr "спецификация пути «%s» находится за символической ссылкой"
 
-#: sequencer.c:864
-msgid "cannot resolve HEAD"
-msgstr "не удалось определить HEAD"
+#: pathspec.c:449
+msgid ""
+"There is nothing to exclude from by :(exclude) patterns.\n"
+"Perhaps you forgot to add either ':/' or '.' ?"
+msgstr "Не указан шаблон для исключения с помощью :(exclude).\nВозможно, вы забыли «:/» или «.» ?"
 
-#: sequencer.c:866 sequencer.c:900
-msgid "cannot abort from a branch yet to be born"
-msgstr "нельзя отменить изменения с ветки, которая еще не создана"
+#: pretty.c:971
+msgid "unable to parse --pretty format"
+msgstr "не удалось разобрать формат для --pretty"
 
-#: sequencer.c:886 builtin/fetch.c:724 builtin/fetch.c:970
+#: read-cache.c:1315
 #, c-format
-msgid "cannot open %s"
-msgstr "не удалось открыть %s"
+msgid ""
+"index.version set, but the value is invalid.\n"
+"Using version %i"
+msgstr "index.version указан, но значение недействительное.\nИспользую версию %i"
 
-#: sequencer.c:888
+#: read-cache.c:1325
 #, c-format
-msgid "cannot read %s: %s"
-msgstr "не удалось прочитать %s: %s"
+msgid ""
+"GIT_INDEX_VERSION set, but the value is invalid.\n"
+"Using version %i"
+msgstr "GIT_INDEX_VERSION указан, но значение недействительное.\nИспользую версию %i"
 
-#: sequencer.c:889
-msgid "unexpected end of file"
-msgstr "неожиданный конец файла"
+#: refs.c:576 builtin/merge.c:840
+#, c-format
+msgid "Could not open '%s' for writing"
+msgstr "Не удалось открыть «%s» для записи"
 
-#: sequencer.c:895
+#: refs/files-backend.c:2481
 #, c-format
-msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
-msgstr "сохраненный файл с HEAD перед копированием коммита «%s» поврежден"
+msgid "could not delete reference %s: %s"
+msgstr "не удалось удалить ссылку %s: %s"
 
-#: sequencer.c:921
+#: refs/files-backend.c:2484
 #, c-format
-msgid "Could not format %s."
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82Ñ\84оÑ\80маÑ\82иÑ\80оваÑ\82Ñ\8c %s."
+msgid "could not delete references: %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\83далиÑ\82Ñ\8c Ñ\81Ñ\81Ñ\8bлки: %s"
 
-#: sequencer.c:1066
+#: refs/files-backend.c:2493
 #, c-format
-msgid "%s: can't cherry-pick a %s"
-msgstr "%s: не удалось скопировать коммит %s"
+msgid "could not remove reference %s"
+msgstr "не удалось удалить ссылки %s"
 
-#: sequencer.c:1069
+#: ref-filter.c:55
 #, c-format
-msgid "%s: bad revision"
-msgstr "%s: плохая редакция"
+msgid "expected format: %%(color:<color>)"
+msgstr "ожидаемый формат: %%(color:<color>)"
 
-#: sequencer.c:1102
-msgid "Can't revert as initial commit"
-msgstr "Нельзя обратить изменения изначального коммита"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "неопознанный цвет: %%(color:%s)"
 
-#: setup.c:160
+#: ref-filter.c:71
 #, c-format
-msgid ""
-"%s: no such path in the working tree.\n"
-"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
-msgstr "%s: нет такого пути в рабочем каталоге.\nИспользуйте «git <команда> -- <путь>…» для указания путей, которые не существуют локально."
+msgid "unrecognized format: %%(%s)"
+msgstr "неопознанный формат: %%(%s)"
 
-#: setup.c:173
+#: ref-filter.c:77
 #, c-format
-msgid ""
-"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
-"Use '--' to separate paths from revisions, like this:\n"
-"'git <command> [<revision>...] -- [<file>...]'"
-msgstr "неоднозначный аргумент «%s»: неизвестная редакция или не путь в рабочем каталоге.\nИспользуйте «--» для отделения путей от редакций, вот так:\n«git <команда> [<редакция>…] -- [<файл>…]»"
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) не принимает аргументов"
 
-#: setup.c:223
+#: ref-filter.c:84
 #, c-format
-msgid ""
-"ambiguous argument '%s': both revision and filename\n"
-"Use '--' to separate paths from revisions, like this:\n"
-"'git <command> [<revision>...] -- [<file>...]'"
-msgstr "неоднозначный аргумент «%s»: является одновременно и редакцией и именем файла.\nИспользуйте «--» для отделения путей от редакций, вот так:\n«git <команда> [<редакция>…] -- [<файл>…]»"
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) не принимает аргументов"
 
-#: setup.c:248 builtin/apply.c:3362 builtin/apply.c:3373 builtin/apply.c:3419
+#: ref-filter.c:101
 #, c-format
-msgid "failed to read %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c %s"
+msgid "positive value expected contents:lines=%s"
+msgstr "положиÑ\82елÑ\8cное Ð·Ð½Ð°Ñ\87ение Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ\82 Ñ\81одеÑ\80жимое:lines=%s"
 
-#: setup.c:468
+#: ref-filter.c:103
 #, c-format
-msgid "Expected git repo version <= %d, found %d"
-msgstr "Ð\9eжидаемаÑ\8f Ð²ÐµÑ\80Ñ\81иÑ\8f git Ñ\80епозиÑ\82оÑ\80иÑ\8f <= %d, Ð° Ð¾Ð±Ð½Ð°Ñ\80Ñ\83жена %d"
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "неопознаннÑ\8bй Ð°Ñ\80гÑ\83менÑ\82 %%(contents): %s"
 
-#: setup.c:476
-msgid "unknown repository extensions found:"
-msgstr "обнаружены неизвестные расширения репозитория:"
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "неопознанный аргумент %%(objectname): %s"
 
-#: setup.c:762
+#: ref-filter.c:135
 #, c-format
-msgid "Not a git repository (or any of the parent directories): %s"
-msgstr "Ð\9dе Ð½Ð°Ð¹Ð´ÐµÐ½ git Ñ\80епозиÑ\82оий (или Ð¾Ð´Ð¸Ð½ Ð¸Ð· ÐµÐ³Ð¾ ÐºÐ°Ñ\82алогов): %s"
+msgid "expected format: %%(align:<width>,<position>)"
+msgstr "ожидаемÑ\8bй Ñ\84оÑ\80маÑ\82: %%(align:<width>,<position>)"
 
-#: setup.c:764 setup.c:915 builtin/index-pack.c:1641
-msgid "Cannot come back to cwd"
-msgstr "Не удалось вернуться в текущий рабочий каталог"
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "неопознанная позиция:%s"
 
-#: setup.c:845
-msgid "Unable to read current working directory"
-msgstr "Не удалось прочитать текущий рабочий каталог"
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "неопознанная ширина:%s"
 
-#: setup.c:920
+#: ref-filter.c:157
 #, c-format
-msgid ""
-"Not a git repository (or any parent up to mount point %s)\n"
-"Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
-msgstr "Не найден git репозитоий (или один из его каталогов вплоть до точки монтирования %s)\nОстанавливаю поиск на границе файловой системы (так как GIT_DISCOVERY_ACROSS_FILESYSTEM не установлен)."
+msgid "unrecognized %%(align) argument: %s"
+msgstr "неопознанный аргумент %%(align): %s"
 
-#: setup.c:927
+#: ref-filter.c:161
 #, c-format
-msgid "Cannot change to '%s/..'"
-msgstr "Ð\9fеÑ\80ейÑ\82и Ð² Â«%s/..»"
+msgid "positive width expected with the %%(align) atom"
+msgstr "ожидаеÑ\82Ñ\81Ñ\8f Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ\82елÑ\8cнаÑ\8f Ñ\88иÑ\80ина Ñ\81 Ñ\83казанием Ñ\87аÑ\81Ñ\82иÑ\86Ñ\8b %%(align)"
 
-#: setup.c:989
+#: ref-filter.c:244
 #, c-format
-msgid ""
-"Problem with core.sharedRepository filemode value (0%.3o).\n"
-"The owner of files must always have read and write permissions."
-msgstr "Проблема со значением режима доступа к файлу core.sharedRepository (0%.3o).\nВладелец файлов должен всегда иметь права на чтение и на запись."
+msgid "malformed field name: %.*s"
+msgstr "неправильное имя поля: %.*s"
 
-#: sha1_file.c:1046
-msgid "offset before end of packfile (broken .idx?)"
-msgstr "сдвиг до конца файла пакета (возможно, повреждён файл .idx?)"
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "неизвестное имя поля: %.*s"
 
-#: sha1_file.c:2434
+#: ref-filter.c:372
 #, c-format
-msgid "offset before start of pack index for %s (corrupt index?)"
-msgstr "Ñ\81двиг Ð´Ð¾ Ð½Ð°Ñ\87ала Ð¸Ð½Ð´ÐµÐºÑ\81а Ð¿Ð°ÐºÐµÑ\82а Ð´Ð»Ñ\8f %s (повÑ\80еждÑ\91н Ð¸Ð½Ð´ÐµÐºÑ\81?)"
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "Ñ\84оÑ\80маÑ\82: Ñ\87аÑ\81Ñ\82иÑ\86а %%(end) Ð¸Ñ\81полÑ\8cзована Ð±ÐµÐ· Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\89ей Ñ\87аÑ\81Ñ\82иÑ\86Ñ\8b"
 
-#: sha1_file.c:2438
+#: ref-filter.c:424
 #, c-format
-msgid "offset beyond end of pack index for %s (truncated index?)"
-msgstr "сдвиг за пределами индекса пакета для %s (обрезан индекс?)"
+msgid "malformed format string %s"
+msgstr "неправильная строка формата %s"
 
-#: sha1_name.c:462
-msgid ""
-"Git normally never creates a ref that ends with 40 hex characters\n"
-"because it will be ignored when you just specify 40-hex. These refs\n"
-"may be created by mistake. For example,\n"
-"\n"
-"  git checkout -b $br $(git rev-parse ...)\n"
-"\n"
-"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n"
-"examine these refs and maybe delete them. Turn this message off by\n"
-"running \"git config advice.objectNameWarning false\""
-msgstr "Обычно Git не создает ссылки, оканчивающиеся на 40 шестнадцатеричных\nсимволов, потому, что они будут игнорироваться, когда вы просто\nукажете это 40-символьное шестнадцатеричное число. Такие ссылки\nмогли быть созданы по ошибке. Например, с помощью:\n\n  git checkout -b $br $(git rev-parse …)\n\n, если «$br» оказался пустым, то ссылка с 40-символьным\nшестнадцатеричным числом будет создана. Пожалуйста, просмотрите эти\nссылки и, возможно, удалите их. Вы можете отключить это сообщение\nзапустив «git config advice.objectNameWarning false»"
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= требует наличия положительного целого аргумента"
 
-#: submodule.c:64 submodule.c:98
-msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
-msgstr "Не удалось изменить не слитый .gitmodules, сначала разрешите конфликты"
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "ссылка «%s» не содержит %ld компонент для :strip"
 
-#: submodule.c:68 submodule.c:102
+#: ref-filter.c:1046
 #, c-format
-msgid "Could not find section in .gitmodules where path=%s"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð½Ð°Ð¹Ñ\82и Ñ\80аздел Ð² .gitmodules, Ð³Ð´Ðµ Ð¿Ñ\83Ñ\82Ñ\8c Ñ\80авен %s"
+msgid "unknown %.*s format %s"
+msgstr "неизвеÑ\81Ñ\82нÑ\8bй %.*s Ñ\84оÑ\80маÑ\82 %s"
 
-#: submodule.c:76
+#: ref-filter.c:1066 ref-filter.c:1097
 #, c-format
-msgid "Could not update .gitmodules entry %s"
-msgstr " Не удалось обновить .gitmodules запись %s"
+msgid "missing object %s for %s"
+msgstr "не найден объект %s для %s"
 
-#: submodule.c:109
+#: ref-filter.c:1069 ref-filter.c:1100
 #, c-format
-msgid "Could not remove .gitmodules entry for %s"
-msgstr "Не удалось удалить запись в .gitmodules для %s"
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "сбой при выполнении parse_object_buffer на %s для %s"
 
-#: submodule.c:120
-msgid "staging updated .gitmodules failed"
-msgstr "сбой индексирования обновленного .gitmodules"
+#: ref-filter.c:1311
+#, c-format
+msgid "malformed object at '%s'"
+msgstr "Повреждённый объект «%s»"
 
-#: submodule.c:177
-msgid "negative values not allowed for submodule.fetchJobs"
-msgstr "нельзя использовать отприцательные значения для submodule.fetchJobs"
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "игнорирую ссылку с неправильным именем %s"
 
-#: submodule-config.c:358
+#: ref-filter.c:1378
 #, c-format
-msgid "invalid value for %s"
-msgstr "непÑ\80авилÑ\8cное Ð·Ð½Ð°Ñ\87ение %s"
+msgid "ignoring broken ref %s"
+msgstr "игноÑ\80иÑ\80Ñ\83Ñ\8e Ð½ÐµÐ¿Ñ\80авилÑ\8cнÑ\83Ñ\8e Ñ\81Ñ\81Ñ\8bлкÑ\83 %s"
 
-#: trailer.c:237
+#: ref-filter.c:1633
 #, c-format
-msgid "running trailer command '%s' failed"
-msgstr "сбой при запуске команды завершителя «%s»"
+msgid "format: %%(end) atom missing"
+msgstr "format: пропущена частица %%(end)"
 
-#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
-#: trailer.c:562
+#: ref-filter.c:1687
 #, c-format
-msgid "unknown value '%s' for key '%s'"
-msgstr "неизвеÑ\81Ñ\82ное Ð·Ð½Ð°Ñ\87ение Â«%s» Ð´Ð»Ñ\8f ÐºÐ»Ñ\8eÑ\87а Â«%s»"
+msgid "malformed object name %s"
+msgstr "непÑ\80авилÑ\8cное Ð¸Ð¼Ñ\8f Ð¾Ð±Ñ\8aекÑ\82а %s"
 
-#: trailer.c:544 trailer.c:549 builtin/remote.c:289
+#: remote.c:746
 #, c-format
-msgid "more than one %s"
-msgstr "болÑ\8cÑ\88е Ð¾Ð´Ð½Ð¾Ð³Ð¾ %s"
+msgid "Cannot fetch both %s and %s to %s"
+msgstr "Ð\9dелÑ\8cзÑ\8f Ð¸Ð·Ð²Ð»ÐµÑ\87Ñ\8c Ð¾Ð´Ð½Ð¾Ð²Ñ\80еменно %s Ð¸ %s Ð² %s"
 
-#: trailer.c:582
+#: remote.c:750
 #, c-format
-msgid "empty trailer token in trailer '%.*s'"
-msgstr "пустая последняя лексема в завершителе «%.*s»"
+msgid "%s usually tracks %s, not %s"
+msgstr "%s обычно отслеживает %s, а не %s"
 
-#: trailer.c:702
+#: remote.c:754
 #, c-format
-msgid "could not read input file '%s'"
-msgstr "не удалось прочитать входной файл «%s»"
+msgid "%s tracks both %s and %s"
+msgstr "%s отслеживает и %s и %s"
 
-#: trailer.c:705
-msgid "could not read from stdin"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ð¸Ð· Ñ\81Ñ\82андаÑ\80Ñ\82ного Ð²Ð²Ð¾Ð´а"
+#: remote.c:762
+msgid "Internal error"
+msgstr "Ð\92нÑ\83Ñ\82Ñ\80еннÑ\8fÑ\8f Ð¾Ñ\88ибка"
 
-#: trailer.c:857 builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "не удалось выполнить stat для %s"
+#: remote.c:1677 remote.c:1720
+msgid "HEAD does not point to a branch"
+msgstr "HEAD не указывает на ветку"
 
-#: trailer.c:859
+#: remote.c:1686
 #, c-format
-msgid "file %s is not a regular file"
-msgstr "файл %s не является обычным файлом"
+msgid "no such branch: '%s'"
+msgstr "нет такой ветки: «%s»"
 
-#: trailer.c:861
+#: remote.c:1689
 #, c-format
-msgid "file %s is not writable by user"
-msgstr "файл %s не доступен на запись пользователю"
-
-#: trailer.c:873
-msgid "could not open temporary file"
-msgstr "не удалось создать временный файл"
+msgid "no upstream configured for branch '%s'"
+msgstr "вышестоящая ветка не настроена для ветки «%s»"
 
-#: trailer.c:912
+#: remote.c:1695
 #, c-format
-msgid "could not rename temporary file to %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿ÐµÑ\80еименоваÑ\82Ñ\8c Ð²Ñ\80еменнÑ\8bй Ñ\84айл Ð² %s"
+msgid "upstream branch '%s' not stored as a remote-tracking branch"
+msgstr "вÑ\8bÑ\88еÑ\81Ñ\82оÑ\8fÑ\89аÑ\8f Ð²ÐµÑ\82ка Â«%s» Ð½Ðµ Ñ\81оÑ\85Ñ\80анена ÐºÐ°Ðº Ð¾Ñ\82Ñ\81леживаемаÑ\8f Ð²ÐµÑ\82ка"
 
-#: transport.c:62
+#: remote.c:1710
 #, c-format
-msgid "Would set upstream of '%s' to '%s' of '%s'\n"
-msgstr "Ð\91Ñ\83деÑ\82 Ñ\83Ñ\81Ñ\82ановлен Ð²Ñ\8bÑ\88еÑ\81Ñ\82оÑ\8fÑ\89ий Ñ\80епозиÑ\82оÑ\80ий Ð´Ð»Ñ\8f Â«%s» Ð½Ð° Â«%s» Ñ\81 Â«%s»\n"
+msgid "push destination '%s' on remote '%s' has no local tracking branch"
+msgstr "назнаÑ\87ение Ð´Ð»Ñ\8f Ð¾Ñ\82пÑ\80авки Â«%s» Ð½Ð° Ð²Ð½ÐµÑ\88нем Ñ\81еÑ\80веÑ\80е Â«%s» Ð½Ðµ Ð¸Ð¼ÐµÐµÑ\82 Ð»Ð¾ÐºÐ°Ð»Ñ\8cной Ð¾Ñ\82Ñ\81леживаемой Ð²ÐµÑ\82ки"
 
-#: transport.c:151
+#: remote.c:1725
 #, c-format
-msgid "transport: invalid depth option '%s'"
-msgstr "транспорт: неправильный параметр глубины «%s»"
+msgid "branch '%s' has no remote for pushing"
+msgstr "ветка «%s» не имеет внешнего сервера для отправки"
 
-#: transport.c:771
+#: remote.c:1736
 #, c-format
-msgid ""
-"The following submodule paths contain changes that can\n"
-"not be found on any remote:\n"
-msgstr "Подмодули по указанным путям содержат изменения, которые не найдены ни на одном из внешних репозиториев:\n"
+msgid "push refspecs for '%s' do not include '%s'"
+msgstr "спецификации пути для отправки «%s» не включают в себя «%s»"
+
+#: remote.c:1749
+msgid "push has no destination (push.default is 'nothing')"
+msgstr "отправка не имеет точки назначения (push.default выставлен в «nothing»)"
+
+#: remote.c:1771
+msgid "cannot resolve 'simple' push to a single destination"
+msgstr "не удалось выполнить «simple» отправку в единственную точку назначения"
 
-#: transport.c:775
+#: remote.c:2073
 #, c-format
-msgid ""
-"\n"
-"Please try\n"
-"\n"
-"\tgit push --recurse-submodules=on-demand\n"
-"\n"
-"or cd to the path and use\n"
-"\n"
-"\tgit push\n"
-"\n"
-"to push them to a remote.\n"
-"\n"
-msgstr "\nПопробуйте выполнить\n\n\tgit push --recurse-submodules=on-demand\n\nили перейти в каталог с помощью команды cd и выполнить\n\n\tgit push\n\nдля их отправки на внешний репозиторий.\n"
+msgid "Your branch is based on '%s', but the upstream is gone.\n"
+msgstr "Ваша ветка базируется на «%s», но вышестоящий репозиторий исчез.\n"
 
-#: transport.c:783
-msgid "Aborting."
-msgstr "Прерываю."
+#: remote.c:2077
+msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
+msgstr "(для исправления запустите «git branch --unset-upstream»)\n"
 
-#: transport-helper.c:1041
+#: remote.c:2080
 #, c-format
-msgid "Could not read ref %s"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ñ\81Ñ\81Ñ\8bлкÑ\83 %s"
+msgid "Your branch is up-to-date with '%s'.\n"
+msgstr "Ð\92аÑ\88а Ð²ÐµÑ\82ка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð° Ð² Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вии Ñ\81 Â«%s».\n"
 
-#: unpack-trees.c:64
+#: remote.c:2084
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by checkout:\n"
-"%%sPlease commit your changes or stash them before you switch branches."
-msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при переключении на состояние:\n%%sСделайте коммит или спрячьте ваши изменения перед переключением веток."
+msgid "Your branch is ahead of '%s' by %d commit.\n"
+msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
+msgstr[0] "Ваша ветка опережает «%s» на %d коммит.\n"
+msgstr[1] "Ваша ветка опережает «%s» на %d коммита.\n"
+msgstr[2] "Ваша ветка опережает «%s» на %d коммитов.\n"
+msgstr[3] "Ваша ветка опережает «%s» на %d коммитов.\n"
 
-#: unpack-trees.c:66
+#: remote.c:2090
+msgid "  (use \"git push\" to publish your local commits)\n"
+msgstr "  (используйте «git push», чтобы опубликовать ваши локальные коммиты)\n"
+
+#: remote.c:2093
 #, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by checkout:\n"
-"%%s"
-msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при переключении на состояние:\n%%s"
+msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
+msgid_plural ""
+"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
+msgstr[0] "Ваша ветка отстает от «%s» на %d коммит и может быть перемотана вперед.\n"
+msgstr[1] "Ваша ветка отстает от «%s» на %d коммита и может быть перемотана вперед.\n"
+msgstr[2] "Ваша ветка отстает от «%s» на %d коммитов и может быть перемотана вперед.\n"
+msgstr[3] "Ваша ветка отстает от «%s» на %d коммитов и может быть перемотана вперед.\n"
 
-#: unpack-trees.c:69
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-"%%sPlease commit your changes or stash them before you merge."
-msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при слиянии:\n%%sСделайте коммит или спрячьте ваши изменения перед слиянием веток."
+#: remote.c:2101
+msgid "  (use \"git pull\" to update your local branch)\n"
+msgstr "  (используйте «git pull», чтобы обновить вашу локальную ветку)\n"
 
-#: unpack-trees.c:71
+#: remote.c:2104
 #, c-format
 msgid ""
-"Your local changes to the following files would be overwritten by merge:\n"
-"%%s"
-msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при слиянии:\n%%s"
+"Your branch and '%s' have diverged,\n"
+"and have %d and %d different commit each, respectively.\n"
+msgid_plural ""
+"Your branch and '%s' have diverged,\n"
+"and have %d and %d different commits each, respectively.\n"
+msgstr[0] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разный коммит в каждой соответственно.\n"
+msgstr[1] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммита в каждой соответственно.\n"
+msgstr[2] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
+msgstr[3] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
 
-#: unpack-trees.c:74
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by %s:\n"
-"%%sPlease commit your changes or stash them before you %s."
-msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при %s:\n%%sСделайте коммит или спрячьте ваши изменения перед %s."
+#: remote.c:2114
+msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
+msgstr "  (используйте «git pull», чтобы слить внешнюю ветку в вашу)\n"
 
-#: unpack-trees.c:76
-#, c-format
-msgid ""
-"Your local changes to the following files would be overwritten by %s:\n"
-"%%s"
-msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при %s:\n%%s"
+#: revision.c:2158
+msgid "your current branch appears to be broken"
+msgstr "похоже, ваша текущая ветка повреждена"
 
-#: unpack-trees.c:81
+#: revision.c:2161
 #, c-format
-msgid ""
-"Updating the following directories would lose untracked files in it:\n"
-"%s"
-msgstr "Обновление указанных каталогов приведет к потере неотслеживаемых файлов в них:\n%s"
+msgid "your current branch '%s' does not have any commits yet"
+msgstr "ваша текущая ветка «%s» еще не содержит ни одного коммита"
 
-#: unpack-trees.c:85
-#, c-format
-msgid ""
-"The following untracked working tree files would be removed by checkout:\n"
-"%%sPlease move or remove them before you switch branches."
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при переключении на состояние:\n%%sПереместите эти файлы или удалите их перед переключением веток."
+#: revision.c:2355
+msgid "--first-parent is incompatible with --bisect"
+msgstr "опцию --first-parent нельзя использовать одновременно с --bisect"
 
-#: unpack-trees.c:87
-#, c-format
-msgid ""
-"The following untracked working tree files would be removed by checkout:\n"
-"%%s"
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при переключении на состояние:\n%%s"
+#: run-command.c:106
+msgid "open /dev/null failed"
+msgstr "сбой открытия /dev/null"
 
-#: unpack-trees.c:90
+#: run-command.c:108
 #, c-format
-msgid ""
-"The following untracked working tree files would be removed by merge:\n"
-"%%sPlease move or remove them before you merge."
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при слиянии:\n%%sПереместите эти файлы или удалите их перед переключением веток."
+msgid "dup2(%d,%d) failed"
+msgstr "dup2(%d,%d) сбой"
 
-#: unpack-trees.c:92
-#, c-format
-msgid ""
-"The following untracked working tree files would be removed by merge:\n"
-"%%s"
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при слиянии:\n%%s"
+#: send-pack.c:297
+msgid "failed to sign the push certificate"
+msgstr "сбой подписания сертификата отправки"
 
-#: unpack-trees.c:95
-#, c-format
-msgid ""
-"The following untracked working tree files would be removed by %s:\n"
-"%%sPlease move or remove them before you %s."
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при %s:\n%%sПереместите эти файлы или удалите их перед %s."
+#: send-pack.c:410
+msgid "the receiving end does not support --signed push"
+msgstr "принимающая сторона не поддерживает отправку с опцией --signed"
 
-#: unpack-trees.c:97
-#, c-format
+#: send-pack.c:412
 msgid ""
-"The following untracked working tree files would be removed by %s:\n"
-"%%s"
-msgstr "УказаннÑ\8bе Ð½ÐµÐ¾Ñ\82Ñ\81леживаемÑ\8bе Ñ\84айлÑ\8b Ð² Ñ\80абоÑ\87ем ÐºÐ°Ñ\82алоге Ð±Ñ\83дÑ\83Ñ\82 Ñ\83даленÑ\8b Ð¿Ñ\80и %s:\n%%s"
+"not sending a push certificate since the receiving end does not support "
+"--signed push"
+msgstr "не Ð¾Ñ\82пÑ\80авлÑ\8fем Ñ\81еÑ\80Ñ\82иÑ\84икаÑ\82 Ð´Ð»Ñ\8f Ð¾Ñ\82пÑ\80авки, Ñ\82ак ÐºÐ°Ðº Ð¿Ñ\80инимаÑ\8eÑ\89аÑ\8f Ñ\81Ñ\82оÑ\80она Ð½Ðµ Ð¿Ð¾Ð´Ð´ÐµÑ\80живаеÑ\82 Ð¾Ñ\82пÑ\80авкÑ\83 Ñ\81 Ð¾Ð¿Ñ\86ией --signed"
 
-#: unpack-trees.c:102
-#, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by checkout:\n"
-"%%sPlease move or remove them before you switch branches."
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при переключении на состояние:\n%%sПереместите эти файлы или удалите их перед переключением веток."
+#: send-pack.c:424
+msgid "the receiving end does not support --atomic push"
+msgstr "принимающая сторона не поддерживает отправку с опцией --atomic"
 
-#: unpack-trees.c:104
-#, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by checkout:\n"
-"%%s"
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при переключении на состояние:\n%%s"
+#: send-pack.c:429
+msgid "the receiving end does not support push options"
+msgstr "принимающая сторона не поддерживает отправку с опциями"
 
-#: unpack-trees.c:107
-#, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by merge:\n"
-"%%sPlease move or remove them before you merge."
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при слиянии:\n%%sПереместите эти файлы или удалите их перед переключением веток."
+#: sequencer.c:171
+msgid "revert"
+msgstr "обратить изменения"
 
-#: unpack-trees.c:109
-#, c-format
-msgid ""
-"The following untracked working tree files would be overwritten by merge:\n"
-"%%s"
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при слиянии:\n%%s"
+#: sequencer.c:171
+msgid "cherry-pick"
+msgstr "копировать коммит"
 
-#: unpack-trees.c:112
-#, c-format
+#: sequencer.c:228
 msgid ""
-"The following untracked working tree files would be overwritten by %s:\n"
-"%%sPlease move or remove them before you %s."
-msgstr "УказаннÑ\8bе Ð½ÐµÐ¾Ñ\82Ñ\81леживаемÑ\8bе Ñ\84айлÑ\8b Ð² Ñ\80абоÑ\87ем ÐºÐ°Ñ\82алоге Ð±Ñ\83дÑ\83Ñ\82 Ð¿ÐµÑ\80езапиÑ\81анÑ\8b Ð¿Ñ\80и %s:\n%%sÐ\9fеÑ\80емеÑ\81Ñ\82иÑ\82е Ñ\8dÑ\82и Ñ\84айлÑ\8b Ð¸Ð»Ð¸ Ñ\83далиÑ\82е Ð¸Ñ\85 Ð¿ÐµÑ\80ед %s."
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'"
+msgstr "поÑ\81ле Ñ\80азÑ\80еÑ\88ениÑ\8f ÐºÐ¾Ð½Ñ\84ликÑ\82ов, Ð¿Ð¾Ð¼ÐµÑ\82Ñ\8cÑ\82е Ð¸Ñ\81пÑ\80авленнÑ\8bе Ð¿Ñ\83Ñ\82и\nÑ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e Â«git add <пÑ\83Ñ\82и>» Ð¸Ð»Ð¸ Â«git rm <пÑ\83Ñ\82и>»"
 
-#: unpack-trees.c:114
-#, c-format
+#: sequencer.c:231
 msgid ""
-"The following untracked working tree files would be overwritten by %s:\n"
-"%%s"
-msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при %s:\n%%s"
+"after resolving the conflicts, mark the corrected paths\n"
+"with 'git add <paths>' or 'git rm <paths>'\n"
+"and commit the result with 'git commit'"
+msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»\nи сделайте коммит с помощью «git commit»"
 
-#: unpack-trees.c:121
+#: sequencer.c:244 sequencer.c:1209
 #, c-format
-msgid "Entry '%s' overlaps with '%s'.  Cannot bind."
-msgstr "Ð\97апиÑ\81Ñ\8c Â«%s» Ñ\87аÑ\81Ñ\82иÑ\87но Ñ\81овпадаеÑ\82 Ñ\81 Â«%s».  Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð½Ð°Ð·Ð½Ð°Ñ\87иÑ\82Ñ\8c Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вие."
+msgid "could not lock '%s'"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ\80оваÑ\82Ñ\8c Â«%s»"
 
-#: unpack-trees.c:124
+#: sequencer.c:247 sequencer.c:1125 sequencer.c:1214
 #, c-format
-msgid ""
-"Cannot update sparse checkout: the following entries are not up-to-date:\n"
-"%s"
-msgstr "Не удалось обновить частичное состояние: следующие элементы не последней версии:\n%s"
+msgid "could not write to '%s'"
+msgstr "не удалось записать в «%s»"
 
-#: unpack-trees.c:126
+#: sequencer.c:251
 #, c-format
-msgid ""
-"The following Working tree files would be overwritten by sparse checkout update:\n"
-"%s"
-msgstr "Указанные файлы из рабочего каталога будут перезаписаны при обновлении частичного состояния:\n%s"
+msgid "could not write eol to '%s'"
+msgstr "не удалось записать eol в «%s»"
 
-#: unpack-trees.c:128
+#: sequencer.c:255 sequencer.c:1130 sequencer.c:1216
 #, c-format
-msgid ""
-"The following Working tree files would be removed by sparse checkout update:\n"
-"%s"
-msgstr "Указанные файлы из рабочего каталога будут удалены при обновлении частичного состояния:\n%s"
+msgid "failed to finalize '%s'."
+msgstr "не удалось завершить «%s»."
 
-#: unpack-trees.c:205
+#: sequencer.c:279 builtin/am.c:259 builtin/commit.c:749 builtin/merge.c:1032
 #, c-format
-msgid "Aborting\n"
-msgstr "Прерываю\n"
-
-#: unpack-trees.c:237
-msgid "Checking out files"
-msgstr "Распаковка файлов"
-
-#: urlmatch.c:120
-msgid "invalid URL scheme name or missing '://' suffix"
-msgstr "Неправильная имя URL схемы или пропущен суффикс «://»"
+msgid "could not read '%s'"
+msgstr "не удалось прочитать «%s»"
 
-#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#: sequencer.c:305
 #, c-format
-msgid "invalid %XX escape sequence"
-msgstr "непÑ\80авилÑ\8cнаÑ\8f Ñ\83пÑ\80авлÑ\8fÑ\8eÑ\89аÑ\8f Ð¿Ð¾Ñ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c %XX"
+msgid "your local changes would be overwritten by %s."
+msgstr "ваÑ\88и Ð»Ð¾ÐºÐ°Ð»Ñ\8cнÑ\8bе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð±Ñ\83дÑ\83Ñ\82 Ð¿ÐµÑ\80езапиÑ\81анÑ\8b %s."
 
-#: urlmatch.c:172
-msgid "missing host and scheme is not 'file:'"
-msgstr "пÑ\80опÑ\83Ñ\89ено Ð¸Ð¼Ñ\8f Ñ\81еÑ\80веÑ\80а Ð¸ Ñ\81Ñ\85ема Ð´Ð¾Ñ\81Ñ\82Ñ\83па Ð½Ðµ Â«file:»"
+#: sequencer.c:309
+msgid "commit your changes or stash them to proceed."
+msgstr "длÑ\8f Ð¿Ñ\80одолжениÑ\8f Ð·Ð°ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82Ñ\8cÑ\82е Ð²Ð°Ñ\88и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð¸Ð»Ð¸ Ñ\81пÑ\80Ñ\8fÑ\87Ñ\8cÑ\82е Ð¸Ñ\85."
 
-#: urlmatch.c:189
-msgid "a 'file:' URL may not have a port number"
-msgstr "URL со схемой «file:» не может содержать номер порта"
+#: sequencer.c:324
+#, c-format
+msgid "%s: fast-forward"
+msgstr "%s: перемотка вперед"
 
-#: urlmatch.c:199
-msgid "invalid characters in host name"
-msgstr "неправильные символы в имени сервера"
+#. TRANSLATORS: %s will be "revert" or "cherry-pick"
+#: sequencer.c:399
+#, c-format
+msgid "%s: Unable to write new index file"
+msgstr "%s: Не удалось записать файл индекса"
 
-#: urlmatch.c:244 urlmatch.c:255
-msgid "invalid port number"
-msgstr "неправильный номер порта"
+#: sequencer.c:418
+msgid "could not resolve HEAD commit\n"
+msgstr "не удалось распознать HEAD коммит\n"
 
-#: urlmatch.c:322
-msgid "invalid '..' path segment"
-msgstr "неправильная часть пути «..»"
+#: sequencer.c:438
+msgid "unable to update cache tree\n"
+msgstr "не удалось обновить дерево кэша\n"
 
-#: worktree.c:282
+#: sequencer.c:483
 #, c-format
-msgid "failed to read '%s'"
-msgstr "не удалось прочитать «%s»"
+msgid ""
+"you have staged changes in your working tree\n"
+"If these changes are meant to be squashed into the previous commit, run:\n"
+"\n"
+"  git commit --amend %s\n"
+"\n"
+"If they are meant to go into a new commit, run:\n"
+"\n"
+"  git commit %s\n"
+"\n"
+"In both cases, once you're done, continue with:\n"
+"\n"
+"  git rebase --continue\n"
+msgstr "у вас имеются проиндексированные изменения в рабочем каталоге. Если эти изменения должны быть объеденены с предыдущим коммитом, то запустите:\n\n  git commit --amend %s\n\nЕсли же они должны быть помещены в новый коммит, то запустите:\n\n  git commit %s\n\nВ любом случае, после того как вы закончите, продолжить перемещение можно выполнив:\n\n  git rebase --continue\n"
 
-#: wrapper.c:222 wrapper.c:392
+#: sequencer.c:567
 #, c-format
-msgid "could not open '%s' for reading and writing"
-msgstr "не удалось открыть «%s» для чтения и записи"
+msgid "could not parse commit %s\n"
+msgstr "не удалось разобрать коммит %s\n"
 
-#: wrapper.c:224 wrapper.c:394 builtin/am.c:778
+#: sequencer.c:572
 #, c-format
-msgid "could not open '%s' for writing"
-msgstr "не удалось открыть «%s» для записи"
+msgid "could not parse parent commit %s\n"
+msgstr "не удалось разобрать родительский коммит %s\n"
 
-#: wrapper.c:226 wrapper.c:396 builtin/am.c:324 builtin/am.c:771
-#: builtin/am.c:859 builtin/commit.c:1712 builtin/merge.c:1029
-#: builtin/pull.c:407
-#, c-format
-msgid "could not open '%s' for reading"
-msgstr "не удалось открыть «%s» для чтения"
+#: sequencer.c:656
+msgid "your index file is unmerged."
+msgstr "ваш индекс не слит."
 
-#: wrapper.c:605 wrapper.c:626
+#: sequencer.c:675
 #, c-format
-msgid "unable to access '%s'"
-msgstr "«%s» недоступно"
-
-#: wrapper.c:634
-msgid "unable to get current working directory"
-msgstr "не удалось получить текущий рабочий каталог"
+msgid "commit %s is a merge but no -m option was given."
+msgstr "коммит %s — это коммит-слияние, но опция -m не указана."
 
-#: wrapper.c:658
+#: sequencer.c:683
 #, c-format
-msgid "could not write to %s"
-msgstr "не удалось записать в %s"
+msgid "commit %s does not have parent %d"
+msgstr "у коммита %s нет предка %d"
 
-#: wrapper.c:660
+#: sequencer.c:687
 #, c-format
-msgid "could not close %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð·Ð°ÐºÑ\80Ñ\8bÑ\82Ñ\8c %s"
+msgid "mainline was specified but commit %s is not a merge."
+msgstr "оÑ\81новнаÑ\8f Ð²ÐµÑ\82ка Ñ\83казана, Ð½Ð¾ ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 %s Ð½Ðµ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\81лиÑ\8fнием."
 
-#: wt-status.c:150
-msgid "Unmerged paths:"
-msgstr "Не слитые пути:"
-
-#: wt-status.c:177 wt-status.c:204
+#. TRANSLATORS: The first %s will be a "todo" command like
+#. "revert" or "pick", the second %s a SHA1.
+#: sequencer.c:700
 #, c-format
-msgid "  (use \"git reset %s <file>...\" to unstage)"
-msgstr "  (используйте «git reset %s <файл>…», чтобы убрать из индекса)"
-
-#: wt-status.c:179 wt-status.c:206
-msgid "  (use \"git rm --cached <file>...\" to unstage)"
-msgstr "  (используйте «git rm --cached <файл>…», чтобы убрать из индекса)"
+msgid "%s: cannot parse parent commit %s"
+msgstr "%s: не удалось разобрать родительский коммит для %s"
 
-#: wt-status.c:183
-msgid "  (use \"git add <file>...\" to mark resolution)"
-msgstr "  (используйте «git add <файл>…», чтобы пометить разрешение конфликта)"
+#: sequencer.c:705
+#, c-format
+msgid "cannot get commit message for %s"
+msgstr "не удалось получить сообщение коммита для %s"
 
-#: wt-status.c:185 wt-status.c:189
-msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
-msgstr "  (используйте «git add/rm <файл>…», чтобы пометить выбранное разрешение конфликта)"
+#: sequencer.c:797
+#, c-format
+msgid "could not revert %s... %s"
+msgstr "не удалось обратить изменения коммита %s… %s"
 
-#: wt-status.c:187
-msgid "  (use \"git rm <file>...\" to mark resolution)"
-msgstr "  (используйте «git rm <файл>…», чтобы пометить разрешение конфликта)"
+#: sequencer.c:798
+#, c-format
+msgid "could not apply %s... %s"
+msgstr "не удалось применить коммит %s… %s"
 
-#: wt-status.c:198 wt-status.c:882
-msgid "Changes to be committed:"
-msgstr "Ð\98зменениÑ\8f, ÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ð±Ñ\83дÑ\83Ñ\82 Ð²ÐºÐ»Ñ\8eÑ\87енÑ\8b Ð² ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82:"
+#: sequencer.c:833
+msgid "empty commit set passed"
+msgstr "пеÑ\80едан Ð¿Ñ\83Ñ\81Ñ\82ой Ð½Ð°Ð±Ð¾Ñ\80 ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82ов"
 
-#: wt-status.c:216 wt-status.c:891
-msgid "Changes not staged for commit:"
-msgstr "Изменения, которые не в индексе для коммита:"
+#: sequencer.c:843
+#, c-format
+msgid "git %s: failed to read the index"
+msgstr "git %s: сбой чтения индекса"
 
-#: wt-status.c:220
-msgid "  (use \"git add <file>...\" to update what will be committed)"
-msgstr "  (используйте «git add <файл>…», чтобы добавить файл в индекс)"
+#: sequencer.c:850
+#, c-format
+msgid "git %s: failed to refresh the index"
+msgstr "git %s: сбой обновления индекса"
 
-#: wt-status.c:222
-msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
-msgstr "  (используйте «git add/rm <файл>…», чтобы добавить или удалить файл из индекса)"
+#: sequencer.c:944
+#, c-format
+msgid "invalid line %d: %.*s"
+msgstr "неправильная строка %d: %.*s"
 
-#: wt-status.c:223
-msgid ""
-"  (use \"git checkout -- <file>...\" to discard changes in working "
-"directory)"
-msgstr "  (используйте «git checkout -- <файл>…», чтобы отменить изменения\n   в рабочем каталоге)"
+#: sequencer.c:950
+msgid "no commits parsed."
+msgstr "коммиты не разобраны."
 
-#: wt-status.c:225
-msgid "  (commit or discard the untracked or modified content in submodules)"
-msgstr "  (сделайте коммит или отмените изменения в неотслеживаемом или измененном содержимом в подмодулях)"
+#: sequencer.c:966
+#, c-format
+msgid "could not read '%s'."
+msgstr "не удалось прочитать «%s»."
 
-#: wt-status.c:237
+#: sequencer.c:972
 #, c-format
-msgid "  (use \"git %s <file>...\" to include in what will be committed)"
-msgstr "  (используйте «git %s <файл>…», чтобы добавить в то, что будет включено в коммит)"
+msgid "unusable instruction sheet: '%s'"
+msgstr "непригодная для использования карта с инструкциями: «%s»"
 
-#: wt-status.c:252
-msgid "both deleted:"
-msgstr "оба Ñ\83даленÑ\8b:"
+#: sequencer.c:983
+msgid "cannot cherry-pick during a revert."
+msgstr "нелÑ\8cзÑ\8f Ñ\81копиÑ\80оваÑ\82Ñ\8c ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 Ð²Ð¾ Ð²Ñ\80емÑ\8f Ð¿Ñ\80оÑ\86еÑ\81Ñ\81а Ð¾Ð±Ñ\80аÑ\89ениÑ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а."
 
-#: wt-status.c:254
-msgid "added by us:"
-msgstr "добавлено Ð½Ð°Ð¼Ð¸:"
+#: sequencer.c:985
+msgid "cannot revert during a cherry-pick."
+msgstr "нелÑ\8cзÑ\8f Ð¾Ð±Ñ\80аÑ\82иÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а Ð²Ð¾ Ð²Ñ\80емÑ\8f ÐºÐ¾Ð¿Ð¸Ñ\80ованиÑ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а."
 
-#: wt-status.c:256
-msgid "deleted by them:"
-msgstr "удалено ими:"
+#: sequencer.c:1028
+#, c-format
+msgid "invalid key: %s"
+msgstr "недействительный ключ: %s"
 
-#: wt-status.c:258
-msgid "added by them:"
-msgstr "добавлено ими:"
+#: sequencer.c:1031
+#, c-format
+msgid "invalid value for %s: %s"
+msgstr "неправильное значение %s: %s"
 
-#: wt-status.c:260
-msgid "deleted by us:"
-msgstr "удалено нами:"
+#: sequencer.c:1063
+#, c-format
+msgid "malformed options sheet: '%s'"
+msgstr "испорченная карта с опциями: «%s»"
 
-#: wt-status.c:262
-msgid "both added:"
-msgstr "оба Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ\8b:"
+#: sequencer.c:1101
+msgid "a cherry-pick or revert is already in progress"
+msgstr "копиÑ\80ование Ð¸Ð»Ð¸ Ð¾Ð±Ñ\80аÑ\89ение Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а Ñ\83же Ð²Ñ\8bполнÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f"
 
-#: wt-status.c:264
-msgid "both modified:"
-msgstr "оба Ð¸Ð·Ð¼ÐµÐ½Ñ\8b:"
+#: sequencer.c:1102
+msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
+msgstr "попÑ\80обÑ\83йÑ\82е Â«git cherry-pick (--continue | --quit | --abort)»"
 
-#: wt-status.c:274
-msgid "new file:"
-msgstr "новый файл:"
+#: sequencer.c:1106
+#, c-format
+msgid "could not create sequencer directory '%s'"
+msgstr "не удалось создать каталог для указателя следования коммитов «%s»"
 
-#: wt-status.c:276
-msgid "copied:"
-msgstr "скопировано:"
+#: sequencer.c:1120
+msgid "could not lock HEAD"
+msgstr "не удалось заблокировать HEAD"
 
-#: wt-status.c:278
-msgid "deleted:"
-msgstr "удалено:"
+#: sequencer.c:1151 sequencer.c:1289
+msgid "no cherry-pick or revert in progress"
+msgstr "копирование или обращение изменений коммита уже выполняются"
 
-#: wt-status.c:280
-msgid "modified:"
-msgstr "изменено:"
+#: sequencer.c:1153
+msgid "cannot resolve HEAD"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ð¿Ñ\80еделиÑ\82Ñ\8c HEAD"
 
-#: wt-status.c:282
-msgid "renamed:"
-msgstr "пеÑ\80еименовано:"
+#: sequencer.c:1155 sequencer.c:1189
+msgid "cannot abort from a branch yet to be born"
+msgstr "нелÑ\8cзÑ\8f Ð¾Ñ\82мениÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ñ\81 Ð²ÐµÑ\82ки, ÐºÐ¾Ñ\82оÑ\80аÑ\8f ÐµÑ\89е Ð½Ðµ Ñ\81оздана"
 
-#: wt-status.c:284
-msgid "typechange:"
-msgstr "изменен тип:"
+#: sequencer.c:1175 builtin/grep.c:578
+#, c-format
+msgid "cannot open '%s'"
+msgstr "не удалось открыть «%s»"
 
-#: wt-status.c:286
-msgid "unknown:"
-msgstr "неизвестно:"
+#: sequencer.c:1177
+#, c-format
+msgid "cannot read '%s': %s"
+msgstr "не удалось прочитать «%s»: %s"
 
-#: wt-status.c:288
-msgid "unmerged:"
-msgstr "не слитые:"
+#: sequencer.c:1178
+msgid "unexpected end of file"
+msgstr "неожиданный конец файла"
 
-#: wt-status.c:370
-msgid "new commits, "
-msgstr "новые коммиты, "
+#: sequencer.c:1184
+#, c-format
+msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
+msgstr "сохраненный файл с HEAD перед копированием коммита «%s» поврежден"
 
-#: wt-status.c:372
-msgid "modified content, "
-msgstr "изменено содержимое, "
+#: sequencer.c:1354
+#, c-format
+msgid "%s: can't cherry-pick a %s"
+msgstr "%s: не удалось скопировать коммит %s"
 
-#: wt-status.c:374
-msgid "untracked content, "
-msgstr "неотслеживаемое содержимое, "
+#: sequencer.c:1358
+#, c-format
+msgid "%s: bad revision"
+msgstr "%s: плохая редакция"
 
-#: wt-status.c:756
-msgid "Submodules changed but not updated:"
-msgstr "Ð\98змененнÑ\8bе, Ð½Ð¾ Ð½Ðµ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ\8bе Ð¿Ð¾Ð´Ð¼Ð¾Ð´Ñ\83ли:"
+#: sequencer.c:1391
+msgid "can't revert as initial commit"
+msgstr "нелÑ\8cзÑ\8f Ð²Ð¾Ð·Ð²Ñ\80аÑ\82иÑ\82Ñ\8c Ð¸Ð·Ð½Ð°Ñ\87алÑ\8cнÑ\8bй ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82"
 
-#: wt-status.c:758
-msgid "Submodule changes to be committed:"
-msgstr "Изменения в подмодулях, которые будут закоммичены:"
+#: setup.c:160
+#, c-format
+msgid ""
+"%s: no such path in the working tree.\n"
+"Use 'git <command> -- <path>...' to specify paths that do not exist locally."
+msgstr "%s: нет такого пути в рабочем каталоге.\nИспользуйте «git <команда> -- <путь>…» для указания путей, которые не существуют локально."
 
-#: wt-status.c:839
+#: setup.c:173
+#, c-format
 msgid ""
-"Do not touch the line above.\n"
-"Everything below will be removed."
-msgstr "Не трогайте строку выше этой.\nВсё, что ниже — будет удалено."
+"ambiguous argument '%s': unknown revision or path not in the working tree.\n"
+"Use '--' to separate paths from revisions, like this:\n"
+"'git <command> [<revision>...] -- [<file>...]'"
+msgstr "неоднозначный аргумент «%s»: неизвестная редакция или не путь в рабочем каталоге.\nИспользуйте «--» для отделения путей от редакций, вот так:\n«git <команда> [<редакция>…] -- [<файл>…]»"
 
-#: wt-status.c:950
-msgid "You have unmerged paths."
-msgstr "У вас есть не слитые пути."
+#: setup.c:223
+#, c-format
+msgid ""
+"ambiguous argument '%s': both revision and filename\n"
+"Use '--' to separate paths from revisions, like this:\n"
+"'git <command> [<revision>...] -- [<file>...]'"
+msgstr "неоднозначный аргумент «%s»: является одновременно и редакцией и именем файла.\nИспользуйте «--» для отделения путей от редакций, вот так:\n«git <команда> [<редакция>…] -- [<файл>…]»"
 
-#: wt-status.c:953
-msgid "  (fix conflicts and run \"git commit\")"
-msgstr "  (разрешите конфликты, затем запустите «git commit»)"
+#: setup.c:468
+#, c-format
+msgid "Expected git repo version <= %d, found %d"
+msgstr "Ожидаемая версия git репозитория <= %d, а обнаружена %d"
 
-#: wt-status.c:955
-msgid "  (use \"git merge --abort\" to abort the merge)"
-msgstr "  (используйте «git merge --abort», чтобы остановить операцию слияния)"
+#: setup.c:476
+msgid "unknown repository extensions found:"
+msgstr "обнаружены неизвестные расширения репозитория:"
 
-#: wt-status.c:960
-msgid "All conflicts fixed but you are still merging."
-msgstr "Все конфликты исправлены, но вы все еще в процессе слияния."
+#: setup.c:762
+#, c-format
+msgid "Not a git repository (or any of the parent directories): %s"
+msgstr "Не найден git репозитоий (или один из его каталогов): %s"
 
-#: wt-status.c:963
-msgid "  (use \"git commit\" to conclude merge)"
-msgstr "  (используйте «git commit», чтобы завершить слияние)"
+#: setup.c:764 setup.c:915 builtin/index-pack.c:1641
+msgid "Cannot come back to cwd"
+msgstr "Не удалось вернуться в текущий рабочий каталог"
 
-#: wt-status.c:973
-msgid "You are in the middle of an am session."
-msgstr "Ð\92Ñ\8b Ð² Ð¿Ñ\80оÑ\86еÑ\81Ñ\81е Ñ\81еÑ\81Ñ\81ии am."
+#: setup.c:845
+msgid "Unable to read current working directory"
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Ñ\82екÑ\83Ñ\89ий Ñ\80абоÑ\87ий ÐºÐ°Ñ\82алог"
 
-#: wt-status.c:976
-msgid "The current patch is empty."
-msgstr "Текущий патч пустой."
+#: setup.c:920
+#, c-format
+msgid ""
+"Not a git repository (or any parent up to mount point %s)\n"
+"Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)."
+msgstr "Не найден git репозитоий (или один из его каталогов вплоть до точки монтирования %s)\nОстанавливаю поиск на границе файловой системы (так как GIT_DISCOVERY_ACROSS_FILESYSTEM не установлен)."
 
-#: wt-status.c:980
-msgid "  (fix conflicts and then run \"git am --continue\")"
-msgstr "  (разрешите конфликты, затем запустите «git am --continue»)"
+#: setup.c:927
+#, c-format
+msgid "Cannot change to '%s/..'"
+msgstr "Перейти в «%s/..»"
 
-#: wt-status.c:982
-msgid "  (use \"git am --skip\" to skip this patch)"
-msgstr "  (используйте «git am --skip», чтобы пропустить этот патч)"
+#: setup.c:989
+#, c-format
+msgid ""
+"Problem with core.sharedRepository filemode value (0%.3o).\n"
+"The owner of files must always have read and write permissions."
+msgstr "Проблема со значением режима доступа к файлу core.sharedRepository (0%.3o).\nВладелец файлов должен всегда иметь права на чтение и на запись."
 
-#: wt-status.c:984
-msgid "  (use \"git am --abort\" to restore the original branch)"
-msgstr "  (используйте «git am --abort», чтобы восстановить оригинальную ветку)"
+#: sha1_file.c:473
+#, c-format
+msgid "path '%s' does not exist"
+msgstr "путь «%s» не существует"
 
-#: wt-status.c:1109
-msgid "No commands done."
-msgstr "Команды не выполнены."
+#: sha1_file.c:499
+#, c-format
+msgid "reference repository '%s' as a linked checkout is not supported yet."
+msgstr "ссылаемый репозиторий «%s» как связанное состояние, пока не поддерживается."
 
-#: wt-status.c:1112
+#: sha1_file.c:505
 #, c-format
-msgid "Last command done (%d command done):"
-msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Последняя команда выполнена (%d команда выполнена):"
-msgstr[1] "Последняя команда выполнена (%d команды выполнено):"
-msgstr[2] "Последняя команда выполнена (%d команд выполнено):"
-msgstr[3] "Последняя команда выполнена (%d команд выполнено):"
+msgid "reference repository '%s' is not a local repository."
+msgstr "ссылаемый репозиторий «%s» не является локальным."
 
-#: wt-status.c:1123
+#: sha1_file.c:511
 #, c-format
-msgid "  (see more in file %s)"
-msgstr "  (смотрите дополнительно в файле %s)"
+msgid "reference repository '%s' is shallow"
+msgstr "ссылаемый репозиторий «%s» является частичным"
 
-#: wt-status.c:1128
-msgid "No commands remaining."
-msgstr "Команд больше не осталось."
+#: sha1_file.c:519
+#, c-format
+msgid "reference repository '%s' is grafted"
+msgstr "ссылаемый репозиторий «%s» является сращенным"
+
+#: sha1_file.c:1159
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "сдвиг до конца файла пакета (возможно, повреждён файл .idx?)"
 
-#: wt-status.c:1131
+#: sha1_file.c:2592
 #, c-format
-msgid "Next command to do (%d remaining command):"
-msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Следующая команда для выполнения (%d команда осталась):"
-msgstr[1] "Следующая команда для выполнения (%d команды осталось):"
-msgstr[2] "Следующая команда для выполнения (%d команд осталось):"
-msgstr[3] "Следующая команда для выполнения (%d команд осталось):"
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "сдвиг до начала индекса пакета для %s (повреждён индекс?)"
 
-#: wt-status.c:1139
-msgid "  (use \"git rebase --edit-todo\" to view and edit)"
-msgstr "  (используйте «git rebase --edit-todo», чтобы просмотреть и изменить)"
+#: sha1_file.c:2596
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "сдвиг за пределами индекса пакета для %s (обрезан индекс?)"
 
-#: wt-status.c:1152
+#: sha1_name.c:407
 #, c-format
-msgid "You are currently rebasing branch '%s' on '%s'."
-msgstr "Вы сейчас перемещаете ветку «%s» над «%s»."
+msgid "short SHA1 %s is ambiguous"
+msgstr "сокращённый SHA1 идентификатор %s неоднозначен"
 
-#: wt-status.c:1157
-msgid "You are currently rebasing."
-msgstr "Вы сейчас перемещаете ветку."
+#: sha1_name.c:418
+msgid "The candidates are:"
+msgstr "Возможно, вы имели в виду:"
 
-#: wt-status.c:1171
-msgid "  (fix conflicts and then run \"git rebase --continue\")"
-msgstr "  (разрешите конфликты, затем запустите «git rebase --continue»)"
+#: sha1_name.c:578
+msgid ""
+"Git normally never creates a ref that ends with 40 hex characters\n"
+"because it will be ignored when you just specify 40-hex. These refs\n"
+"may be created by mistake. For example,\n"
+"\n"
+"  git checkout -b $br $(git rev-parse ...)\n"
+"\n"
+"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n"
+"examine these refs and maybe delete them. Turn this message off by\n"
+"running \"git config advice.objectNameWarning false\""
+msgstr "Обычно Git не создает ссылки, оканчивающиеся на 40 шестнадцатеричных\nсимволов, потому, что они будут игнорироваться, когда вы просто\nукажете это 40-символьное шестнадцатеричное число. Такие ссылки\nмогли быть созданы по ошибке. Например, с помощью:\n\n  git checkout -b $br $(git rev-parse …)\n\n, если «$br» оказался пустым, то ссылка с 40-символьным\nшестнадцатеричным числом будет создана. Пожалуйста, просмотрите эти\nссылки и, возможно, удалите их. Вы можете отключить это сообщение\nзапустив «git config advice.objectNameWarning false»"
 
-#: wt-status.c:1173
-msgid "  (use \"git rebase --skip\" to skip this patch)"
-msgstr "  (используйте «git rebase --skip», чтобы пропустить этот патч)"
+#: submodule.c:64 submodule.c:98
+msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
+msgstr "Не удалось изменить не слитый .gitmodules, сначала разрешите конфликты"
 
-#: wt-status.c:1175
-msgid "  (use \"git rebase --abort\" to check out the original branch)"
-msgstr "  (используйте «git rebase --abort», чтобы перейти на оригинальную ветку)"
+#: submodule.c:68 submodule.c:102
+#, c-format
+msgid "Could not find section in .gitmodules where path=%s"
+msgstr "Не удалось найти раздел в .gitmodules, где путь равен %s"
 
-#: wt-status.c:1181
-msgid "  (all conflicts fixed: run \"git rebase --continue\")"
-msgstr "  (все конфликты разрешены: запустите «git rebase --continue»)"
+#: submodule.c:76
+#, c-format
+msgid "Could not update .gitmodules entry %s"
+msgstr " Не удалось обновить .gitmodules запись %s"
 
-#: wt-status.c:1185
+#: submodule.c:109
 #, c-format
-msgid ""
-"You are currently splitting a commit while rebasing branch '%s' on '%s'."
-msgstr "Вы сейчас разделяете коммит при перемещении ветки  «%s» над «%s»."
+msgid "Could not remove .gitmodules entry for %s"
+msgstr "Не удалось удалить запись в .gitmodules для %s"
 
-#: wt-status.c:1190
-msgid "You are currently splitting a commit during a rebase."
-msgstr "Вы сейчас разделяете коммит при перемещении ветки."
+#: submodule.c:120
+msgid "staging updated .gitmodules failed"
+msgstr "сбой индексирования обновленного .gitmodules"
 
-#: wt-status.c:1193
-msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
-msgstr "(Как только ваш рабочий каталог будет чистый, запустите «git rebase --continue»)"
+#: submodule.c:158
+msgid "negative values not allowed for submodule.fetchJobs"
+msgstr "нельзя использовать отприцательные значения для submodule.fetchJobs"
 
-#: wt-status.c:1197
+#: submodule-config.c:358
 #, c-format
-msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
-msgstr "Вы сейчас редактируете коммит при перемещении ветки  «%s» над «%s»."
-
-#: wt-status.c:1202
-msgid "You are currently editing a commit during a rebase."
-msgstr "Вы сейчас редактируете коммит при перемещении ветки."
+msgid "invalid value for %s"
+msgstr "неправильное значение %s"
 
-#: wt-status.c:1205
-msgid "  (use \"git commit --amend\" to amend the current commit)"
-msgstr "  (используйте «git commit --amend», чтобы исправить текущий коммит)"
+#: trailer.c:238
+#, c-format
+msgid "running trailer command '%s' failed"
+msgstr "сбой при запуске команды завершителя «%s»"
 
-#: wt-status.c:1207
-msgid "  (use \"git rebase --continue\" once you are satisfied with your changes)"
-msgstr "  (используйте «git rebase --continue», когда будете довольны изменениями)"
+#: trailer.c:471 trailer.c:475 trailer.c:479 trailer.c:533 trailer.c:537
+#: trailer.c:541
+#, c-format
+msgid "unknown value '%s' for key '%s'"
+msgstr "неизвестное значение «%s» для ключа «%s»"
 
-#: wt-status.c:1217
+#: trailer.c:523 trailer.c:528 builtin/remote.c:289
 #, c-format
-msgid "You are currently cherry-picking commit %s."
-msgstr "Ð\92Ñ\8b ÐºÐ¾Ð¿Ð¸Ñ\80Ñ\83еÑ\82е ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 %s."
+msgid "more than one %s"
+msgstr "болÑ\8cÑ\88е Ð¾Ð´Ð½Ð¾Ð³Ð¾ %s"
 
-#: wt-status.c:1222
-msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
-msgstr "  (разрешите конфликты, затем запустите «git cherry-pick --continue»)"
+#: trailer.c:672
+#, c-format
+msgid "empty trailer token in trailer '%.*s'"
+msgstr "пустая последняя лексема в завершителе «%.*s»"
 
-#: wt-status.c:1225
-msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
-msgstr "  (все конфликты разрешены: запустите «git cherry-pick --continue»)"
+#: trailer.c:695
+#, c-format
+msgid "could not read input file '%s'"
+msgstr "не удалось прочитать входной файл «%s»"
 
-#: wt-status.c:1227
-msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
-msgstr "  (используйте «git cherry-pick --abort», чтобы отменить копирования коммита)"
+#: trailer.c:698
+msgid "could not read from stdin"
+msgstr "не удалось прочитать из стандартного ввода"
 
-#: wt-status.c:1236
+#: trailer.c:929 builtin/am.c:44
 #, c-format
-msgid "You are currently reverting commit %s."
-msgstr "Ð\92Ñ\8b Ñ\81ейÑ\87аÑ\81 Ð¾Ð±Ñ\80аÑ\89аеÑ\82е Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а %s."
+msgid "could not stat %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð²Ñ\8bполниÑ\82Ñ\8c stat Ð´Ð»Ñ\8f %s"
 
-#: wt-status.c:1241
-msgid "  (fix conflicts and run \"git revert --continue\")"
-msgstr "  (разрешите конфликты, затем запустите «git revert --continue»)"
+#: trailer.c:931
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "файл %s не является обычным файлом"
 
-#: wt-status.c:1244
-msgid "  (all conflicts fixed: run \"git revert --continue\")"
-msgstr "  (все конфликты разрешены: запустите «git revert --continue»)"
+#: trailer.c:933
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "файл %s не доступен на запись пользователю"
 
-#: wt-status.c:1246
-msgid "  (use \"git revert --abort\" to cancel the revert operation)"
-msgstr "  (используйте «git revert --abort», чтобы отменить операцию обращения изменений коммита)"
+#: trailer.c:945
+msgid "could not open temporary file"
+msgstr "не удалось создать временный файл"
 
-#: wt-status.c:1257
+#: trailer.c:983
 #, c-format
-msgid "You are currently bisecting, started from branch '%s'."
-msgstr "Вы сейчас в процессе двоичного поиска, начатого с ветки «%s»."
-
-#: wt-status.c:1261
-msgid "You are currently bisecting."
-msgstr "Вы сейчас в процессе двоичного поиска."
+msgid "could not rename temporary file to %s"
+msgstr "не удалось переименовать временный файл в %s"
 
-#: wt-status.c:1264
-msgid "  (use \"git bisect reset\" to get back to the original branch)"
-msgstr "  (используйте «git bisect reset», чтобы вернуться на исходную ветку)"
+#: transport.c:62
+#, c-format
+msgid "Would set upstream of '%s' to '%s' of '%s'\n"
+msgstr "Будет установлен вышестоящий репозиторий для «%s» на «%s» с «%s»\n"
 
-#: wt-status.c:1464
-msgid "On branch "
-msgstr "На ветке "
+#: transport.c:151
+#, c-format
+msgid "transport: invalid depth option '%s'"
+msgstr "транспорт: неправильный параметр глубины «%s»"
 
-#: wt-status.c:1470
-msgid "interactive rebase in progress; onto "
-msgstr "интерактивное перемещение в процессе; над "
+#: transport.c:817
+#, c-format
+msgid ""
+"The following submodule paths contain changes that can\n"
+"not be found on any remote:\n"
+msgstr "Подмодули по указанным путям содержат изменения, которые не найдены ни на одном из внешних репозиториев:\n"
 
-#: wt-status.c:1472
-msgid "rebase in progress; onto "
-msgstr "перемещение в процессе; над "
+#: transport.c:821
+#, c-format
+msgid ""
+"\n"
+"Please try\n"
+"\n"
+"\tgit push --recurse-submodules=on-demand\n"
+"\n"
+"or cd to the path and use\n"
+"\n"
+"\tgit push\n"
+"\n"
+"to push them to a remote.\n"
+"\n"
+msgstr "\nПопробуйте выполнить\n\n\tgit push --recurse-submodules=on-demand\n\nили перейти в каталог с помощью команды cd и выполнить\n\n\tgit push\n\nдля их отправки на внешний репозиторий.\n"
 
-#: wt-status.c:1477
-msgid "HEAD detached at "
-msgstr "HEAD отделён на "
+#: transport.c:829
+msgid "Aborting."
+msgstr "Прерываю."
 
-#: wt-status.c:1479
-msgid "HEAD detached from "
-msgstr "HEAD отделён начиная с "
+#: transport-helper.c:1075
+#, c-format
+msgid "Could not read ref %s"
+msgstr "Не удалось прочитать ссылку %s"
 
-#: wt-status.c:1482
-msgid "Not currently on any branch."
-msgstr "Сейчас ни на одной из веток"
+#: tree-walk.c:31
+msgid "too-short tree object"
+msgstr "слишком  короткий объект дерева"
 
-#: wt-status.c:1500
-msgid "Initial commit"
-msgstr "Ð\9dаÑ\87алÑ\8cнÑ\8bй ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82"
+#: tree-walk.c:37
+msgid "malformed mode in tree entry"
+msgstr "непÑ\80авилÑ\8cнÑ\8bй Ñ\80ежим Ð² Ð·Ð°Ð¿Ð¸Ñ\81и Ð´ÐµÑ\80ева"
 
-#: wt-status.c:1514
-msgid "Untracked files"
-msgstr "Ð\9dеоÑ\82Ñ\81леживаемÑ\8bе Ñ\84айлÑ\8b"
+#: tree-walk.c:41
+msgid "empty filename in tree entry"
+msgstr "пÑ\83Ñ\81Ñ\82ое Ð¸Ð¼Ñ\8f Ñ\84айла Ð² Ð·Ð°Ð¿Ð¸Ñ\81и Ð´ÐµÑ\80ева"
 
-#: wt-status.c:1516
-msgid "Ignored files"
-msgstr "Игнорируемые файлы"
+#: tree-walk.c:113
+msgid "too-short tree file"
+msgstr "слишком  короткий файл дерева"
 
-#: wt-status.c:1520
+#: unpack-trees.c:64
 #, c-format
 msgid ""
-"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
-"may speed it up, but you have to be careful not to forget to add\n"
-"new files yourself (see 'git help status')."
-msgstr "%.2f секунды занял вывод списка неотслеживаемых файлов. «status -uno» возможно может ускорить это, но будьте внимательны, и не забудьте добавить новые файлы вручную (смотрите «git help status» для подробностей)."
+"Your local changes to the following files would be overwritten by checkout:\n"
+"%%sPlease commit your changes or stash them before you switch branches."
+msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при переключении на состояние:\n%%sСделайте коммит или спрячьте ваши изменения перед переключением веток."
 
-#: wt-status.c:1526
+#: unpack-trees.c:66
 #, c-format
-msgid "Untracked files not listed%s"
-msgstr "Неотслеживаемые файлы не показаны%s"
-
-#: wt-status.c:1528
-msgid " (use -u option to show untracked files)"
-msgstr "(используйте опцию «-u», чтобы показать неотслеживаемые файлы)"
-
-#: wt-status.c:1534
-msgid "No changes"
-msgstr "Нет изменений"
+msgid ""
+"Your local changes to the following files would be overwritten by checkout:\n"
+"%%s"
+msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при переключении на состояние:\n%%s"
 
-#: wt-status.c:1539
+#: unpack-trees.c:69
 #, c-format
-msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
-msgstr "нет изменений добавленных для коммита\n(используйте «git add» и/или «git commit -a»)\n"
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+"%%sPlease commit your changes or stash them before you merge."
+msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при слиянии:\n%%sСделайте коммит или спрячьте ваши изменения перед слиянием веток."
 
-#: wt-status.c:1542
+#: unpack-trees.c:71
 #, c-format
-msgid "no changes added to commit\n"
-msgstr "нет изменений добавленных для коммита\n"
+msgid ""
+"Your local changes to the following files would be overwritten by merge:\n"
+"%%s"
+msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при слиянии:\n%%s"
 
-#: wt-status.c:1545
+#: unpack-trees.c:74
 #, c-format
 msgid ""
-"nothing added to commit but untracked files present (use \"git add\" to "
-"track)\n"
-msgstr "ниÑ\87его Ð½Ðµ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾ Ð² ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82, Ð½Ð¾ ÐµÑ\81Ñ\82Ñ\8c Ð½ÐµÐ¾Ñ\82Ñ\81леживаемÑ\8bе Ñ\84айлÑ\8b (иÑ\81полÑ\8cзÑ\83йÑ\82е Â«git add», Ñ\87Ñ\82обÑ\8b Ð¾Ñ\82Ñ\81леживаÑ\82Ñ\8c Ð¸Ñ\85)\n"
+"Your local changes to the following files would be overwritten by %s:\n"
+"%%sPlease commit your changes or stash them before you %s."
+msgstr "Ð\92аÑ\88и Ð»Ð¾ÐºÐ°Ð»Ñ\8cнÑ\8bе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð² Ñ\83казаннÑ\8bÑ\85 Ñ\84айлаÑ\85 Ð±Ñ\83дÑ\83Ñ\82 Ð¿ÐµÑ\80езапиÑ\81анÑ\8b Ð¿Ñ\80и %s:\n%%sСделайÑ\82е ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 Ð¸Ð»Ð¸ Ñ\81пÑ\80Ñ\8fÑ\87Ñ\8cÑ\82е Ð²Ð°Ñ\88и Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð¿ÐµÑ\80ед %s."
 
-#: wt-status.c:1548
+#: unpack-trees.c:76
 #, c-format
-msgid "nothing added to commit but untracked files present\n"
-msgstr "ничего не добавлено в коммит, но есть неотслеживаемые файлы\n"
+msgid ""
+"Your local changes to the following files would be overwritten by %s:\n"
+"%%s"
+msgstr "Ваши локальные изменения в указанных файлах будут перезаписаны при %s:\n%%s"
 
-#: wt-status.c:1551
+#: unpack-trees.c:81
 #, c-format
-msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
-msgstr "нечего коммитить (создайте/скопируйте файлы, затем запустите «git add», чтобы отслеживать их)\n"
+msgid ""
+"Updating the following directories would lose untracked files in it:\n"
+"%s"
+msgstr "Обновление указанных каталогов приведет к потере неотслеживаемых файлов в них:\n%s"
 
-#: wt-status.c:1554 wt-status.c:1559
+#: unpack-trees.c:85
 #, c-format
-msgid "nothing to commit\n"
-msgstr "нечего коммитить\n"
+msgid ""
+"The following untracked working tree files would be removed by checkout:\n"
+"%%sPlease move or remove them before you switch branches."
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при переключении на состояние:\n%%sПереместите эти файлы или удалите их перед переключением веток."
 
-#: wt-status.c:1557
+#: unpack-trees.c:87
 #, c-format
-msgid "nothing to commit (use -u to show untracked files)\n"
-msgstr "нечего коммитить (используйте опцию «-u», чтобы показать неотслеживаемые файлы)\n"
+msgid ""
+"The following untracked working tree files would be removed by checkout:\n"
+"%%s"
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при переключении на состояние:\n%%s"
 
-#: wt-status.c:1561
+#: unpack-trees.c:90
 #, c-format
-msgid "nothing to commit, working tree clean\n"
-msgstr "нечего коммитить, нет изменений в рабочем каталоге\n"
-
-#: wt-status.c:1668
-msgid "Initial commit on "
-msgstr "Начальный коммит на "
-
-#: wt-status.c:1672
-msgid "HEAD (no branch)"
-msgstr "HEAD (нет ветки)"
-
-#: wt-status.c:1701
-msgid "gone"
-msgstr "исчез"
-
-#: wt-status.c:1703 wt-status.c:1711
-msgid "behind "
-msgstr "позади"
-
-#: wt-status.c:1706 wt-status.c:1709
-msgid "ahead "
-msgstr "впереди "
+msgid ""
+"The following untracked working tree files would be removed by merge:\n"
+"%%sPlease move or remove them before you merge."
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при слиянии:\n%%sПереместите эти файлы или удалите их перед переключением веток."
 
-#: compat/precompose_utf8.c:57 builtin/clone.c:415
+#: unpack-trees.c:92
 #, c-format
-msgid "failed to unlink '%s'"
-msgstr "сбой отсоединения «%s»"
-
-#: builtin/add.c:22
-msgid "git add [<options>] [--] <pathspec>..."
-msgstr "git add [<опции>] [--] <спецификация-пути>…"
+msgid ""
+"The following untracked working tree files would be removed by merge:\n"
+"%%s"
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при слиянии:\n%%s"
 
-#: builtin/add.c:65
+#: unpack-trees.c:95
 #, c-format
-msgid "unexpected diff status %c"
-msgstr "неожиданный статус различий %c"
-
-#: builtin/add.c:71 builtin/commit.c:281
-msgid "updating files failed"
-msgstr "сбой при обновлении файлов"
+msgid ""
+"The following untracked working tree files would be removed by %s:\n"
+"%%sPlease move or remove them before you %s."
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при %s:\n%%sПереместите эти файлы или удалите их перед %s."
 
-#: builtin/add.c:81
+#: unpack-trees.c:97
 #, c-format
-msgid "remove '%s'\n"
-msgstr "удалить «%s»\n"
-
-#: builtin/add.c:136
-msgid "Unstaged changes after refreshing the index:"
-msgstr "Непроиндексированные изменения после обновления индекса:"
-
-#: builtin/add.c:196 builtin/rev-parse.c:811
-msgid "Could not read the index"
-msgstr "Не удалось прочитать индекс"
+msgid ""
+"The following untracked working tree files would be removed by %s:\n"
+"%%s"
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут удалены при %s:\n%%s"
 
-#: builtin/add.c:207
+#: unpack-trees.c:102
 #, c-format
-msgid "Could not open '%s' for writing."
-msgstr "Не удалось открыть «%s» для записи."
-
-#: builtin/add.c:211
-msgid "Could not write patch"
-msgstr "Не удалось записать патч"
-
-#: builtin/add.c:214
-msgid "editing patch failed"
-msgstr "сбой при редактировании патча"
+msgid ""
+"The following untracked working tree files would be overwritten by checkout:\n"
+"%%sPlease move or remove them before you switch branches."
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при переключении на состояние:\n%%sПереместите эти файлы или удалите их перед переключением веток."
 
-#: builtin/add.c:217
+#: unpack-trees.c:104
 #, c-format
-msgid "Could not stat '%s'"
-msgstr "Не удалось выполнить stat для «%s»"
-
-#: builtin/add.c:219
-msgid "Empty patch. Aborted."
-msgstr "Пустой патч. Операция прервана."
+msgid ""
+"The following untracked working tree files would be overwritten by checkout:\n"
+"%%s"
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при переключении на состояние:\n%%s"
 
-#: builtin/add.c:224
+#: unpack-trees.c:107
 #, c-format
-msgid "Could not apply '%s'"
-msgstr "Не удалось применить «%s»"
+msgid ""
+"The following untracked working tree files would be overwritten by merge:\n"
+"%%sPlease move or remove them before you merge."
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при слиянии:\n%%sПереместите эти файлы или удалите их перед переключением веток."
 
-#: builtin/add.c:234
-msgid "The following paths are ignored by one of your .gitignore files:\n"
-msgstr "Следующие пути игнорируются одним из ваших файлов .gitignore:\n"
+#: unpack-trees.c:109
+#, c-format
+msgid ""
+"The following untracked working tree files would be overwritten by merge:\n"
+"%%s"
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при слиянии:\n%%s"
 
-#: builtin/add.c:253 builtin/clean.c:870 builtin/fetch.c:113 builtin/mv.c:111
-#: builtin/prune-packed.c:55 builtin/pull.c:197 builtin/push.c:521
-#: builtin/remote.c:1327 builtin/rm.c:268 builtin/send-pack.c:162
-msgid "dry run"
-msgstr "пробный запуск"
+#: unpack-trees.c:112
+#, c-format
+msgid ""
+"The following untracked working tree files would be overwritten by %s:\n"
+"%%sPlease move or remove them before you %s."
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при %s:\n%%sПереместите эти файлы или удалите их перед %s."
 
-#: builtin/add.c:254 builtin/apply.c:4854 builtin/check-ignore.c:19
-#: builtin/commit.c:1334 builtin/count-objects.c:85 builtin/fsck.c:593
-#: builtin/log.c:1852 builtin/mv.c:110 builtin/read-tree.c:114
-msgid "be verbose"
-msgstr "быть многословнее"
+#: unpack-trees.c:114
+#, c-format
+msgid ""
+"The following untracked working tree files would be overwritten by %s:\n"
+"%%s"
+msgstr "Указанные неотслеживаемые файлы в рабочем каталоге будут перезаписаны при %s:\n%%s"
 
-#: builtin/add.c:256
-msgid "interactive picking"
-msgstr "интерактивный выбор"
+#: unpack-trees.c:121
+#, c-format
+msgid "Entry '%s' overlaps with '%s'.  Cannot bind."
+msgstr "Запись «%s» частично совпадает с «%s».  Не удалось назначить соответствие."
 
-#: builtin/add.c:257 builtin/checkout.c:1157 builtin/reset.c:286
-msgid "select hunks interactively"
-msgstr "интерактивный выбор блоков"
+#: unpack-trees.c:124
+#, c-format
+msgid ""
+"Cannot update sparse checkout: the following entries are not up-to-date:\n"
+"%s"
+msgstr "Не удалось обновить частичное состояние: следующие элементы не последней версии:\n%s"
 
-#: builtin/add.c:258
-msgid "edit current diff and apply"
-msgstr "отредактировать текущий файл различий и применить его"
+#: unpack-trees.c:126
+#, c-format
+msgid ""
+"The following working tree files would be overwritten by sparse checkout update:\n"
+"%s"
+msgstr "Указанные файлы из рабочего каталога будут перезаписаны при обновлении частичного состояния:\n%s"
 
-#: builtin/add.c:259
-msgid "allow adding otherwise ignored files"
-msgstr "разрешить добавление игнорируемых иначе файлов"
+#: unpack-trees.c:128
+#, c-format
+msgid ""
+"The following working tree files would be removed by sparse checkout update:\n"
+"%s"
+msgstr "Указанные файлы из рабочего каталога будут удалены при обновлении частичного состояния:\n%s"
 
-#: builtin/add.c:260
-msgid "update tracked files"
-msgstr "обновить отслеживаемые файлы"
+#: unpack-trees.c:205
+#, c-format
+msgid "Aborting\n"
+msgstr "Прерываю\n"
 
-#: builtin/add.c:261
-msgid "record only the fact that the path will be added later"
-msgstr "запиÑ\81аÑ\82Ñ\8c Ñ\82олÑ\8cко Ñ\84акÑ\82, Ñ\87Ñ\82о Ð¿Ñ\83Ñ\82Ñ\8c Ð±Ñ\83деÑ\82 Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ Ð¿Ð¾Ð·Ð¶Ðµ"
+#: unpack-trees.c:237
+msgid "Checking out files"
+msgstr "РаÑ\81паковка Ñ\84айлов"
 
-#: builtin/add.c:262
-msgid "add changes from all tracked and untracked files"
-msgstr "добавиÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð¸Ð· Ð²Ñ\81еÑ\85 Ð¾Ñ\82Ñ\81леживаемÑ\8bÑ\85 Ð¸ Ð½ÐµÐ¾Ñ\82Ñ\81леживаемÑ\8bÑ\85 Ñ\84айлов"
+#: urlmatch.c:120
+msgid "invalid URL scheme name or missing '://' suffix"
+msgstr "Ð\9dепÑ\80авилÑ\8cнаÑ\8f Ð¸Ð¼Ñ\8f URL Ñ\81Ñ\85емÑ\8b Ð¸Ð»Ð¸ Ð¿Ñ\80опÑ\83Ñ\89ен Ñ\81Ñ\83Ñ\84Ñ\84икÑ\81 Â«://»"
 
-#: builtin/add.c:265
-msgid "ignore paths removed in the working tree (same as --no-all)"
-msgstr "игнорировать пути удаленные из рабочего каталога (тоже, что и --no-all)"
+#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#, c-format
+msgid "invalid %XX escape sequence"
+msgstr "неправильная управляющая последовательность %XX"
 
-#: builtin/add.c:267
-msgid "don't add, only refresh the index"
-msgstr "не Ð´Ð¾Ð±Ð°Ð²Ð»Ñ\8fÑ\82Ñ\8c, Ñ\82олÑ\8cко Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ\82Ñ\8c Ð¸Ð½Ð´ÐµÐºÑ\81"
+#: urlmatch.c:172
+msgid "missing host and scheme is not 'file:'"
+msgstr "пÑ\80опÑ\83Ñ\89ено Ð¸Ð¼Ñ\8f Ñ\81еÑ\80веÑ\80а Ð¸ Ñ\81Ñ\85ема Ð´Ð¾Ñ\81Ñ\82Ñ\83па Ð½Ðµ Â«file:»"
 
-#: builtin/add.c:268
-msgid "just skip files which cannot be added because of errors"
-msgstr "пропускать файлы, которые не могут быть добавлены из-за ошибок"
+#: urlmatch.c:189
+msgid "a 'file:' URL may not have a port number"
+msgstr "URL со схемой «file:» не может содержать номер порта"
 
-#: builtin/add.c:269
-msgid "check if - even missing - files are ignored in dry run"
-msgstr "удостовериться, что даже недостающие файлы будут проигнорированы при  пробном запуске"
+#: urlmatch.c:199
+msgid "invalid characters in host name"
+msgstr "неправильные символы в имени сервера"
 
-#: builtin/add.c:270 builtin/update-index.c:958
-msgid "(+/-)x"
-msgstr "(+/-)x"
+#: urlmatch.c:244 urlmatch.c:255
+msgid "invalid port number"
+msgstr "неправильный номер порта"
 
-#: builtin/add.c:270 builtin/update-index.c:959
-msgid "override the executable bit of the listed files"
-msgstr "пеÑ\80еопÑ\80еделиÑ\82Ñ\8c Ð±Ð¸Ñ\82 Ð²Ñ\8bполнениÑ\8f Ð½Ð° Ñ\83казаннÑ\8bÑ\85 Ñ\84айлаÑ\85"
+#: urlmatch.c:322
+msgid "invalid '..' path segment"
+msgstr "непÑ\80авилÑ\8cнаÑ\8f Ñ\87аÑ\81Ñ\82Ñ\8c Ð¿Ñ\83Ñ\82и Â«..»"
 
-#: builtin/add.c:292
+#: worktree.c:282
 #, c-format
-msgid "Use -f if you really want to add them.\n"
-msgstr "Используйте -f, если вы действительно хотите добавить их.\n"
-
-#: builtin/add.c:300
-msgid "adding files failed"
-msgstr "ошибка при добавлении файлов"
-
-#: builtin/add.c:336
-msgid "-A and -u are mutually incompatible"
-msgstr "-A и -u нельзя использовать одновременно"
+msgid "failed to read '%s'"
+msgstr "не удалось прочитать «%s»"
 
-#: builtin/add.c:343
-msgid "Option --ignore-missing can only be used together with --dry-run"
-msgstr "Опция --ignore-missing может использоваться только вместе с --dry-run"
+#: wrapper.c:222 wrapper.c:392
+#, c-format
+msgid "could not open '%s' for reading and writing"
+msgstr "не удалось открыть «%s» для чтения и записи"
 
-#: builtin/add.c:352
+#: wrapper.c:224 wrapper.c:394 builtin/am.c:766
 #, c-format
-msgid "--chmod param '%s' must be either -x or +x"
-msgstr "паÑ\80амеÑ\82Ñ\80 --chmod Â«%s» Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ\8bÑ\82Ñ\8c -x Ð¸Ð»Ð¸ +x"
+msgid "could not open '%s' for writing"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Â«%s» Ð´Ð»Ñ\8f Ð·Ð°Ð¿Ð¸Ñ\81и"
 
-#: builtin/add.c:367
+#: wrapper.c:226 wrapper.c:396 builtin/am.c:320 builtin/am.c:759
+#: builtin/am.c:847 builtin/commit.c:1705 builtin/merge.c:1029
+#: builtin/pull.c:341
 #, c-format
-msgid "Nothing specified, nothing added.\n"
-msgstr "Ð\9dиÑ\87его Ð½Ðµ Ñ\83казано, Ð½Ð¸Ñ\87его Ð½Ðµ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾.\n"
+msgid "could not open '%s' for reading"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Â«%s» Ð´Ð»Ñ\8f Ñ\87Ñ\82ениÑ\8f"
 
-#: builtin/add.c:368
+#: wrapper.c:605 wrapper.c:626
 #, c-format
-msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr "Возможно, вы имели в виду «git add .»?\n"
+msgid "unable to access '%s'"
+msgstr "«%s» недоступно"
 
-#: builtin/add.c:373 builtin/check-ignore.c:172 builtin/checkout.c:279
-#: builtin/checkout.c:473 builtin/clean.c:914 builtin/commit.c:340
-#: builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:240
-msgid "index file corrupt"
-msgstr "файл индекса поврежден"
+#: wrapper.c:634
+msgid "unable to get current working directory"
+msgstr "не удалось получить текущий рабочий каталог"
 
-#: builtin/add.c:454 builtin/apply.c:4784 builtin/mv.c:286 builtin/rm.c:431
-msgid "Unable to write new index file"
-msgstr "Не удалось записать новый файл индекса"
+#: wrapper.c:658
+#, c-format
+msgid "could not write to %s"
+msgstr "не удалось записать в %s"
 
-#: builtin/am.c:257 builtin/commit.c:750 builtin/merge.c:1032
+#: wrapper.c:660
 #, c-format
-msgid "could not read '%s'"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿Ñ\80оÑ\87иÑ\82аÑ\82Ñ\8c Â«%s»"
+msgid "could not close %s"
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð·Ð°ÐºÑ\80Ñ\8bÑ\82Ñ\8c %s"
 
-#: builtin/am.c:426
-msgid "could not parse author script"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ñ\80азобÑ\80аÑ\82Ñ\8c Ñ\81Ñ\86енаÑ\80ий Ð°Ð²Ñ\82оÑ\80Ñ\81Ñ\82ва"
+#: wt-status.c:151
+msgid "Unmerged paths:"
+msgstr "Ð\9dе Ñ\81лиÑ\82Ñ\8bе Ð¿Ñ\83Ñ\82и:"
 
-#: builtin/am.c:503
+#: wt-status.c:178 wt-status.c:205
 #, c-format
-msgid "'%s' was deleted by the applypatch-msg hook"
-msgstr "«%s» был удален перехватчиком applypatch-msg"
+msgid "  (use \"git reset %s <file>...\" to unstage)"
+msgstr "  (используйте «git reset %s <файл>…», чтобы убрать из индекса)"
 
-#: builtin/am.c:544 builtin/notes.c:301
-#, c-format
-msgid "Malformed input line: '%s'."
-msgstr "Неправильная строка ввода: «%s»."
+#: wt-status.c:180 wt-status.c:207
+msgid "  (use \"git rm --cached <file>...\" to unstage)"
+msgstr "  (используйте «git rm --cached <файл>…», чтобы убрать из индекса)"
 
-#: builtin/am.c:581 builtin/notes.c:316
-#, c-format
-msgid "Failed to copy notes from '%s' to '%s'"
-msgstr "Не удалось скопировать заметку из «%s» в «%s»"
+#: wt-status.c:184
+msgid "  (use \"git add <file>...\" to mark resolution)"
+msgstr "  (используйте «git add <файл>…», чтобы пометить разрешение конфликта)"
 
-#: builtin/am.c:607
-msgid "fseek failed"
-msgstr "сбой при выполнении fseek"
+#: wt-status.c:186 wt-status.c:190
+msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
+msgstr "  (используйте «git add/rm <файл>…», чтобы пометить выбранное разрешение конфликта)"
 
-#: builtin/am.c:787
-#, c-format
-msgid "could not parse patch '%s'"
-msgstr "не удалось разобрать патч «%s»"
+#: wt-status.c:188
+msgid "  (use \"git rm <file>...\" to mark resolution)"
+msgstr "  (используйте «git rm <файл>…», чтобы пометить разрешение конфликта)"
 
-#: builtin/am.c:852
-msgid "Only one StGIT patch series can be applied at once"
-msgstr "ТолÑ\8cко Ñ\81еÑ\80иÑ\8f Ð¿Ð°Ñ\82Ñ\87ей StGIT Ð¼Ð¾Ð¶ÐµÑ\82 Ð±Ñ\8bÑ\82Ñ\8c Ð¿Ñ\80именена Ð·Ð° Ñ\80аз"
+#: wt-status.c:199 wt-status.c:945
+msgid "Changes to be committed:"
+msgstr "Ð\98зменениÑ\8f, ÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ð±Ñ\83дÑ\83Ñ\82 Ð²ÐºÐ»Ñ\8eÑ\87енÑ\8b Ð² ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82:"
 
-#: builtin/am.c:899
-msgid "invalid timestamp"
-msgstr "недопÑ\83Ñ\81Ñ\82имаÑ\8f Ð¼ÐµÑ\82ка Ð´Ð°Ñ\82Ñ\8b/вÑ\80емени"
+#: wt-status.c:217 wt-status.c:954
+msgid "Changes not staged for commit:"
+msgstr "Ð\98зменениÑ\8f, ÐºÐ¾Ñ\82оÑ\80Ñ\8bе Ð½Ðµ Ð² Ð¸Ð½Ð´ÐµÐºÑ\81е Ð´Ð»Ñ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а:"
 
-#: builtin/am.c:902 builtin/am.c:910
-msgid "invalid Date line"
-msgstr "недопустимая строка даты"
+#: wt-status.c:221
+msgid "  (use \"git add <file>...\" to update what will be committed)"
+msgstr "  (используйте «git add <файл>…», чтобы добавить файл в индекс)"
 
-#: builtin/am.c:907
-msgid "invalid timezone offset"
-msgstr "недопустимое смещение часового пояса"
+#: wt-status.c:223
+msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
+msgstr "  (используйте «git add/rm <файл>…», чтобы добавить или удалить файл из индекса)"
 
-#: builtin/am.c:996
-msgid "Patch format detection failed."
-msgstr "Сбой определения формата патча."
+#: wt-status.c:224
+msgid ""
+"  (use \"git checkout -- <file>...\" to discard changes in working "
+"directory)"
+msgstr "  (используйте «git checkout -- <файл>…», чтобы отменить изменения\n   в рабочем каталоге)"
+
+#: wt-status.c:226
+msgid "  (commit or discard the untracked or modified content in submodules)"
+msgstr "  (сделайте коммит или отмените изменения в неотслеживаемом или измененном содержимом в подмодулях)"
 
-#: builtin/am.c:1001 builtin/clone.c:380
+#: wt-status.c:238
 #, c-format
-msgid "failed to create directory '%s'"
-msgstr "не удалось создать каталог «%s»"
+msgid "  (use \"git %s <file>...\" to include in what will be committed)"
+msgstr "  (используйте «git %s <файл>…», чтобы добавить в то, что будет включено в коммит)"
 
-#: builtin/am.c:1005
-msgid "Failed to split patches."
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ñ\80азделиÑ\82Ñ\8c Ð¿Ð°Ñ\82Ñ\87и Ð½Ð° Ñ\87аÑ\81Ñ\82и."
+#: wt-status.c:253
+msgid "both deleted:"
+msgstr "оба Ñ\83даленÑ\8b:"
 
-#: builtin/am.c:1137 builtin/commit.c:366
-msgid "unable to write index file"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð·Ð°Ð¿Ð¸Ñ\81аÑ\82Ñ\8c Ð¸Ð½Ð´ÐµÐºÑ\81"
+#: wt-status.c:255
+msgid "added by us:"
+msgstr "добавлено Ð½Ð°Ð¼Ð¸:"
 
-#: builtin/am.c:1188
-#, c-format
-msgid "When you have resolved this problem, run \"%s --continue\"."
-msgstr "Когда вы устраните эту проблему, запустите «%s --continue»."
+#: wt-status.c:257
+msgid "deleted by them:"
+msgstr "удалено ими:"
 
-#: builtin/am.c:1189
-#, c-format
-msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
-msgstr "Если вы хотите пропустить этот патч, то запустите «%s --skip»."
+#: wt-status.c:259
+msgid "added by them:"
+msgstr "добавлено ими:"
 
-#: builtin/am.c:1190
-#, c-format
-msgid "To restore the original branch and stop patching, run \"%s --abort\"."
-msgstr "Чтобы вернуться на предыдущую ветку и остановить применение изменений, запустите «%s --abort»."
+#: wt-status.c:261
+msgid "deleted by us:"
+msgstr "удалено нами:"
+
+#: wt-status.c:263
+msgid "both added:"
+msgstr "оба добавлены:"
+
+#: wt-status.c:265
+msgid "both modified:"
+msgstr "оба измены:"
+
+#: wt-status.c:275
+msgid "new file:"
+msgstr "новый файл:"
 
-#: builtin/am.c:1328
-msgid "Patch is empty. Was it split wrong?"
-msgstr "Патч пуст. Возможно, он был неправильно разделён?"
+#: wt-status.c:277
+msgid "copied:"
+msgstr "скопировано:"
 
-#: builtin/am.c:1402 builtin/log.c:1543
-#, c-format
-msgid "invalid ident line: %s"
-msgstr "неправильная строка идентификации: %s"
+#: wt-status.c:279
+msgid "deleted:"
+msgstr "удалено:"
 
-#: builtin/am.c:1429
-#, c-format
-msgid "unable to parse commit %s"
-msgstr "не удалось разобрать коммит %s"
+#: wt-status.c:281
+msgid "modified:"
+msgstr "изменено:"
 
-#: builtin/am.c:1602
-msgid "Repository lacks necessary blobs to fall back on 3-way merge."
-msgstr "Ð\92 Ñ\80епозиÑ\82оÑ\80ии Ð¾Ñ\82Ñ\81Ñ\83Ñ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\82 Ð´Ð²Ð¾Ð¸Ñ\87нÑ\8bе Ð¾Ð±Ñ\8aекÑ\82Ñ\8b, Ð½ÐµÐ¾Ð±Ñ\85одимÑ\8bе Ð´Ð»Ñ\8f Ð¾Ñ\82каÑ\82а Ðº Ñ\82Ñ\80еÑ\85Ñ\85одовомÑ\83 Ñ\81лиÑ\8fниÑ\8e."
+#: wt-status.c:283
+msgid "renamed:"
+msgstr "пеÑ\80еименовано:"
 
-#: builtin/am.c:1604
-msgid "Using index info to reconstruct a base tree..."
-msgstr "Ð\98Ñ\81полÑ\8cзÑ\83Ñ\8e Ð¸Ð½Ð´ÐµÐºÑ\81 Ð´Ð»Ñ\8f Ñ\80еконÑ\81Ñ\82Ñ\80Ñ\83кÑ\86ии Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ð´ÐµÑ\80еваâ\80¦"
+#: wt-status.c:285
+msgid "typechange:"
+msgstr "изменен Ñ\82ип:"
 
-#: builtin/am.c:1623
-msgid ""
-"Did you hand edit your patch?\n"
-"It does not apply to blobs recorded in its index."
-msgstr "Вы вручную изменяли патч?\nОн не накладывается без ошибок на двоичные объекты, записанные в его заголовке."
+#: wt-status.c:287
+msgid "unknown:"
+msgstr "неизвестно:"
 
-#: builtin/am.c:1629
-msgid "Falling back to patching base and 3-way merge..."
-msgstr "Ð\9eÑ\82каÑ\82 Ðº Ð¿Ñ\80именениÑ\8e Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ðº Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¼Ñ\83 ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82Ñ\83 Ñ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e Ñ\82Ñ\80еÑ\85Ñ\85одового Ñ\81лиÑ\8fниÑ\8fâ\80¦"
+#: wt-status.c:289
+msgid "unmerged:"
+msgstr "не Ñ\81лиÑ\82Ñ\8bе:"
 
-#: builtin/am.c:1654
-msgid "Failed to merge in the changes."
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ñ\81лиÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f."
+#: wt-status.c:371
+msgid "new commits, "
+msgstr "новÑ\8bе ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82Ñ\8b"
 
-#: builtin/am.c:1679 builtin/merge.c:628
-msgid "git write-tree failed to write a tree"
-msgstr "git write-tree не удалось записать дерево"
+#: wt-status.c:373
+msgid "modified content, "
+msgstr "изменено содержимое, "
 
-#: builtin/am.c:1686
-msgid "applying to an empty history"
-msgstr "пÑ\80именение Ðº Ð¿Ñ\83Ñ\81Ñ\82ой Ð¸Ñ\81Ñ\82оÑ\80ии"
+#: wt-status.c:375
+msgid "untracked content, "
+msgstr "неоÑ\82Ñ\81леживаемое Ñ\81одеÑ\80жимое, "
 
-#: builtin/am.c:1699 builtin/commit.c:1776 builtin/merge.c:798
-#: builtin/merge.c:823
-msgid "failed to write commit object"
-msgstr "сбой записи объекта коммита"
+#: wt-status.c:818
+msgid "Submodules changed but not updated:"
+msgstr "Измененные, но не обновленные подмодули:"
 
-#: builtin/am.c:1731 builtin/am.c:1735
-#, c-format
-msgid "cannot resume: %s does not exist."
-msgstr "нельзя продолжнить: %s не существует "
+#: wt-status.c:820
+msgid "Submodule changes to be committed:"
+msgstr "Изменения в подмодулях, которые будут закоммичены:"
 
-#: builtin/am.c:1751
-msgid "cannot be interactive without stdin connected to a terminal."
-msgstr "не удалось использовать интерактивное поведение, без stdin подключенного к терминалу."
+#: wt-status.c:901
+msgid ""
+"Do not touch the line above.\n"
+"Everything below will be removed."
+msgstr "Не трогайте строку выше этой.\nВсё, что ниже — будет удалено."
 
-#: builtin/am.c:1756
-msgid "Commit Body is:"
-msgstr "Тело ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а:"
+#: wt-status.c:1013
+msgid "You have unmerged paths."
+msgstr "У Ð²Ð°Ñ\81 ÐµÑ\81Ñ\82Ñ\8c Ð½Ðµ Ñ\81лиÑ\82Ñ\8bе Ð¿Ñ\83Ñ\82и."
 
-#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
-#. in your translation. The program will only accept English
-#. input at this point.
-#: builtin/am.c:1766
-msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
-msgstr "Применить? [y] - да/[n] - нет/[e] - редактировать/[v] - просмотреть патч/[a] - применить всё: "
+#: wt-status.c:1016
+msgid "  (fix conflicts and run \"git commit\")"
+msgstr "  (разрешите конфликты, затем запустите «git commit»)"
 
-#: builtin/am.c:1816
-#, c-format
-msgid "Dirty index: cannot apply patches (dirty: %s)"
-msgstr "Индекс не пустой: нельзя применять патчи (в индексе: %s)"
+#: wt-status.c:1018
+msgid "  (use \"git merge --abort\" to abort the merge)"
+msgstr "  (используйте «git merge --abort», чтобы остановить операцию слияния)"
 
-#: builtin/am.c:1853 builtin/am.c:1925
-#, c-format
-msgid "Applying: %.*s"
-msgstr "Применение: %.*s"
+#: wt-status.c:1023
+msgid "All conflicts fixed but you are still merging."
+msgstr "Все конфликты исправлены, но вы все еще в процессе слияния."
 
-#: builtin/am.c:1869
-msgid "No changes -- Patch already applied."
-msgstr "Нет изменений — Патч уже применен."
+#: wt-status.c:1026
+msgid "  (use \"git commit\" to conclude merge)"
+msgstr "  (используйте «git commit», чтобы завершить слияние)"
 
-#: builtin/am.c:1877
-#, c-format
-msgid "Patch failed at %s %.*s"
-msgstr "Ошибка применения изменений на %s %.*s"
+#: wt-status.c:1036
+msgid "You are in the middle of an am session."
+msgstr "Вы в процессе сессии am."
 
-#: builtin/am.c:1883
-#, c-format
-msgid "The copy of the patch that failed is found in: %s"
-msgstr "Копию изменений, которые не удалось применить, вы можете найти в: %s"
+#: wt-status.c:1039
+msgid "The current patch is empty."
+msgstr "Текущий патч пустой."
 
-#: builtin/am.c:1928
-msgid ""
-"No changes - did you forget to use 'git add'?\n"
-"If there is nothing left to stage, chances are that something else\n"
-"already introduced the same changes; you might want to skip this patch."
-msgstr "Нет изменений — возможно, вы забыли вызвать «git add»?\nЕсли ничего не осталось для индексации, то, скорее всего, что-то другое уже сделало те же изменения; возможно, вам следует пропустить этот патч."
+#: wt-status.c:1043
+msgid "  (fix conflicts and then run \"git am --continue\")"
+msgstr "  (разрешите конфликты, затем запустите «git am --continue»)"
 
-#: builtin/am.c:1935
-msgid ""
-"You still have unmerged paths in your index.\n"
-"Did you forget to use 'git add'?"
-msgstr "У вас все еще имеются не слитые пути в индексе.\nВозможно, вы забыли вызвать «git add»?"
+#: wt-status.c:1045
+msgid "  (use \"git am --skip\" to skip this patch)"
+msgstr "  (используйте «git am --skip», чтобы пропустить этот патч)"
 
-#: builtin/am.c:2043 builtin/am.c:2047 builtin/am.c:2059 builtin/reset.c:308
-#: builtin/reset.c:316
-#, c-format
-msgid "Could not parse object '%s'."
-msgstr "Не удалось разобрать объект «%s»."
+#: wt-status.c:1047
+msgid "  (use \"git am --abort\" to restore the original branch)"
+msgstr "  (используйте «git am --abort», чтобы восстановить оригинальную ветку)"
 
-#: builtin/am.c:2095
-msgid "failed to clean index"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\87иÑ\81Ñ\82иÑ\82Ñ\8c Ð¸Ð½Ð´ÐµÐºÑ\81"
+#: wt-status.c:1172
+msgid "No commands done."
+msgstr "Ð\9aомандÑ\8b Ð½Ðµ Ð²Ñ\8bполненÑ\8b."
 
-#: builtin/am.c:2129
-msgid ""
-"You seem to have moved HEAD since the last 'am' failure.\n"
-"Not rewinding to ORIG_HEAD"
-msgstr "Похоже, что вы переместили HEAD с момента последней ошибки выполнения «am».\nПеремотка на ORIG_HEAD не выполняется"
+#: wt-status.c:1175
+#, c-format
+msgid "Last command done (%d command done):"
+msgid_plural "Last commands done (%d commands done):"
+msgstr[0] "Последняя команда выполнена (%d команда выполнена):"
+msgstr[1] "Последняя команда выполнена (%d команды выполнено):"
+msgstr[2] "Последняя команда выполнена (%d команд выполнено):"
+msgstr[3] "Последняя команда выполнена (%d команд выполнено):"
 
-#: builtin/am.c:2192
+#: wt-status.c:1186
 #, c-format
-msgid "Invalid value for --patch-format: %s"
-msgstr "Неправильное значение для --patch-format: %s"
+msgid "  (see more in file %s)"
+msgstr "  (смотрите дополнительно в файле %s)"
 
-#: builtin/am.c:2225
-msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
-msgstr "git am [<опции>] [(<mbox>|<Maildir>)…]"
+#: wt-status.c:1191
+msgid "No commands remaining."
+msgstr "Команд больше не осталось."
 
-#: builtin/am.c:2226
-msgid "git am [<options>] (--continue | --skip | --abort)"
-msgstr "git am [<опции>] (--continue | --skip | --abort)"
+#: wt-status.c:1194
+#, c-format
+msgid "Next command to do (%d remaining command):"
+msgid_plural "Next commands to do (%d remaining commands):"
+msgstr[0] "Следующая команда для выполнения (%d команда осталась):"
+msgstr[1] "Следующая команда для выполнения (%d команды осталось):"
+msgstr[2] "Следующая команда для выполнения (%d команд осталось):"
+msgstr[3] "Следующая команда для выполнения (%d команд осталось):"
 
-#: builtin/am.c:2232
-msgid "run interactively"
-msgstr "запустить в интерактивном режиме"
+#: wt-status.c:1202
+msgid "  (use \"git rebase --edit-todo\" to view and edit)"
+msgstr "  (используйте «git rebase --edit-todo», чтобы просмотреть и изменить)"
 
-#: builtin/am.c:2234
-msgid "historical option -- no-op"
-msgstr "историческая опция — ничего не делает"
+#: wt-status.c:1215
+#, c-format
+msgid "You are currently rebasing branch '%s' on '%s'."
+msgstr "Вы сейчас перемещаете ветку «%s» над «%s»."
 
-#: builtin/am.c:2236
-msgid "allow fall back on 3way merging if needed"
-msgstr "разрешить откатиться к трехходовому слиянию, если нужно"
+#: wt-status.c:1220
+msgid "You are currently rebasing."
+msgstr "Вы сейчас перемещаете ветку."
 
-#: builtin/am.c:2237 builtin/init-db.c:481 builtin/prune-packed.c:57
-#: builtin/repack.c:172
-msgid "be quiet"
-msgstr "тихий режим"
+#: wt-status.c:1234
+msgid "  (fix conflicts and then run \"git rebase --continue\")"
+msgstr "  (разрешите конфликты, затем запустите «git rebase --continue»)"
 
-#: builtin/am.c:2239
-msgid "add a Signed-off-by line to the commit message"
-msgstr "добавить строку Signed-off-by к сообщению коммита"
+#: wt-status.c:1236
+msgid "  (use \"git rebase --skip\" to skip this patch)"
+msgstr "  (используйте «git rebase --skip», чтобы пропустить этот патч)"
 
-#: builtin/am.c:2242
-msgid "recode into utf8 (default)"
-msgstr "перекодировать в utf8 (по умолчанию)"
+#: wt-status.c:1238
+msgid "  (use \"git rebase --abort\" to check out the original branch)"
+msgstr "  (используйте «git rebase --abort», чтобы перейти на оригинальную ветку)"
 
-#: builtin/am.c:2244
-msgid "pass -k flag to git-mailinfo"
-msgstr "передать флаг -k в git-mailinfo"
+#: wt-status.c:1244
+msgid "  (all conflicts fixed: run \"git rebase --continue\")"
+msgstr "  (все конфликты разрешены: запустите «git rebase --continue»)"
 
-#: builtin/am.c:2246
-msgid "pass -b flag to git-mailinfo"
-msgstr "передать флаг -b в git-mailinfo"
+#: wt-status.c:1248
+#, c-format
+msgid ""
+"You are currently splitting a commit while rebasing branch '%s' on '%s'."
+msgstr "Вы сейчас разделяете коммит при перемещении ветки  «%s» над «%s»."
 
-#: builtin/am.c:2248
-msgid "pass -m flag to git-mailinfo"
-msgstr "пеÑ\80едаÑ\82Ñ\8c Ñ\84лаг -m Ð² git-mailinfo"
+#: wt-status.c:1253
+msgid "You are currently splitting a commit during a rebase."
+msgstr "Ð\92Ñ\8b Ñ\81ейÑ\87аÑ\81 Ñ\80азделÑ\8fеÑ\82е ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 Ð¿Ñ\80и Ð¿ÐµÑ\80емеÑ\89ении Ð²ÐµÑ\82ки."
 
-#: builtin/am.c:2250
-msgid "pass --keep-cr flag to git-mailsplit for mbox format"
-msgstr "передать флаг --keep-cr в git-mailsplit для формата mbox"
+#: wt-status.c:1256
+msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
+msgstr "(Как только ваш рабочий каталог будет чистый, запустите «git rebase --continue»)"
 
-#: builtin/am.c:2253
-msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
-msgstr "не передавать --keep-cr флаг в git-mailsplit вне зависимости от am.keepcr"
+#: wt-status.c:1260
+#, c-format
+msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
+msgstr "Вы сейчас редактируете коммит при перемещении ветки  «%s» над «%s»."
 
-#: builtin/am.c:2256
-msgid "strip everything before a scissors line"
-msgstr "обÑ\80езаÑ\82Ñ\8c Ð²Ñ\81е Ð´Ð¾ Ñ\81Ñ\82Ñ\80оки Ð¾Ð±Ñ\80езки"
+#: wt-status.c:1265
+msgid "You are currently editing a commit during a rebase."
+msgstr "Ð\92Ñ\8b Ñ\81ейÑ\87аÑ\81 Ñ\80едакÑ\82иÑ\80Ñ\83еÑ\82е ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82 Ð¿Ñ\80и Ð¿ÐµÑ\80емеÑ\89ении Ð²ÐµÑ\82ки."
 
-#: builtin/am.c:2257 builtin/apply.c:4837
-msgid "action"
-msgstr "действие"
+#: wt-status.c:1268
+msgid "  (use \"git commit --amend\" to amend the current commit)"
+msgstr "  (используйте «git commit --amend», чтобы исправить текущий коммит)"
 
-#: builtin/am.c:2258 builtin/am.c:2261 builtin/am.c:2264 builtin/am.c:2267
-#: builtin/am.c:2270 builtin/am.c:2273 builtin/am.c:2276 builtin/am.c:2279
-#: builtin/am.c:2285
-msgid "pass it through git-apply"
-msgstr "передать его в git-apply"
+#: wt-status.c:1270
+msgid "  (use \"git rebase --continue\" once you are satisfied with your changes)"
+msgstr "  (используйте «git rebase --continue», когда будете довольны изменениями)"
 
-#: builtin/am.c:2266 builtin/apply.c:4861
-msgid "root"
-msgstr "корень"
+#: wt-status.c:1280
+#, c-format
+msgid "You are currently cherry-picking commit %s."
+msgstr "Вы копируете коммит %s."
 
-#: builtin/am.c:2269 builtin/am.c:2272 builtin/apply.c:4799
-#: builtin/apply.c:4802 builtin/clone.c:90 builtin/fetch.c:96
-#: builtin/pull.c:179 builtin/submodule--helper.c:277
-#: builtin/submodule--helper.c:402 builtin/submodule--helper.c:482
-#: builtin/submodule--helper.c:485 builtin/submodule--helper.c:823
-#: builtin/submodule--helper.c:826
-msgid "path"
-msgstr "путь"
+#: wt-status.c:1285
+msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
+msgstr "  (разрешите конфликты, затем запустите «git cherry-pick --continue»)"
 
-#: builtin/am.c:2275 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:706 builtin/merge.c:200 builtin/pull.c:134
-#: builtin/pull.c:193 builtin/repack.c:181 builtin/repack.c:185
-#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
-#: parse-options.h:132 parse-options.h:134 parse-options.h:244
-msgid "n"
-msgstr "n"
+#: wt-status.c:1288
+msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
+msgstr "  (все конфликты разрешены: запустите «git cherry-pick --continue»)"
 
-#: builtin/am.c:2278 builtin/apply.c:4805
-msgid "num"
-msgstr "количество"
+#: wt-status.c:1290
+msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
+msgstr "  (используйте «git cherry-pick --abort», чтобы отменить копирования коммита)"
 
-#: builtin/am.c:2281 builtin/for-each-ref.c:37 builtin/replace.c:438
-#: builtin/tag.c:372
-msgid "format"
-msgstr "формат"
+#: wt-status.c:1299
+#, c-format
+msgid "You are currently reverting commit %s."
+msgstr "Вы сейчас обращаете изменения коммита %s."
 
-#: builtin/am.c:2282
-msgid "format the patch(es) are in"
-msgstr "формат, в котором находятся патчи"
+#: wt-status.c:1304
+msgid "  (fix conflicts and run \"git revert --continue\")"
+msgstr "  (разрешите конфликты, затем запустите «git revert --continue»)"
 
-#: builtin/am.c:2288
-msgid "override error message when patch failure occurs"
-msgstr "переопределить сообщение об ошибке, если не удалось наложить изменения"
+#: wt-status.c:1307
+msgid "  (all conflicts fixed: run \"git revert --continue\")"
+msgstr "  (все конфликты разрешены: запустите «git revert --continue»)"
 
-#: builtin/am.c:2290
-msgid "continue applying patches after resolving a conflict"
-msgstr "продолжить применение изменений после разрешения конфиликта"
+#: wt-status.c:1309
+msgid "  (use \"git revert --abort\" to cancel the revert operation)"
+msgstr "  (используйте «git revert --abort», чтобы отменить операцию обращения изменений коммита)"
 
-#: builtin/am.c:2293
-msgid "synonyms for --continue"
-msgstr "синоним для --continue"
+#: wt-status.c:1320
+#, c-format
+msgid "You are currently bisecting, started from branch '%s'."
+msgstr "Вы сейчас в процессе двоичного поиска, начатого с ветки «%s»."
 
-#: builtin/am.c:2296
-msgid "skip the current patch"
-msgstr "пÑ\80опÑ\83Ñ\81Ñ\82иÑ\82Ñ\8c Ñ\82екÑ\83Ñ\89ий Ð¿Ð°Ñ\82Ñ\87"
+#: wt-status.c:1324
+msgid "You are currently bisecting."
+msgstr "Ð\92Ñ\8b Ñ\81ейÑ\87аÑ\81 Ð² Ð¿Ñ\80оÑ\86еÑ\81Ñ\81е Ð´Ð²Ð¾Ð¸Ñ\87ного Ð¿Ð¾Ð¸Ñ\81ка."
 
-#: builtin/am.c:2299
-msgid "restore the original branch and abort the patching operation."
-msgstr "восстановить оригинальную ветку и отменить операцию применения изменений."
+#: wt-status.c:1327
+msgid "  (use \"git bisect reset\" to get back to the original branch)"
+msgstr "  (используйте «git bisect reset», чтобы вернуться на исходную ветку)"
 
-#: builtin/am.c:2303
-msgid "lie about committer date"
-msgstr "соврать о дате коммитера"
+#: wt-status.c:1524
+msgid "On branch "
+msgstr "На ветке "
 
-#: builtin/am.c:2305
-msgid "use current timestamp for author date"
-msgstr "использовать текущее время как время авторства"
+#: wt-status.c:1530
+msgid "interactive rebase in progress; onto "
+msgstr "интерактивное перемещение в процессе; над "
 
-#: builtin/am.c:2307 builtin/commit.c:1610 builtin/merge.c:229
-#: builtin/pull.c:164 builtin/revert.c:92 builtin/tag.c:355
-msgid "key-id"
-msgstr "key-id"
+#: wt-status.c:1532
+msgid "rebase in progress; onto "
+msgstr "перемещение в процессе; над "
 
-#: builtin/am.c:2308
-msgid "GPG-sign commits"
-msgstr "подписать коммиты с помощью GPG"
+#: wt-status.c:1537
+msgid "HEAD detached at "
+msgstr "HEAD отделён на "
 
-#: builtin/am.c:2311
-msgid "(internal use for git-rebase)"
-msgstr "(внутреннее использование для git-rebase)"
+#: wt-status.c:1539
+msgid "HEAD detached from "
+msgstr "HEAD отделён начиная с "
 
-#: builtin/am.c:2326
-msgid ""
-"The -b/--binary option has been a no-op for long time, and\n"
-"it will be removed. Please do not use it anymore."
-msgstr "Опция -b/--binary уже долгое время ничего не делает и будет удалена с следующих версиях Git. Пожалуйста, не используйте ее."
+#: wt-status.c:1542
+msgid "Not currently on any branch."
+msgstr "Сейчас ни на одной из веток"
 
-#: builtin/am.c:2333
-msgid "failed to read the index"
-msgstr "сбой чтения индекса"
+#: wt-status.c:1560
+msgid "Initial commit"
+msgstr "Начальный коммит"
 
-#: builtin/am.c:2348
-#, c-format
-msgid "previous rebase directory %s still exists but mbox given."
-msgstr "предыдущий каталог перемещения %s еще существует, но передан mbox."
+#: wt-status.c:1574
+msgid "Untracked files"
+msgstr "Неотслеживаемые файлы"
 
-#: builtin/am.c:2372
+#: wt-status.c:1576
+msgid "Ignored files"
+msgstr "Игнорируемые файлы"
+
+#: wt-status.c:1580
 #, c-format
 msgid ""
-"Stray %s directory found.\n"
-"Use \"git am --abort\" to remove it."
-msgstr "Найден забытый каталог %s.\nИспользуйте «git am --abort», чтобы удалить его."
+"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
+"may speed it up, but you have to be careful not to forget to add\n"
+"new files yourself (see 'git help status')."
+msgstr "%.2f секунды занял вывод списка неотслеживаемых файлов. «status -uno» возможно может ускорить это, но будьте внимательны, и не забудьте добавить новые файлы вручную (смотрите «git help status» для подробностей)."
 
-#: builtin/am.c:2378
-msgid "Resolve operation not in progress, we are not resuming."
-msgstr "Операция разрешения конфликтов не в процессе выполнения, не продолжаем."
+#: wt-status.c:1586
+#, c-format
+msgid "Untracked files not listed%s"
+msgstr "Неотслеживаемые файлы не показаны%s"
 
-#: builtin/apply.c:122
-msgid "git apply [<options>] [<patch>...]"
-msgstr "git apply [<опции>] [<патч>…]"
+#: wt-status.c:1588
+msgid " (use -u option to show untracked files)"
+msgstr "(используйте опцию «-u», чтобы показать неотслеживаемые файлы)"
 
-#: builtin/apply.c:153
-#, c-format
-msgid "unrecognized whitespace option '%s'"
-msgstr "неопознанная опция для пробелов «%s»"
+#: wt-status.c:1594
+msgid "No changes"
+msgstr "Нет изменений"
 
-#: builtin/apply.c:169
+#: wt-status.c:1599
 #, c-format
-msgid "unrecognized whitespace ignore option '%s'"
-msgstr "неопознанная опция для игнорирования пробелов «%s»"
+msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
+msgstr "нет изменений добавленных для коммита\n(используйте «git add» и/или «git commit -a»)\n"
 
-#: builtin/apply.c:854
+#: wt-status.c:1602
 #, c-format
-msgid "Cannot prepare timestamp regexp %s"
-msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c Ð¿Ð¾Ð´Ð³Ð¾Ñ\82овиÑ\82Ñ\8c Ñ\80егÑ\83лÑ\8fÑ\80ное Ð²Ñ\8bÑ\80ажение Ð´Ð»Ñ\8f Ð¼ÐµÑ\82ки Ð²Ñ\80емени %s"
+msgid "no changes added to commit\n"
+msgstr "неÑ\82 Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ñ\8bÑ\85 Ð´Ð»Ñ\8f ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82а\n"
 
-#: builtin/apply.c:863
+#: wt-status.c:1605
 #, c-format
-msgid "regexec returned %d for input: %s"
-msgstr "regexec возвратил %d для ввода: %s"
+msgid ""
+"nothing added to commit but untracked files present (use \"git add\" to "
+"track)\n"
+msgstr "ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте «git add», чтобы отслеживать их)\n"
 
-#: builtin/apply.c:947
+#: wt-status.c:1608
 #, c-format
-msgid "unable to find filename in patch at line %d"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð½Ð°Ð¹Ñ\82и Ð¸Ð¼Ñ\8f Ñ\84айла Ð² Ñ\81Ñ\82Ñ\80оке Ð¿Ð°Ñ\82Ñ\87а %d"
+msgid "nothing added to commit but untracked files present\n"
+msgstr "ниÑ\87его Ð½Ðµ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾ Ð² ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82, Ð½Ð¾ ÐµÑ\81Ñ\82Ñ\8c Ð½ÐµÐ¾Ñ\82Ñ\81леживаемÑ\8bе Ñ\84айлÑ\8b\n"
 
-#: builtin/apply.c:984
+#: wt-status.c:1611
 #, c-format
-msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
-msgstr "git apply: плохой git-diff — ожидалось /dev/null, получено %s на строке %d"
+msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
+msgstr "нечего коммитить (создайте/скопируйте файлы, затем запустите «git add», чтобы отслеживать их)\n"
 
-#: builtin/apply.c:989
+#: wt-status.c:1614 wt-status.c:1619
 #, c-format
-msgid "git apply: bad git-diff - inconsistent new filename on line %d"
-msgstr "git apply: плохой git-diff — не согласующееся новое имя файла на строке %d"
+msgid "nothing to commit\n"
+msgstr "нечего коммитить\n"
 
-#: builtin/apply.c:990
+#: wt-status.c:1617
 #, c-format
-msgid "git apply: bad git-diff - inconsistent old filename on line %d"
-msgstr "git apply: плохой git-diff — не согласующееся старое имя файла на строке %d"
+msgid "nothing to commit (use -u to show untracked files)\n"
+msgstr "нечего коммитить (используйте опцию «-u», чтобы показать неотслеживаемые файлы)\n"
 
-#: builtin/apply.c:995
+#: wt-status.c:1621
 #, c-format
-msgid "git apply: bad git-diff - expected /dev/null on line %d"
-msgstr "git apply: плохой git-diff  — ожидалось /dev/null на строке %d"
+msgid "nothing to commit, working tree clean\n"
+msgstr "нечего коммитить, нет изменений в рабочем каталоге\n"
 
-#: builtin/apply.c:1489
-#, c-format
-msgid "recount: unexpected line: %.*s"
-msgstr "recount: не ожидаемая строка: %.*s"
+#: wt-status.c:1728
+msgid "Initial commit on "
+msgstr "Начальный коммит на "
 
-#: builtin/apply.c:1550
-#, c-format
-msgid "patch fragment without header at line %d: %.*s"
-msgstr "фрагмент изменений без заголовка на строке %d: %.*s"
+#: wt-status.c:1732
+msgid "HEAD (no branch)"
+msgstr "HEAD (нет ветки)"
 
-#: builtin/apply.c:1567
-#, c-format
-msgid ""
-"git diff header lacks filename information when removing %d leading pathname"
-" component (line %d)"
-msgid_plural ""
-"git diff header lacks filename information when removing %d leading pathname"
-" components (line %d)"
-msgstr[0] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущего компонента пути к файлу (строка %d)"
-msgstr[1] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущих компонент пути к файлу (строка %d)"
-msgstr[2] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущих компонент пути к файлу (строка %d)"
-msgstr[3] "заголовок git diff не нашел информацию об имени файла при удалении %d ведущих компонент пути к файлу (строка %d)"
+#: wt-status.c:1761
+msgid "gone"
+msgstr "исчез"
 
-#: builtin/apply.c:1743
-msgid "new file depends on old contents"
-msgstr "новÑ\8bй Ñ\84айл Ð·Ð°Ð²Ð¸Ñ\81иÑ\82 Ð¾Ñ\82 Ñ\81Ñ\82аÑ\80ого Ñ\81одеÑ\80жимого"
+#: wt-status.c:1763 wt-status.c:1771
+msgid "behind "
+msgstr "позади"
 
-#: builtin/apply.c:1745
-msgid "deleted file still has contents"
-msgstr "удаленный файл все еще имеет содержимое"
+#: wt-status.c:1766 wt-status.c:1769
+msgid "ahead "
+msgstr "впереди "
 
-#: builtin/apply.c:1774
+#. TRANSLATORS: the action is e.g. "pull with rebase"
+#: wt-status.c:2270
 #, c-format
-msgid "corrupt patch at line %d"
-msgstr "паÑ\82Ñ\87 Ð¿Ð¾Ð²Ñ\80ежден Ð½Ð° Ñ\81Ñ\82Ñ\80оке %d"
+msgid "cannot %s: You have unstaged changes."
+msgstr "не Ñ\83далоÑ\81Ñ\8c Ð²Ñ\8bполниÑ\82Ñ\8c %s: Ð£ Ð²Ð°Ñ\81 ÐµÑ\81Ñ\82Ñ\8c Ð½ÐµÐ¿Ñ\80оиндекÑ\81иÑ\80ованнÑ\8bе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f."
 
-#: builtin/apply.c:1810
-#, c-format
-msgid "new file %s depends on old contents"
-msgstr "новый файл %s зависит от старого содержимого"
+#: wt-status.c:2276
+msgid "additionally, your index contains uncommitted changes."
+msgstr "к тому же, в вашем индексе есть незакоммиченные изменения."
 
-#: builtin/apply.c:1812
+#: wt-status.c:2278
 #, c-format
-msgid "deleted file %s still has contents"
-msgstr "удаленный файл %s все еще имеет содержимое"
+msgid "cannot %s: Your index contains uncommitted changes."
+msgstr "не удалось выполнить %s: В вашем индексе есть незакоммиченные изменения."
 
-#: builtin/apply.c:1815
+#: compat/precompose_utf8.c:57 builtin/clone.c:414
 #, c-format
-msgid "** warning: file %s becomes empty but is not deleted"
-msgstr "** предупреждение: файл %s становится пустым, но не удаляется"
+msgid "failed to unlink '%s'"
+msgstr "сбой отсоединения «%s»"
 
-#: builtin/apply.c:1962
-#, c-format
-msgid "corrupt binary patch at line %d: %.*s"
-msgstr "поврежденный двоичный патч на строке %d: %.*s"
+#: builtin/add.c:22
+msgid "git add [<options>] [--] <pathspec>..."
+msgstr "git add [<опции>] [--] <спецификация-пути>…"
 
-#: builtin/apply.c:1999
+#: builtin/add.c:80
 #, c-format
-msgid "unrecognized binary patch at line %d"
-msgstr "неопознанный двоичный патч на строке %d"
+msgid "unexpected diff status %c"
+msgstr "неожиданный статус различий %c"
+
+#: builtin/add.c:85 builtin/commit.c:291
+msgid "updating files failed"
+msgstr "сбой при обновлении файлов"
 
-#: builtin/apply.c:2154
+#: builtin/add.c:95
 #, c-format
-msgid "patch with only garbage at line %d"
-msgstr "патч с мусором на строке %d"
+msgid "remove '%s'\n"
+msgstr "удалить «%s»\n"
+
+#: builtin/add.c:149
+msgid "Unstaged changes after refreshing the index:"
+msgstr "Непроиндексированные изменения после обновления индекса:"
 
-#: builtin/apply.c:2244
+#: builtin/add.c:209 builtin/rev-parse.c:840
+msgid "Could not read the index"
+msgstr "Не удалось прочитать индекс"
+
+#: builtin/add.c:220
 #, c-format
-msgid "unable to read symlink %s"
-msgstr "не удалось прочитать символьную ссылку %s"
+msgid "Could not open '%s' for writing."
+msgstr "Не удалось открыть «%s» для записи."
+
+#: builtin/add.c:224
+msgid "Could not write patch"
+msgstr "Не удалось записать патч"
+
+#: builtin/add.c:227
+msgid "editing patch failed"
+msgstr "сбой при редактировании патча"
 
-#: builtin/apply.c:2248
+#: builtin/add.c:230
 #, c-format
-msgid "unable to open or read %s"
-msgstr "не удалось открыть или прочесть %s"
+msgid "Could not stat '%s'"
+msgstr "Не удалось выполнить stat для «%s»"
+
+#: builtin/add.c:232
+msgid "Empty patch. Aborted."
+msgstr "Пустой патч. Операция прервана."
 
-#: builtin/apply.c:2901
+#: builtin/add.c:237
 #, c-format
-msgid "invalid start of line: '%c'"
-msgstr "неправильное начало строки: «%c»"
+msgid "Could not apply '%s'"
+msgstr "Не удалось применить «%s»"
+
+#: builtin/add.c:247
+msgid "The following paths are ignored by one of your .gitignore files:\n"
+msgstr "Следующие пути игнорируются одним из ваших файлов .gitignore:\n"
+
+#: builtin/add.c:266 builtin/clean.c:870 builtin/fetch.c:115 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:198 builtin/push.c:521
+#: builtin/remote.c:1326 builtin/rm.c:268 builtin/send-pack.c:162
+msgid "dry run"
+msgstr "пробный запуск"
+
+#: builtin/add.c:269
+msgid "interactive picking"
+msgstr "интерактивный выбор"
+
+#: builtin/add.c:270 builtin/checkout.c:1156 builtin/reset.c:286
+msgid "select hunks interactively"
+msgstr "интерактивный выбор блоков"
+
+#: builtin/add.c:271
+msgid "edit current diff and apply"
+msgstr "отредактировать текущий файл различий и применить его"
+
+#: builtin/add.c:272
+msgid "allow adding otherwise ignored files"
+msgstr "разрешить добавление игнорируемых иначе файлов"
+
+#: builtin/add.c:273
+msgid "update tracked files"
+msgstr "обновить отслеживаемые файлы"
+
+#: builtin/add.c:274
+msgid "record only the fact that the path will be added later"
+msgstr "записать только факт, что путь будет добавлен позже"
+
+#: builtin/add.c:275
+msgid "add changes from all tracked and untracked files"
+msgstr "добавить изменения из всех отслеживаемых и неотслеживаемых файлов"
+
+#: builtin/add.c:278
+msgid "ignore paths removed in the working tree (same as --no-all)"
+msgstr "игнорировать пути удаленные из рабочего каталога (тоже, что и --no-all)"
 
-#: builtin/apply.c:3020
+#: builtin/add.c:280
+msgid "don't add, only refresh the index"
+msgstr "не добавлять, только обновить индекс"
+
+#: builtin/add.c:281
+msgid "just skip files which cannot be added because of errors"
+msgstr "пропускать файлы, которые не могут быть добавлены из-за ошибок"
+
+#: builtin/add.c:282
+msgid "check if - even missing - files are ignored in dry run"
+msgstr "удостовериться, что даже недостающие файлы будут проигнорированы при  пробном запуске"
+
+#: builtin/add.c:283 builtin/update-index.c:947
+msgid "(+/-)x"
+msgstr "(+/-)x"
+
+#: builtin/add.c:283 builtin/update-index.c:948
+msgid "override the executable bit of the listed files"
+msgstr "переопределить бит выполнения на указанных файлах"
+
+#: builtin/add.c:305
 #, c-format
-msgid "Hunk #%d succeeded at %d (offset %d line)."
-msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
-msgstr[0] "Часть #%d успешно применена на %d (со сдвигом в %d строку)."
-msgstr[1] "Часть #%d успешно применена на %d (со сдвигом в %d строки)."
-msgstr[2] "Часть #%d успешно применена на %d (со сдвигом в %d строк)."
-msgstr[3] "Часть #%d успешно применена на %d (со сдвигом в %d строк)."
+msgid "Use -f if you really want to add them.\n"
+msgstr "Используйте -f, если вы действительно хотите добавить их.\n"
+
+#: builtin/add.c:312
+msgid "adding files failed"
+msgstr "ошибка при добавлении файлов"
+
+#: builtin/add.c:348
+msgid "-A and -u are mutually incompatible"
+msgstr "-A и -u нельзя использовать одновременно"
+
+#: builtin/add.c:355
+msgid "Option --ignore-missing can only be used together with --dry-run"
+msgstr "Опция --ignore-missing может использоваться только вместе с --dry-run"
 
-#: builtin/apply.c:3032
+#: builtin/add.c:359
 #, c-format
-msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
-msgstr "Ð\9aонÑ\82екÑ\81Ñ\82 Ñ\81Ñ\83жен Ð´Ð¾ (%ld/%ld), Ñ\87Ñ\82обÑ\8b Ð¿Ñ\80имениÑ\82Ñ\8c Ñ\84Ñ\80агменÑ\82 Ð½Ð° %d Ñ\81Ñ\82Ñ\80оке"
+msgid "--chmod param '%s' must be either -x or +x"
+msgstr "паÑ\80амеÑ\82Ñ\80 --chmod Â«%s» Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ\8bÑ\82Ñ\8c -x Ð¸Ð»Ð¸ +x"
 
-#: builtin/apply.c:3038
+#: builtin/add.c:374
 #, c-format
-msgid ""
-"while searching for:\n"
-"%.*s"
-msgstr "при поиске:\n%.*s"
+msgid "Nothing specified, nothing added.\n"
+msgstr "Ничего не указано, ничего не добавлено.\n"
 
-#: builtin/apply.c:3060
+#: builtin/add.c:375
 #, c-format
-msgid "missing binary patch data for '%s'"
-msgstr "пÑ\80опÑ\83Ñ\89енÑ\8b Ð´Ð°Ð½Ð½Ñ\8bе Ð´Ð²Ð¾Ð¸Ñ\87ного Ð¿Ð°Ñ\82Ñ\87а Ð´Ð»Ñ\8f Â«%s»"
+msgid "Maybe you wanted to say 'git add .'?\n"
+msgstr "Ð\92озможно, Ð²Ñ\8b Ð¸Ð¼ÐµÐ»Ð¸ Ð² Ð²Ð¸Ð´Ñ\83 Â«git add .»?\n"
 
-#: builtin/apply.c:3163
-#, c-format
-msgid "binary patch does not apply to '%s'"
-msgstr "не удалось применить двоичный патч к «%s»"
+#: builtin/add.c:380 builtin/check-ignore.c:172 builtin/checkout.c:279
+#: builtin/checkout.c:472 builtin/clean.c:914 builtin/commit.c:350
+#: builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:244
+msgid "index file corrupt"
+msgstr "файл индекса поврежден"
 
-#: builtin/apply.c:3169
-#, c-format
-msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
-msgstr "после применения двоичного патча для «%s» был получен неправильный результат (ожидалось %s, получено %s)"
+#: builtin/am.c:414
+msgid "could not parse author script"
+msgstr "не удалось разобрать сценарий авторства"
 
-#: builtin/apply.c:3190
+#: builtin/am.c:491
 #, c-format
-msgid "patch failed: %s:%ld"
-msgstr "ошибка применения изменений: %s:%ld"
+msgid "'%s' was deleted by the applypatch-msg hook"
+msgstr "«%s» был удален перехватчиком applypatch-msg"
 
-#: builtin/apply.c:3314
+#: builtin/am.c:532
 #, c-format
-msgid "cannot checkout %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¿ÐµÑ\80еклÑ\8eÑ\87иÑ\82Ñ\8c Ñ\81оÑ\81Ñ\82оÑ\8fние Ð½Ð° %s"
+msgid "Malformed input line: '%s'."
+msgstr "Ð\9dепÑ\80авилÑ\8cнаÑ\8f Ñ\81Ñ\82Ñ\80ока Ð²Ð²Ð¾Ð´Ð°: Â«%s»."
 
-#: builtin/apply.c:3370
+#: builtin/am.c:569
 #, c-format
-msgid "reading from '%s' beyond a symbolic link"
-msgstr "чтение из «%s» за символической ссылкой"
+msgid "Failed to copy notes from '%s' to '%s'"
+msgstr "Не удалось скопировать заметку из «%s» в «%s»"
 
-#: builtin/apply.c:3399 builtin/apply.c:3630
-#, c-format
-msgid "path %s has been renamed/deleted"
-msgstr "путь %s был переименован/удален"
+#: builtin/am.c:595
+msgid "fseek failed"
+msgstr "сбой при выполнении fseek"
 
-#: builtin/apply.c:3482 builtin/apply.c:3644
+#: builtin/am.c:775
 #, c-format
-msgid "%s: does not exist in index"
-msgstr "%s: нет в индексе"
+msgid "could not parse patch '%s'"
+msgstr "не удалось разобрать патч «%s»"
 
-#: builtin/apply.c:3486 builtin/apply.c:3636 builtin/apply.c:3658
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#: builtin/am.c:840
+msgid "Only one StGIT patch series can be applied at once"
+msgstr "Только серия патчей StGIT может быть применена за раз"
 
-#: builtin/apply.c:3491 builtin/apply.c:3652
-#, c-format
-msgid "%s: does not match index"
-msgstr "%s: не совпадает с индексом"
+#: builtin/am.c:887
+msgid "invalid timestamp"
+msgstr "недопустимая метка даты/времени"
 
-#: builtin/apply.c:3597
-msgid "removal patch leaves file contents"
-msgstr "паÑ\82Ñ\87 Ñ\83далениÑ\8f Ð½Ðµ Ñ\83далил Ñ\81одеÑ\80жимое Ñ\84айла"
+#: builtin/am.c:890 builtin/am.c:898
+msgid "invalid Date line"
+msgstr "недопÑ\83Ñ\81Ñ\82имаÑ\8f Ñ\81Ñ\82Ñ\80ока Ð´Ð°Ñ\82Ñ\8b"
 
-#: builtin/apply.c:3669
-#, c-format
-msgid "%s: wrong type"
-msgstr "%s: неправильный тип"
+#: builtin/am.c:895
+msgid "invalid timezone offset"
+msgstr "недопустимое смещение часового пояса"
 
-#: builtin/apply.c:3671
-#, c-format
-msgid "%s has type %o, expected %o"
-msgstr "%s имеет тип %o, а ожидался %o"
+#: builtin/am.c:984
+msgid "Patch format detection failed."
+msgstr "Сбой определения формата патча."
 
-#: builtin/apply.c:3822 builtin/apply.c:3824
+#: builtin/am.c:989 builtin/clone.c:379
 #, c-format
-msgid "invalid path '%s'"
-msgstr "неправильный путь «%s»"
+msgid "failed to create directory '%s'"
+msgstr "не удалось создать каталог «%s»"
 
-#: builtin/apply.c:3879
-#, c-format
-msgid "%s: already exists in index"
-msgstr "%s: уже содержится в индексе"
+#: builtin/am.c:993
+msgid "Failed to split patches."
+msgstr "Не удалось разделить патчи на части."
 
-#: builtin/apply.c:3882
-#, c-format
-msgid "%s: already exists in working directory"
-msgstr "%s: уже содержится в рабочем каталоге"
+#: builtin/am.c:1125 builtin/commit.c:376
+msgid "unable to write index file"
+msgstr "не удалось записать индекс"
 
-#: builtin/apply.c:3902
+#: builtin/am.c:1176
 #, c-format
-msgid "new mode (%o) of %s does not match old mode (%o)"
-msgstr "новÑ\8bй Ñ\80ежим Ð´Ð¾Ñ\81Ñ\82Ñ\83па (%o) Ð´Ð»Ñ\8f %s Ð½Ðµ Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83еÑ\82 Ñ\81Ñ\82аÑ\80омÑ\83 Ñ\80ежимÑ\83 Ð´Ð¾Ñ\81Ñ\82Ñ\83па (%o)"
+msgid "When you have resolved this problem, run \"%s --continue\"."
+msgstr "Ð\9aогда Ð²Ñ\8b Ñ\83Ñ\81Ñ\82Ñ\80аниÑ\82е Ñ\8dÑ\82Ñ\83 Ð¿Ñ\80облемÑ\83, Ð·Ð°Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Â«%s --continue»."
 
-#: builtin/apply.c:3907
+#: builtin/am.c:1177
 #, c-format
-msgid "new mode (%o) of %s does not match old mode (%o) of %s"
-msgstr "новÑ\8bй Ñ\80ежим Ð´Ð¾Ñ\81Ñ\82Ñ\83па (%o) Ð´Ð»Ñ\8f %s Ð½Ðµ Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83еÑ\82 Ñ\81Ñ\82аÑ\80омÑ\83 Ñ\80ежимÑ\83 Ð´Ð¾Ñ\81Ñ\82Ñ\83па (%o) Ð´Ð»Ñ\8f %s"
+msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
+msgstr "Ð\95Ñ\81ли Ð²Ñ\8b Ñ\85оÑ\82иÑ\82е Ð¿Ñ\80опÑ\83Ñ\81Ñ\82иÑ\82Ñ\8c Ñ\8dÑ\82оÑ\82 Ð¿Ð°Ñ\82Ñ\87, Ñ\82о Ð·Ð°Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Â«%s --skip»."
 
-#: builtin/apply.c:3927
+#: builtin/am.c:1178
 #, c-format
-msgid "affected file '%s' is beyond a symbolic link"
-msgstr "заÑ\82Ñ\80онÑ\83Ñ\82Ñ\8bй Ñ\84айл Â«%s» Ð½Ð°Ñ\85одиÑ\82Ñ\81Ñ\8f Ð·Ð° Ñ\81имволиÑ\87еÑ\81кой Ñ\81Ñ\81Ñ\8bлкой"
+msgid "To restore the original branch and stop patching, run \"%s --abort\"."
+msgstr "ЧÑ\82обÑ\8b Ð²ÐµÑ\80нÑ\83Ñ\82Ñ\8cÑ\81Ñ\8f Ð½Ð° Ð¿Ñ\80едÑ\8bдÑ\83Ñ\89Ñ\83Ñ\8e Ð²ÐµÑ\82кÑ\83 Ð¸ Ð¾Ñ\81Ñ\82ановиÑ\82Ñ\8c Ð¿Ñ\80именение Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, Ð·Ð°Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Â«%s --abort»."
 
-#: builtin/apply.c:3931
-#, c-format
-msgid "%s: patch does not apply"
-msgstr "%s: не удалось применить патч"
+#: builtin/am.c:1316
+msgid "Patch is empty. Was it split wrong?"
+msgstr "Патч пуст. Возможно, он был неправильно разделён?"
 
-#: builtin/apply.c:3945
+#: builtin/am.c:1390 builtin/log.c:1550
 #, c-format
-msgid "Checking patch %s..."
-msgstr "Ð\9fÑ\80овеÑ\80ка Ð¿Ð°Ñ\82Ñ\87а %sâ\80¦"
+msgid "invalid ident line: %s"
+msgstr "непÑ\80авилÑ\8cнаÑ\8f Ñ\81Ñ\82Ñ\80ока Ð¸Ð´ÐµÐ½Ñ\82иÑ\84икаÑ\86ии: %s"
 
-#: builtin/apply.c:4038 builtin/checkout.c:233 builtin/reset.c:135
+#: builtin/am.c:1417
 #, c-format
-msgid "make_cache_entry failed for path '%s'"
-msgstr "сбой make_cache_entry для пути «%s»"
+msgid "unable to parse commit %s"
+msgstr "не удалось разобрать коммит %s"
 
-#: builtin/apply.c:4182
-#, c-format
-msgid "unable to remove %s from index"
-msgstr "не удалось удалить %s из индекса"
+#: builtin/am.c:1610
+msgid "Repository lacks necessary blobs to fall back on 3-way merge."
+msgstr "В репозитории отсутствуют двоичные объекты, необходимые для отката к трехходовому слиянию."
 
-#: builtin/apply.c:4215
-#, c-format
-msgid "corrupt patch for submodule %s"
-msgstr "поврежденный патч для подмодуля %s"
+#: builtin/am.c:1612
+msgid "Using index info to reconstruct a base tree..."
+msgstr "Использую индекс для реконструкции базового дерева…"
 
-#: builtin/apply.c:4219
-#, c-format
-msgid "unable to stat newly created file '%s'"
-msgstr "не удалось выполнить stat для созданного файла «%s»"
+#: builtin/am.c:1631
+msgid ""
+"Did you hand edit your patch?\n"
+"It does not apply to blobs recorded in its index."
+msgstr "Вы вручную изменяли патч?\nОн не накладывается без ошибок на двоичные объекты, записанные в его заголовке."
 
-#: builtin/apply.c:4224
-#, c-format
-msgid "unable to create backing store for newly created file %s"
-msgstr "не удалось создать вспомогательный файл для созданного файла %s"
+#: builtin/am.c:1637
+msgid "Falling back to patching base and 3-way merge..."
+msgstr "Откат к применению изменений к базовому коммиту с помощью трехходового слияния…"
 
-#: builtin/apply.c:4227 builtin/apply.c:4340
-#, c-format
-msgid "unable to add cache entry for %s"
-msgstr "не удалось создать запись в кэше для %s"
+#: builtin/am.c:1662
+msgid "Failed to merge in the changes."
+msgstr "Не удалось слить изменения."
 
-#: builtin/apply.c:4260
-#, c-format
-msgid "closing file '%s'"
-msgstr "закрытие файла «%s»"
+#: builtin/am.c:1686 builtin/merge.c:628
+msgid "git write-tree failed to write a tree"
+msgstr "git write-tree не удалось записать дерево"
 
-#: builtin/apply.c:4313
-#, c-format
-msgid "unable to write file '%s' mode %o"
-msgstr "не удалось записать файл «%s» с режимом доступа %o"
+#: builtin/am.c:1693
+msgid "applying to an empty history"
+msgstr "применение к пустой истории"
 
-#: builtin/apply.c:4403
+#: builtin/am.c:1706 builtin/commit.c:1769 builtin/merge.c:798
+#: builtin/merge.c:823
+msgid "failed to write commit object"
+msgstr "сбой записи объекта коммита"
+
+#: builtin/am.c:1739 builtin/am.c:1743
 #, c-format
-msgid "Applied patch %s cleanly."
-msgstr "Ð\9fаÑ\82Ñ\87 %s Ð¿Ñ\80именен Ð±ÐµÐ· Ð¾Ñ\88ибок."
+msgid "cannot resume: %s does not exist."
+msgstr "нелÑ\8cзÑ\8f Ð¿Ñ\80одолжниÑ\82Ñ\8c: %s Ð½Ðµ Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82 "
 
-#: builtin/apply.c:4411
-msgid "internal error"
-msgstr "внутренняя ошибка"
+#: builtin/am.c:1759
+msgid "cannot be interactive without stdin connected to a terminal."
+msgstr "не удалось использовать интерактивное поведение, без stdin подключенного к терминалу."
+
+#: builtin/am.c:1764
+msgid "Commit Body is:"
+msgstr "Тело коммита:"
+
+#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
+#. in your translation. The program will only accept English
+#. input at this point.
+#: builtin/am.c:1774
+msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
+msgstr "Применить? [y] - да/[n] - нет/[e] - редактировать/[v] - просмотреть патч/[a] - применить всё: "
 
-#: builtin/apply.c:4414
+#: builtin/am.c:1824
 #, c-format
-msgid "Applying patch %%s with %d reject..."
-msgid_plural "Applying patch %%s with %d rejects..."
-msgstr[0] "Применение патча %%s с %d отказом…"
-msgstr[1] "Применение патча %%s с %d отказами…"
-msgstr[2] "Применение патча %%s с %d отказами…"
-msgstr[3] "Применение патча %%s с %d отказами…"
+msgid "Dirty index: cannot apply patches (dirty: %s)"
+msgstr "Индекс не пустой: нельзя применять патчи (в индексе: %s)"
 
-#: builtin/apply.c:4424
+#: builtin/am.c:1861 builtin/am.c:1933
 #, c-format
-msgid "truncating .rej filename to %.*s.rej"
-msgstr "усечение имени .rej файла до %.*s.rej"
+msgid "Applying: %.*s"
+msgstr "Применение: %.*s"
+
+#: builtin/am.c:1877
+msgid "No changes -- Patch already applied."
+msgstr "Нет изменений — Патч уже применен."
 
-#: builtin/apply.c:4432
+#: builtin/am.c:1885
 #, c-format
-msgid "cannot open %s: %s"
-msgstr "не Ñ\83далоÑ\81Ñ\8c Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c %s: %s"
+msgid "Patch failed at %s %.*s"
+msgstr "Ð\9eÑ\88ибка Ð¿Ñ\80именениÑ\8f Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ð½Ð° %s %.*s"
 
-#: builtin/apply.c:4445
+#: builtin/am.c:1891
 #, c-format
-msgid "Hunk #%d applied cleanly."
-msgstr "Блок №%d применен без ошибок."
+msgid "The copy of the patch that failed is found in: %s"
+msgstr "Копию изменений, которые не удалось применить, вы можете найти в: %s"
+
+#: builtin/am.c:1936
+msgid ""
+"No changes - did you forget to use 'git add'?\n"
+"If there is nothing left to stage, chances are that something else\n"
+"already introduced the same changes; you might want to skip this patch."
+msgstr "Нет изменений — возможно, вы забыли вызвать «git add»?\nЕсли ничего не осталось для индексации, то, скорее всего, что-то другое уже сделало те же изменения; возможно, вам следует пропустить этот патч."
+
+#: builtin/am.c:1943
+msgid ""
+"You still have unmerged paths in your index.\n"
+"Did you forget to use 'git add'?"
+msgstr "У вас все еще имеются не слитые пути в индексе.\nВозможно, вы забыли вызвать «git add»?"
 
-#: builtin/apply.c:4448
+#: builtin/am.c:2051 builtin/am.c:2055 builtin/am.c:2067 builtin/reset.c:308
+#: builtin/reset.c:316
 #, c-format
-msgid "Rejected hunk #%d."
-msgstr "Блок №%d отклонен."
+msgid "Could not parse object '%s'."
+msgstr "Не удалось разобрать объект «%s»."
+
+#: builtin/am.c:2103
+msgid "failed to clean index"
+msgstr "не удалось очистить индекс"
+
+#: builtin/am.c:2137
+msgid ""
+"You seem to have moved HEAD since the last 'am' failure.\n"
+"Not rewinding to ORIG_HEAD"
+msgstr "Похоже, что вы переместили HEAD с момента последней ошибки выполнения «am».\nПеремотка на ORIG_HEAD не выполняется"
 
-#: builtin/apply.c:4537
+#: builtin/am.c:2200
 #, c-format
-msgid "Skipped patch '%s'."
-msgstr "Ð\9fаÑ\82Ñ\87 Â«%s» Ð¿Ñ\80опÑ\83Ñ\89ен."
+msgid "Invalid value for --patch-format: %s"
+msgstr "Ð\9dепÑ\80авилÑ\8cное Ð·Ð½Ð°Ñ\87ение Ð´Ð»Ñ\8f --patch-format: %s"
 
-#: builtin/apply.c:4545
-msgid "unrecognized input"
-msgstr "не распознанный ввод"
+#: builtin/am.c:2233
+msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
+msgstr "git am [<опции>] [(<mbox> | <Maildir>)…]"
 
-#: builtin/apply.c:4556
-msgid "unable to read index file"
-msgstr "не удалось прочитать файл индекса"
+#: builtin/am.c:2234
+msgid "git am [<options>] (--continue | --skip | --abort)"
+msgstr "git am [<опции>] (--continue | --skip | --abort)"
 
-#: builtin/apply.c:4701
-msgid "--3way outside a repository"
-msgstr "--3way вне репозитория"
+#: builtin/am.c:2240
+msgid "run interactively"
+msgstr "запустить в интерактивном режиме"
 
-#: builtin/apply.c:4709
-msgid "--index outside a repository"
-msgstr "--index вне репозитория"
+#: builtin/am.c:2242
+msgid "historical option -- no-op"
+msgstr "историческая опция — ничего не делает"
 
-#: builtin/apply.c:4712
-msgid "--cached outside a repository"
-msgstr "--cached вне репозитория"
+#: builtin/am.c:2244
+msgid "allow fall back on 3way merging if needed"
+msgstr "разрешить откатиться к трехходовому слиянию, если нужно"
 
-#: builtin/apply.c:4745
-#, c-format
-msgid "can't open patch '%s'"
-msgstr "не удалось открыть патч «%s»"
+#: builtin/am.c:2245 builtin/init-db.c:483 builtin/prune-packed.c:57
+#: builtin/repack.c:172
+msgid "be quiet"
+msgstr "тихий режим"
 
-#: builtin/apply.c:4760
-#, c-format
-msgid "squelched %d whitespace error"
-msgid_plural "squelched %d whitespace errors"
-msgstr[0] "пропущена %d ошибка в пробельных символах"
-msgstr[1] "пропущено %d ошибки в пробельных символах"
-msgstr[2] "пропущено %d ошибок в пробельных символах"
-msgstr[3] "пропущено %d ошибок в пробельных символах"
+#: builtin/am.c:2247
+msgid "add a Signed-off-by line to the commit message"
+msgstr "добавить строку Signed-off-by к сообщению коммита"
 
-#: builtin/apply.c:4766 builtin/apply.c:4776
-#, c-format
-msgid "%d line adds whitespace errors."
-msgid_plural "%d lines add whitespace errors."
-msgstr[0] "%d строка добавила ошибки в пробельных символах."
-msgstr[1] "%d строки добавили ошибки в пробельных символах."
-msgstr[2] "%d строк добавили ошибки в пробельных символах."
-msgstr[3] "%d строк добавили ошибки в пробельных символах."
+#: builtin/am.c:2250
+msgid "recode into utf8 (default)"
+msgstr "перекодировать в utf8 (по умолчанию)"
 
-#: builtin/apply.c:4800
-msgid "don't apply changes matching the given path"
-msgstr "не Ð¿Ñ\80именÑ\8fÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð¿Ð¾ Ñ\83казанномÑ\83 Ð¿Ñ\83Ñ\82и"
+#: builtin/am.c:2252
+msgid "pass -k flag to git-mailinfo"
+msgstr "пеÑ\80едаÑ\82Ñ\8c Ñ\84лаг -k Ð² git-mailinfo"
 
-#: builtin/apply.c:4803
-msgid "apply changes matching the given path"
-msgstr "применять изменения по указанному пути"
+#: builtin/am.c:2254
+msgid "pass -b flag to git-mailinfo"
+msgstr "передать флаг -b в git-mailinfo"
 
-#: builtin/apply.c:4806
-msgid "remove <num> leading slashes from traditional diff paths"
-msgstr "удалить <количество> ведущих косых черт из традиционных путей списка изменений"
+#: builtin/am.c:2256
+msgid "pass -m flag to git-mailinfo"
+msgstr "передать флаг -m в git-mailinfo"
 
-#: builtin/apply.c:4809
-msgid "ignore additions made by the patch"
-msgstr "игноÑ\80иÑ\80оваÑ\82Ñ\8c Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ\8f, Ñ\81деланнÑ\8bе Ñ\8dÑ\82им Ð¿Ð°Ñ\82Ñ\87ем"
+#: builtin/am.c:2258
+msgid "pass --keep-cr flag to git-mailsplit for mbox format"
+msgstr "пеÑ\80едаÑ\82Ñ\8c Ñ\84лаг --keep-cr Ð² git-mailsplit Ð´Ð»Ñ\8f Ñ\84оÑ\80маÑ\82а mbox"
 
-#: builtin/apply.c:4811
-msgid "instead of applying the patch, output diffstat for the input"
-msgstr "вмеÑ\81Ñ\82о Ð¿Ñ\80именениÑ\8f Ð¿Ð°Ñ\82Ñ\87а Ð²Ñ\8bвеÑ\81Ñ\82и Ñ\81Ñ\82аÑ\82иÑ\81Ñ\82икÑ\83 Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ð¹ Ð¸ Ñ\83далений Ð´Ð»Ñ\8f Ð²Ð²Ð¾Ð´Ð°"
+#: builtin/am.c:2261
+msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
+msgstr "не Ð¿ÐµÑ\80едаваÑ\82Ñ\8c --keep-cr Ñ\84лаг Ð² git-mailsplit Ð²Ð½Ðµ Ð·Ð°Ð²Ð¸Ñ\81имоÑ\81Ñ\82и Ð¾Ñ\82 am.keepcr"
 
-#: builtin/apply.c:4815
-msgid "show number of added and deleted lines in decimal notation"
-msgstr "показаÑ\82Ñ\8c ÐºÐ¾Ð»Ð¸Ñ\87еÑ\81Ñ\82во Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð½Ñ\8bÑ\85 Ð¸ Ñ\83даленнÑ\8bÑ\85 Ñ\81Ñ\82Ñ\80ок Ð² Ð´ÐµÑ\81Ñ\8fÑ\82иÑ\87ном Ð¿Ñ\80едÑ\81Ñ\82авлении"
+#: builtin/am.c:2264
+msgid "strip everything before a scissors line"
+msgstr "обÑ\80езаÑ\82Ñ\8c Ð²Ñ\81е Ð´Ð¾ Ñ\81Ñ\82Ñ\80оки Ð¾Ð±Ñ\80езки"
 
-#: builtin/apply.c:4817
-msgid "instead of applying the patch, output a summary for the input"
-msgstr "вместо применения патча вывести статистику изменений для ввода"
+#: builtin/am.c:2266 builtin/am.c:2269 builtin/am.c:2272 builtin/am.c:2275
+#: builtin/am.c:2278 builtin/am.c:2281 builtin/am.c:2284 builtin/am.c:2287
+#: builtin/am.c:2293
+msgid "pass it through git-apply"
+msgstr "передать его в git-apply"
 
-#: builtin/apply.c:4819
-msgid "instead of applying the patch, see if the patch is applicable"
-msgstr "вместо применения патча проверить подходит ли он"
+#: builtin/am.c:2283 builtin/fmt-merge-msg.c:662 builtin/fmt-merge-msg.c:665
+#: builtin/grep.c:707 builtin/merge.c:200 builtin/pull.c:135
+#: builtin/pull.c:194 builtin/repack.c:181 builtin/repack.c:185
+#: builtin/show-branch.c:644 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:245
+msgid "n"
+msgstr "n"
 
-#: builtin/apply.c:4821
-msgid "make sure the patch is applicable to the current index"
-msgstr "проверить, что патч применяется к текущему индексу"
+#: builtin/am.c:2289 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/tag.c:372
+msgid "format"
+msgstr "формат"
 
-#: builtin/apply.c:4823
-msgid "apply a patch without touching the working tree"
-msgstr "применить патч, не изменяя рабочий каталог"
+#: builtin/am.c:2290
+msgid "format the patch(es) are in"
+msgstr "формат, в котором находятся патчи"
 
-#: builtin/apply.c:4825
-msgid "accept a patch that touches outside the working area"
-msgstr "принять патч, который затрагивает файлы за рабочим каталогом"
+#: builtin/am.c:2296
+msgid "override error message when patch failure occurs"
+msgstr "переопределить сообщение об ошибке, если не удалось наложить изменения"
 
-#: builtin/apply.c:4827
-msgid "also apply the patch (use with --stat/--summary/--check)"
-msgstr "а Ñ\82акже Ð¿Ñ\80имениÑ\82Ñ\8c Ð¿Ð°Ñ\82Ñ\87 (иÑ\81полÑ\8cзÑ\83йÑ\82е Ñ\81 --stat/--summary/--check)"
+#: builtin/am.c:2298
+msgid "continue applying patches after resolving a conflict"
+msgstr "пÑ\80одолжиÑ\82Ñ\8c Ð¿Ñ\80именение Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ð¿Ð¾Ñ\81ле Ñ\80азÑ\80еÑ\88ениÑ\8f ÐºÐ¾Ð½Ñ\84иликÑ\82а"
 
-#: builtin/apply.c:4829
-msgid "attempt three-way merge if a patch does not apply"
-msgstr "попытаться сделать трехходовое слияние, если патч не применяется"
+#: builtin/am.c:2301
+msgid "synonyms for --continue"
+msgstr "синоним для --continue"
 
-#: builtin/apply.c:4831
-msgid "build a temporary index based on embedded index information"
-msgstr "построить временный индекс, основанный на встроенной информации об индексе"
+#: builtin/am.c:2304
+msgid "skip the current patch"
+msgstr "пропустить текущий патч"
 
-#: builtin/apply.c:4834 builtin/checkout-index.c:169 builtin/ls-files.c:426
-msgid "paths are separated with NUL character"
-msgstr "пÑ\83Ñ\82и, Ð¾Ñ\82делÑ\91ннÑ\8bе Ð\9dУÐ\9bÐ\95Ð\92ЫÐ\9c Ñ\81имволом"
+#: builtin/am.c:2307
+msgid "restore the original branch and abort the patching operation."
+msgstr "воÑ\81Ñ\81Ñ\82ановиÑ\82Ñ\8c Ð¾Ñ\80игиналÑ\8cнÑ\83Ñ\8e Ð²ÐµÑ\82кÑ\83 Ð¸ Ð¾Ñ\82мениÑ\82Ñ\8c Ð¾Ð¿ÐµÑ\80аÑ\86иÑ\8e Ð¿Ñ\80именениÑ\8f Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹."
 
-#: builtin/apply.c:4836
-msgid "ensure at least <n> lines of context match"
-msgstr "Ñ\83доÑ\81Ñ\82овеÑ\80иÑ\82Ñ\8cÑ\81Ñ\8f, Ñ\87Ñ\82о Ð¿Ð¾ ÐºÑ\80айней Ð¼ÐµÑ\80е <n> Ñ\81Ñ\82Ñ\80ок ÐºÐ¾Ð½Ñ\82екÑ\81Ñ\82а Ñ\81овпадаÑ\8eÑ\82"
+#: builtin/am.c:2311
+msgid "lie about committer date"
+msgstr "Ñ\81овÑ\80аÑ\82Ñ\8c Ð¾ Ð´Ð°Ñ\82е ÐºÐ¾Ð¼Ð¼Ð¸Ñ\82еÑ\80а"
 
-#: builtin/apply.c:4838
-msgid "detect new or modified lines that have whitespace errors"
-msgstr "опÑ\80еделÑ\8fÑ\82Ñ\8c Ð½Ð¾Ð²Ñ\8bе Ð¸Ð»Ð¸ Ð¼Ð¾Ð´Ð¸Ñ\84иÑ\86иÑ\80ованнÑ\8bе Ñ\81Ñ\82Ñ\80оки, Ñ\83 ÐºÐ¾Ñ\82оÑ\80Ñ\8bÑ\85 ÐµÑ\81Ñ\82Ñ\8c Ð¾Ñ\88ибки Ð² Ð¿Ñ\80обелÑ\8cнÑ\8bÑ\85 Ñ\81имволаÑ\85"
+#: builtin/am.c:2313
+msgid "use current timestamp for author date"
+msgstr "иÑ\81полÑ\8cзоваÑ\82Ñ\8c Ñ\82екÑ\83Ñ\89ее Ð²Ñ\80емÑ\8f ÐºÐ°Ðº Ð²Ñ\80емÑ\8f Ð°Ð²Ñ\82оÑ\80Ñ\81Ñ\82ва"
 
-#: builtin/apply.c:4841 builtin/apply.c:4844
-msgid "ignore changes in whitespace when finding context"
-msgstr "игнорировать изменения в пробельных символах при поиске контекста"
+#: builtin/am.c:2315 builtin/commit.c:1605 builtin/merge.c:229
+#: builtin/pull.c:165 builtin/revert.c:92 builtin/tag.c:355
+msgid "key-id"
+msgstr "key-id"
 
-#: builtin/apply.c:4847
-msgid "apply the patch in reverse"
-msgstr "применить патч с обращением изменений"
+#: builtin/am.c:2316
+msgid "GPG-sign commits"
+msgstr "подписать коммиты с помощью GPG"
 
-#: builtin/apply.c:4849
-msgid "don't expect at least one line of context"
-msgstr "не ожидать как минимум одной строки контекста"
+#: builtin/am.c:2319
+msgid "(internal use for git-rebase)"
+msgstr "(внутреннее использование для git-rebase)"
 
-#: builtin/apply.c:4851
-msgid "leave the rejected hunks in corresponding *.rej files"
-msgstr "оставить отклоненные блоки изменений в соответствующих *.rej файлах"
+#: builtin/am.c:2334
+msgid ""
+"The -b/--binary option has been a no-op for long time, and\n"
+"it will be removed. Please do not use it anymore."
+msgstr "Опция -b/--binary уже долгое время ничего не делает и будет удалена с следующих версиях Git. Пожалуйста, не используйте ее."
 
-#: builtin/apply.c:4853
-msgid "allow overlapping hunks"
-msgstr "Ñ\80азÑ\80еÑ\88иÑ\82Ñ\8c Ð¿ÐµÑ\80екÑ\80Ñ\8bваÑ\8eÑ\89иеÑ\81Ñ\8f Ð±Ð»Ð¾ÐºÐ¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹"
+#: builtin/am.c:2341
+msgid "failed to read the index"
+msgstr "Ñ\81бой Ñ\87Ñ\82ениÑ\8f Ð¸Ð½Ð´ÐµÐºÑ\81а"
 
-#: builtin/apply.c:4856
-msgid "tolerate incorrectly detected missing new-line at the end of file"
-msgstr "разрешить некорректно определенные пропущенные пустые строки в конце файла"
+#: builtin/am.c:2356
+#, c-format
+msgid "previous rebase directory %s still exists but mbox given."
+msgstr "предыдущий каталог перемещения %s еще существует, но передан mbox."
 
-#: builtin/apply.c:4859
-msgid "do not trust the line counts in the hunk headers"
-msgstr "не доверять количеству строк из заголовка блока изменений"
+#: builtin/am.c:2380
+#, c-format
+msgid ""
+"Stray %s directory found.\n"
+"Use \"git am --abort\" to remove it."
+msgstr "Найден забытый каталог %s.\nИспользуйте «git am --abort», чтобы удалить его."
 
-#: builtin/apply.c:4862
-msgid "prepend <root> to all filenames"
-msgstr "добавить <корень> спереди ко всем именам файлов"
+#: builtin/am.c:2386
+msgid "Resolve operation not in progress, we are not resuming."
+msgstr "Операция разрешения конфликтов не в процессе выполнения, не продолжаем."
+
+#: builtin/apply.c:8
+msgid "git apply [<options>] [<patch>...]"
+msgstr "git apply [<опции>] [<патч>…]"
 
 #: builtin/archive.c:17
 #, c-format
@@ -3860,112 +4306,160 @@ msgstr "<опции-rev-list> документированы в git-rev-list(1)"
 msgid "Blaming lines"
 msgstr "Просмотр авторов строк"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2577
 msgid "Show blame entries as we find them, incrementally"
 msgstr "Показать записи авторства постепенно, в процессе нахождения"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2578
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "Не показывать SHA-1 для коммитов, не входящих в границы запроса (По умолчанию: отключено)"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2579
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "Не воспринимать корневые коммиты как граничные (По умолчанию: отключено)"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2580
 msgid "Show work cost statistics"
 msgstr "Показать статистику расходов на выполнение запроса"
 
-#: builtin/blame.c:2540
+#: builtin/blame.c:2581
 msgid "Force progress reporting"
 msgstr "Принудительно выводить прогресс выполнения"
 
-#: builtin/blame.c:2541
+#: builtin/blame.c:2582
 msgid "Show output score for blame entries"
 msgstr "Показать оценку для записей авторства"
 
-#: builtin/blame.c:2542
+#: builtin/blame.c:2583
 msgid "Show original filename (Default: auto)"
 msgstr "Показать оригинальное имя файла (По умолчанию: автоматически)"
 
-#: builtin/blame.c:2543
+#: builtin/blame.c:2584
 msgid "Show original linenumber (Default: off)"
 msgstr "Показать оригинальные номера строк (По умолчанию: отключено)"
 
-#: builtin/blame.c:2544
+#: builtin/blame.c:2585
 msgid "Show in a format designed for machine consumption"
 msgstr "Показать в формате для программного разбора"
 
-#: builtin/blame.c:2545
+#: builtin/blame.c:2586
 msgid "Show porcelain format with per-line commit information"
 msgstr "Показать в машиночитаемом формате, с построчной информацией о коммите"
 
-#: builtin/blame.c:2546
+#: builtin/blame.c:2587
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "Использовать такой же формат вывода, как и git-annotate (По умолчанию: отключено)"
 
-#: builtin/blame.c:2547
+#: builtin/blame.c:2588
 msgid "Show raw timestamp (Default: off)"
 msgstr "Показать необработанные временные метки (По умолчанию: отключено)"
 
-#: builtin/blame.c:2548
+#: builtin/blame.c:2589
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Показать длинный SHA1 идентификатор коммита (По умолчанию: отключено)"
 
-#: builtin/blame.c:2549
+#: builtin/blame.c:2590
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Не показывать имя автора и временные метки (По умолчанию: отключено)"
 
-#: builtin/blame.c:2550
+#: builtin/blame.c:2591
 msgid "Show author email instead of name (Default: off)"
 msgstr "Показать почту автора вместо имени (По умолчанию: отключено)"
 
-#: builtin/blame.c:2551
+#: builtin/blame.c:2592
 msgid "Ignore whitespace differences"
 msgstr "Игнорировать различия в пробелах"
 
-#: builtin/blame.c:2552
+#: builtin/blame.c:2599
+msgid "Use an experimental indent-based heuristic to improve diffs"
+msgstr "Использовать эксперементальную эвристику, основанную на отступах, чтобы улучшить файлы различий"
+
+#: builtin/blame.c:2600
+msgid "Use an experimental blank-line-based heuristic to improve diffs"
+msgstr "Использовать эксперементальную эвристику, основанную на пустых строках, чтобы улучшить файлы различий"
+
+#: builtin/blame.c:2602
 msgid "Spend extra cycles to find better match"
 msgstr "Потратить больше времени, для нахождения лучших совпадений"
 
-#: builtin/blame.c:2553
+#: builtin/blame.c:2603
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "Использовать редакции из <файла> вместо вызова git-rev-list"
 
-#: builtin/blame.c:2554
+#: builtin/blame.c:2604
 msgid "Use <file>'s contents as the final image"
 msgstr "Использовать содержимое <файла> как финальный снимок"
 
-#: builtin/blame.c:2555 builtin/blame.c:2556
+#: builtin/blame.c:2605 builtin/blame.c:2606
 msgid "score"
 msgstr "мин-длина"
 
-#: builtin/blame.c:2555
+#: builtin/blame.c:2605
 msgid "Find line copies within and across files"
 msgstr "Найти копирование строк в пределах и между файлами"
 
-#: builtin/blame.c:2556
+#: builtin/blame.c:2606
 msgid "Find line movements within and across files"
 msgstr "Найти перемещения строк в пределах и между файлами"
 
-#: builtin/blame.c:2557
+#: builtin/blame.c:2607
 msgid "n,m"
 msgstr "начало,конец"
 
-#: builtin/blame.c:2557
+#: builtin/blame.c:2607
 msgid "Process only line range n,m, counting from 1"
 msgstr "Обработать только строки в диапазоне начало,конец, начиная с 1"
 
+#: builtin/blame.c:2654
+msgid "--progress can't be used with --incremental or porcelain formats"
+msgstr "--progress нельзя использовать одновременно с --incremental или машиночитаемым (porcelain) форматом"
+
 #. TRANSLATORS: This string is used to tell us the maximum
 #. display width for a relative timestamp in "git blame"
 #. output.  For C locale, "4 years, 11 months ago", which
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2649
+#: builtin/blame.c:2700
 msgid "4 years, 11 months ago"
 msgstr "4 года и 11 месяцев назад"
 
+#: builtin/blame.c:2780
+msgid "--contents and --reverse do not blend well."
+msgstr "--contents и --reverse не очень сочетаются."
+
+#: builtin/blame.c:2800
+msgid "cannot use --contents with final commit object name"
+msgstr "нельзя использовать --contents с указанием финального имени объекта"
+
+#: builtin/blame.c:2805
+msgid "--reverse and --first-parent together require specified latest commit"
+msgstr "при --reverse и --first-parent вместе нужно указывать конкретный последний коммит"
+
+#: builtin/blame.c:2832
+msgid ""
+"--reverse --first-parent together require range along first-parent chain"
+msgstr "при указании --reverse и --first-parent вместе, требуется также указать диапазон по цепочке первого родителя"
+
+#: builtin/blame.c:2843
+#, c-format
+msgid "no such path %s in %s"
+msgstr "нет такого пути %s в %s"
+
+#: builtin/blame.c:2854
+#, c-format
+msgid "cannot read blob %s for path %s"
+msgstr "невозможно прочитать объект %s для пути %s"
+
+#: builtin/blame.c:2873
+#, c-format
+msgid "file %s has only %lu line"
+msgid_plural "file %s has only %lu lines"
+msgstr[0] "файл %s содержит только %lu строку"
+msgstr[1] "файл %s содержит только %lu строки"
+msgstr[2] "файл %s содержит только %lu строк"
+msgstr[3] "файл %s содержит только %lu строки"
+
 #: builtin/branch.c:26
 msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]"
 msgstr "git branch [<опции>] [-r | -a] [--merged | --no-merged]"
@@ -4204,6 +4698,10 @@ msgstr "вышестоящая"
 msgid "change the upstream info"
 msgstr "изменить информацию о вышестоящей ветке"
 
+#: builtin/branch.c:660
+msgid "Unset the upstream info"
+msgstr "Убрать информацию о вышестоящей ветке"
+
 #: builtin/branch.c:661
 msgid "use colored output"
 msgstr "использовать цветной вывод"
@@ -4276,8 +4774,8 @@ msgstr "ключ"
 msgid "field name to sort on"
 msgstr "имя поля, по которому выполнить сортировку"
 
-#: builtin/branch.c:686 builtin/for-each-ref.c:41 builtin/notes.c:402
-#: builtin/notes.c:405 builtin/notes.c:565 builtin/notes.c:568
+#: builtin/branch.c:686 builtin/for-each-ref.c:41 builtin/notes.c:404
+#: builtin/notes.c:407 builtin/notes.c:567 builtin/notes.c:570
 #: builtin/tag.c:369
 msgid "object"
 msgstr "объект"
@@ -4290,7 +4788,7 @@ msgstr "вывод только веток, определенного объе
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Не удалось определить HEAD как действительную ссылку."
 
-#: builtin/branch.c:709 builtin/clone.c:707
+#: builtin/branch.c:709 builtin/clone.c:706
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD не найден в refs/heads!"
 
@@ -4393,61 +4891,75 @@ msgstr "Требуется репозиторий для создания пак
 msgid "Need a repository to unbundle."
 msgstr "Требуется репозиторий для распаковки."
 
-#: builtin/cat-file.c:443
+#: builtin/cat-file.c:513
 msgid ""
-"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-"
-"type]|-e|-p|<type>|--textconv) <object>"
-msgstr "git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|<тип>|--textconv) <объект>"
+"git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | "
+"-p | <type> | --textconv | --filters) [--path=<path>] <object>"
+msgstr "git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <тип> | --textconv | --filters) [--path=<путь>] <объект>"
 
-#: builtin/cat-file.c:444
-msgid "git cat-file (--batch | --batch-check) [--follow-symlinks]"
-msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks]"
+#: builtin/cat-file.c:514
+msgid ""
+"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | "
+"--filters]"
+msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --filters]"
 
-#: builtin/cat-file.c:481
+#: builtin/cat-file.c:551
 msgid "<type> can be one of: blob, tree, commit, tag"
 msgstr "<тип> может быть одним из: blob, tree, commit, tag"
 
-#: builtin/cat-file.c:482
+#: builtin/cat-file.c:552
 msgid "show object type"
 msgstr "показать тип объекта"
 
-#: builtin/cat-file.c:483
+#: builtin/cat-file.c:553
 msgid "show object size"
 msgstr "показать размер объекта"
 
-#: builtin/cat-file.c:485
+#: builtin/cat-file.c:555
 msgid "exit with zero when there's no error"
 msgstr "выйти с нулевым кодом возврата, если нет ошибки"
 
-#: builtin/cat-file.c:486
+#: builtin/cat-file.c:556
 msgid "pretty-print object's content"
 msgstr "структурированный вывод содержимого объекта"
 
-#: builtin/cat-file.c:488
+#: builtin/cat-file.c:558
 msgid "for blob objects, run textconv on object's content"
 msgstr "запустить texconv на содержимом двоичных объектов "
 
-#: builtin/cat-file.c:490
+#: builtin/cat-file.c:560
+msgid "for blob objects, run filters on object's content"
+msgstr "запуск фильтров на содержимом двоичных объектов "
+
+#: builtin/cat-file.c:561 git-submodule.sh:923
+msgid "blob"
+msgstr "двоичный объект"
+
+#: builtin/cat-file.c:562
+msgid "use a specific path for --textconv/--filters"
+msgstr "использовать определенный путь для --textconv/--filters"
+
+#: builtin/cat-file.c:564
 msgid "allow -s and -t to work with broken/corrupt objects"
 msgstr "разрешить -s и -t работать с повреждёнными объектами"
 
-#: builtin/cat-file.c:491
+#: builtin/cat-file.c:565
 msgid "buffer --batch output"
 msgstr "буфферировать вывод --batch"
 
-#: builtin/cat-file.c:493
+#: builtin/cat-file.c:567
 msgid "show info and content of objects fed from the standard input"
 msgstr "показать информацию и содержимое объектов, переданных из стандартного ввода"
 
-#: builtin/cat-file.c:496
+#: builtin/cat-file.c:570
 msgid "show info about objects fed from the standard input"
 msgstr "показать информацию об объектах, переданных из стандартного ввода"
 
-#: builtin/cat-file.c:499
+#: builtin/cat-file.c:573
 msgid "follow in-tree symlinks (used with --batch or --batch-check)"
 msgstr "переходить по символьным ссылкам внутри дерева (используется с опциями --batch и --batch-check)"
 
-#: builtin/cat-file.c:501
+#: builtin/cat-file.c:575
 msgid "show all objects with --batch or --batch-check"
 msgstr "показать все объекты с опциями --batch или --batch-check"
 
@@ -4467,7 +4979,7 @@ msgstr "вывести все атрибуты установленные для
 msgid "use .gitattributes only from the index"
 msgstr "использовать только .gitattributes из индекса"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:98
 msgid "read file names from stdin"
 msgstr "прочитать имена файлов из стандартного ввода"
 
@@ -4475,7 +4987,7 @@ msgstr "прочитать имена файлов из стандартного
 msgid "terminate input and output records by a NUL character"
 msgstr "окончание ввода и вывода записей по НУЛЕВОМУ символу"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1138 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1137 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "не выводить прогресс выполнения"
 
@@ -4565,9 +5077,9 @@ msgid "write the content to temporary files"
 msgstr "записать содержимое во временные файлы"
 
 #: builtin/checkout-index.c:174 builtin/column.c:30
-#: builtin/submodule--helper.c:488 builtin/submodule--helper.c:491
-#: builtin/submodule--helper.c:494 builtin/submodule--helper.c:497
-#: builtin/submodule--helper.c:830 builtin/worktree.c:469
+#: builtin/submodule--helper.c:595 builtin/submodule--helper.c:598
+#: builtin/submodule--helper.c:604 builtin/submodule--helper.c:951
+#: builtin/worktree.c:469
 msgid "string"
 msgstr "строка"
 
@@ -4638,54 +5150,54 @@ msgstr "Нельзя обновлять пути и переключаться 
 msgid "path '%s' is unmerged"
 msgstr "путь «%s» не слит"
 
-#: builtin/checkout.c:495
+#: builtin/checkout.c:494
 msgid "you need to resolve your current index first"
 msgstr "сначала нужно разрешить конфликты в вашем текущем индексе"
 
-#: builtin/checkout.c:625
+#: builtin/checkout.c:624
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
 msgstr "Не удалось создать журнал ссылок для «%s»: %s\n"
 
-#: builtin/checkout.c:664
+#: builtin/checkout.c:663
 msgid "HEAD is now at"
 msgstr "HEAD сейчас на"
 
-#: builtin/checkout.c:668 builtin/clone.c:661
+#: builtin/checkout.c:667 builtin/clone.c:660
 msgid "unable to update HEAD"
 msgstr "не удалось обновить HEAD"
 
-#: builtin/checkout.c:672
+#: builtin/checkout.c:671
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Сброс ветки «%s»\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:674
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Уже на «%s»\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:678
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Переключение и сброс ветки «%s»\n"
 
-#: builtin/checkout.c:681 builtin/checkout.c:1070
+#: builtin/checkout.c:680 builtin/checkout.c:1069
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Переключено на новую ветку «%s»\n"
 
-#: builtin/checkout.c:683
+#: builtin/checkout.c:682
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Переключено на ветку «%s»\n"
 
-#: builtin/checkout.c:734
+#: builtin/checkout.c:733
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " … и еще %d.\n"
 
-#: builtin/checkout.c:740
+#: builtin/checkout.c:739
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4702,7 +5214,7 @@ msgstr[1] "Предупреждение: вы оставляете позади
 msgstr[2] "Предупреждение: вы оставляете позади %d коммитов не соединенные ни с одной из ваших веток:\n\n%s\n"
 msgstr[3] "Предупреждение: вы оставляете позади %d коммитов не соединенные ни с одной из ваших веток:\n\n%s\n"
 
-#: builtin/checkout.c:759
+#: builtin/checkout.c:758
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4721,162 +5233,162 @@ msgstr[1] "Если вы хотите сохранить их с помощью
 msgstr[2] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n"
 msgstr[3] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n"
 
-#: builtin/checkout.c:795
+#: builtin/checkout.c:794
 msgid "internal error in revision walk"
 msgstr "внутренняя ошибка при хождении по редакциям"
 
-#: builtin/checkout.c:799
+#: builtin/checkout.c:798
 msgid "Previous HEAD position was"
 msgstr "Предыдущая позиция HEAD была"
 
-#: builtin/checkout.c:826 builtin/checkout.c:1065
+#: builtin/checkout.c:825 builtin/checkout.c:1064
 msgid "You are on a branch yet to be born"
 msgstr "Вы находитесь на еще не созданной ветке"
 
-#: builtin/checkout.c:971
+#: builtin/checkout.c:970
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "ожидается только одна ссылка, а передано %d."
 
-#: builtin/checkout.c:1011 builtin/worktree.c:214
+#: builtin/checkout.c:1010 builtin/worktree.c:214
 #, c-format
 msgid "invalid reference: %s"
 msgstr "неправильная ссылка: %s"
 
-#: builtin/checkout.c:1040
+#: builtin/checkout.c:1039
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "в дереве нет такой ссылки: %s"
 
-#: builtin/checkout.c:1079
+#: builtin/checkout.c:1078
 msgid "paths cannot be used with switching branches"
 msgstr "нельзя использовать пути при переключении веток"
 
-#: builtin/checkout.c:1082 builtin/checkout.c:1086
+#: builtin/checkout.c:1081 builtin/checkout.c:1085
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "нельзя использовать «%s» при переключении веток"
 
-#: builtin/checkout.c:1090 builtin/checkout.c:1093 builtin/checkout.c:1098
-#: builtin/checkout.c:1101
+#: builtin/checkout.c:1089 builtin/checkout.c:1092 builtin/checkout.c:1097
+#: builtin/checkout.c:1100
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "«%s» нельзя использовать одновременно с «%s»"
 
-#: builtin/checkout.c:1106
+#: builtin/checkout.c:1105
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Нельзя переключить ветку на не коммит «%s»"
 
-#: builtin/checkout.c:1139 builtin/checkout.c:1141 builtin/clone.c:88
+#: builtin/checkout.c:1138 builtin/checkout.c:1140 builtin/clone.c:93
 #: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:324
 #: builtin/worktree.c:326
 msgid "branch"
 msgstr "ветка"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1139
 msgid "create and checkout a new branch"
 msgstr "создать и переключиться на новую ветку"
 
-#: builtin/checkout.c:1142
+#: builtin/checkout.c:1141
 msgid "create/reset and checkout a branch"
 msgstr "создать/сбросить и перключиться на новую ветку"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1142
 msgid "create reflog for new branch"
 msgstr "создать журнал ссылок для новой ветки"
 
-#: builtin/checkout.c:1144 builtin/worktree.c:328
+#: builtin/checkout.c:1143 builtin/worktree.c:328
 msgid "detach HEAD at named commit"
 msgstr "отсоединить HEAD на указанном коммите"
 
-#: builtin/checkout.c:1145
+#: builtin/checkout.c:1144
 msgid "set upstream info for new branch"
 msgstr "установить информацию о вышестоящей ветке для новой ветки"
 
-#: builtin/checkout.c:1147
+#: builtin/checkout.c:1146
 msgid "new-branch"
 msgstr "новая-ветка"
 
-#: builtin/checkout.c:1147
+#: builtin/checkout.c:1146
 msgid "new unparented branch"
 msgstr "новая ветка без родителей"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1147
 msgid "checkout our version for unmerged files"
 msgstr "переключиться на нашу версию для не слитых файлов"
 
-#: builtin/checkout.c:1150
+#: builtin/checkout.c:1149
 msgid "checkout their version for unmerged files"
 msgstr "переключиться на их версию для не слитых файлов"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1151
 msgid "force checkout (throw away local modifications)"
 msgstr "принудительное переключение на состояние (отбрасывает все локальные изменения)"
 
-#: builtin/checkout.c:1153
+#: builtin/checkout.c:1152
 msgid "perform a 3-way merge with the new branch"
 msgstr "выполнить трехходовое слияние с новой веткой"
 
-#: builtin/checkout.c:1154 builtin/merge.c:231
+#: builtin/checkout.c:1153 builtin/merge.c:231
 msgid "update ignored files (default)"
 msgstr "обновить игнорируемые файлы (по умолчанию)"
 
-#: builtin/checkout.c:1155 builtin/log.c:1459 parse-options.h:250
+#: builtin/checkout.c:1154 builtin/log.c:1466 parse-options.h:251
 msgid "style"
 msgstr "стиль"
 
-#: builtin/checkout.c:1156
+#: builtin/checkout.c:1155
 msgid "conflict style (merge or diff3)"
 msgstr "стиль конфликтов слияния (merge или diff3)"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1158
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "не ограничивать спецификаторы пути только частичными записями"
 
-#: builtin/checkout.c:1161
+#: builtin/checkout.c:1160
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "пересмотр «git checkout <нет-такой-ветки>»"
 
-#: builtin/checkout.c:1163
+#: builtin/checkout.c:1162
 msgid "do not check if another worktree is holding the given ref"
 msgstr "не проверять, что другое дерево уже содержит указанную ссылку"
 
-#: builtin/checkout.c:1164 builtin/clone.c:60 builtin/fetch.c:117
-#: builtin/merge.c:228 builtin/pull.c:116 builtin/push.c:536
+#: builtin/checkout.c:1163 builtin/clone.c:63 builtin/fetch.c:119
+#: builtin/merge.c:228 builtin/pull.c:117 builtin/push.c:536
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "принудительно выводить прогресс"
 
-#: builtin/checkout.c:1195
+#: builtin/checkout.c:1194
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B и --orphan нельзя использовать одновременно"
 
-#: builtin/checkout.c:1212
+#: builtin/checkout.c:1211
 msgid "--track needs a branch name"
 msgstr "--track требует имя ветки"
 
-#: builtin/checkout.c:1217
+#: builtin/checkout.c:1216
 msgid "Missing branch name; try -b"
 msgstr "Пропущено имя ветки; попробуйте -b"
 
-#: builtin/checkout.c:1253
+#: builtin/checkout.c:1252
 msgid "invalid path specification"
 msgstr "неправильная спецификация пути"
 
-#: builtin/checkout.c:1260
+#: builtin/checkout.c:1259
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
 "Did you intend to checkout '%s' which can not be resolved as commit?"
 msgstr "Нельзя обновить пути и одновременно переключиться на ветку «%s».\nВы хотели переключиться на «%s», что не может быть определено как коммит?"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1264
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach не принимает путь «%s» как аргумент"
 
-#: builtin/checkout.c:1269
+#: builtin/checkout.c:1268
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -5008,8 +5520,8 @@ msgstr "интерактивная очистка"
 msgid "remove whole directories"
 msgstr "удалить каталоги полностью"
 
-#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:724
-#: builtin/ls-files.c:457 builtin/name-rev.c:314 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:725
+#: builtin/ls-files.c:536 builtin/name-rev.c:313 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "шаблон"
 
@@ -5045,290 +5557,306 @@ msgstr "clean.requireForce установлен по умолчанию как t
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<опции>] [--] <репозиторий> [<каталог>]"
 
-#: builtin/clone.c:62
+#: builtin/clone.c:65
 msgid "don't create a checkout"
 msgstr "не переключать рабочую копию на HEAD"
 
-#: builtin/clone.c:63 builtin/clone.c:65 builtin/init-db.c:476
+#: builtin/clone.c:66 builtin/clone.c:68 builtin/init-db.c:478
 msgid "create a bare repository"
 msgstr "создать голый репозиторий"
 
-#: builtin/clone.c:67
+#: builtin/clone.c:70
 msgid "create a mirror repository (implies bare)"
 msgstr "создать зеркало репозитория (включает в себя и параметр bare)"
 
-#: builtin/clone.c:69
+#: builtin/clone.c:72
 msgid "to clone from a local repository"
 msgstr "для клонирования из локального репозитория"
 
-#: builtin/clone.c:71
+#: builtin/clone.c:74
 msgid "don't use local hardlinks, always copy"
 msgstr "не использовать жесткие ссылки, всегда копировать файлы"
 
-#: builtin/clone.c:73
+#: builtin/clone.c:76
 msgid "setup as shared repository"
 msgstr "настроить как общедоступный репозиторий"
 
-#: builtin/clone.c:75 builtin/clone.c:77
+#: builtin/clone.c:78 builtin/clone.c:80
 msgid "initialize submodules in the clone"
 msgstr "инициализировать подмодули в клоне"
 
-#: builtin/clone.c:79
+#: builtin/clone.c:82
 msgid "number of submodules cloned in parallel"
 msgstr "количество подмодулей, которые будут клонированы парралельно"
 
-#: builtin/clone.c:80 builtin/init-db.c:473
+#: builtin/clone.c:83 builtin/init-db.c:475
 msgid "template-directory"
 msgstr "каталог-шаблонов"
 
-#: builtin/clone.c:81 builtin/init-db.c:474
+#: builtin/clone.c:84 builtin/init-db.c:476
 msgid "directory from which templates will be used"
 msgstr "каталог, шаблоны из которого будут использованы"
 
-#: builtin/clone.c:83 builtin/submodule--helper.c:495
-#: builtin/submodule--helper.c:833
+#: builtin/clone.c:86 builtin/clone.c:88 builtin/submodule--helper.c:602
+#: builtin/submodule--helper.c:954
 msgid "reference repository"
 msgstr "ссылаемый репозиторий"
 
-#: builtin/clone.c:85
+#: builtin/clone.c:90
 msgid "use --reference only while cloning"
 msgstr "используйте --reference только при клонировании"
 
-#: builtin/clone.c:86 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:91 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "имя"
 
-#: builtin/clone.c:87
+#: builtin/clone.c:92
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "использовать <имя> вместо «origin» для отслеживания вышестоящего репозитория"
 
-#: builtin/clone.c:89
+#: builtin/clone.c:94
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "переключиться на <ветку>, вместо HEAD внешнего репозитория"
 
-#: builtin/clone.c:91
+#: builtin/clone.c:96
 msgid "path to git-upload-pack on the remote"
 msgstr "путь к git-upload-pack на внешнем репозитории"
 
-#: builtin/clone.c:92 builtin/fetch.c:118 builtin/grep.c:667
-#: builtin/pull.c:201
+#: builtin/clone.c:97 builtin/fetch.c:120 builtin/grep.c:668
+#: builtin/pull.c:202
 msgid "depth"
 msgstr "глубина"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:98
 msgid "create a shallow clone of that depth"
 msgstr "сделать частичный клон указанной глубины"
 
-#: builtin/clone.c:95
+#: builtin/clone.c:99 builtin/fetch.c:122 builtin/pack-objects.c:2848
+#: parse-options.h:142
+msgid "time"
+msgstr "время"
+
+#: builtin/clone.c:100
+msgid "create a shallow clone since a specific time"
+msgstr "сделать частичный клон до определенного времени"
+
+#: builtin/clone.c:101 builtin/fetch.c:124
+msgid "revision"
+msgstr "редакция"
+
+#: builtin/clone.c:102 builtin/fetch.c:125
+msgid "deepen history of shallow clone by excluding rev"
+msgstr "углубить историю частичного клона исключая редакцию"
+
+#: builtin/clone.c:104
 msgid "clone only one branch, HEAD or --branch"
 msgstr "клонировать только одну ветку, HEAD или --branch"
 
-#: builtin/clone.c:97
+#: builtin/clone.c:106
 msgid "any cloned submodules will be shallow"
 msgstr "все склонированные подмодули будут частичными клонами"
 
-#: builtin/clone.c:98 builtin/init-db.c:482
+#: builtin/clone.c:107 builtin/init-db.c:484
 msgid "gitdir"
 msgstr "каталог-git"
 
-#: builtin/clone.c:99 builtin/init-db.c:483
+#: builtin/clone.c:108 builtin/init-db.c:485
 msgid "separate git dir from working tree"
 msgstr "разместить каталог git отдельно от рабочей копии"
 
-#: builtin/clone.c:100
+#: builtin/clone.c:109
 msgid "key=value"
 msgstr "ключ=значение"
 
-#: builtin/clone.c:101
+#: builtin/clone.c:110
 msgid "set config inside the new repository"
 msgstr "установить параметры внутри нового репозитория"
 
-#: builtin/clone.c:102 builtin/fetch.c:132 builtin/push.c:547
+#: builtin/clone.c:111 builtin/fetch.c:140 builtin/push.c:547
 msgid "use IPv4 addresses only"
 msgstr "использовать только IPv4 адреса"
 
-#: builtin/clone.c:104 builtin/fetch.c:134 builtin/push.c:549
+#: builtin/clone.c:113 builtin/fetch.c:142 builtin/push.c:549
 msgid "use IPv6 addresses only"
 msgstr "использовать только IPv6 адреса"
 
-#: builtin/clone.c:241
+#: builtin/clone.c:250
 msgid ""
 "No directory name could be guessed.\n"
 "Please specify a directory on the command line"
 msgstr "Имя каталога не может быть угадано.\nУкажите имя каталога с помощью параметра командной строки"
 
-#: builtin/clone.c:307
-#, c-format
-msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr "ссылаемый репозиторий «%s» как связанное состояние, пока не поддерживается."
-
-#: builtin/clone.c:309
-#, c-format
-msgid "reference repository '%s' is not a local repository."
-msgstr "ссылаемый репозиторий «%s» не является локальным."
-
-#: builtin/clone.c:314
-#, c-format
-msgid "reference repository '%s' is shallow"
-msgstr "ссылаемый репозиторий «%s» является частичным"
-
-#: builtin/clone.c:317
+#: builtin/clone.c:303
 #, c-format
-msgid "reference repository '%s' is grafted"
-msgstr "ссылаемый репозиторий «%s» является сращенным"
+msgid "info: Could not add alternate for '%s': %s\n"
+msgstr "информация: Не удалось добавить альтернативу для «%s»: %s\n"
 
-#: builtin/clone.c:376
+#: builtin/clone.c:375
 #, c-format
 msgid "failed to open '%s'"
 msgstr "не удалось открыть «%s»"
 
-#: builtin/clone.c:384
+#: builtin/clone.c:383
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s уже существует и не является каталогом"
 
-#: builtin/clone.c:398
+#: builtin/clone.c:397
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "не удалось выполнить stat %s\n"
 
-#: builtin/clone.c:420
+#: builtin/clone.c:419
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "не удалось создать ссылку «%s»"
 
-#: builtin/clone.c:424
+#: builtin/clone.c:423
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "не удалось копировать файл в «%s»"
 
-#: builtin/clone.c:449
+#: builtin/clone.c:448
 #, c-format
 msgid "done.\n"
 msgstr "готово.\n"
 
-#: builtin/clone.c:461
+#: builtin/clone.c:460
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
 "and retry the checkout with 'git checkout -f HEAD'\n"
 msgstr "Клонирование прошло успешно, но во время переключения состояния произошла ошибка.\nС помощь команды «git status» вы можете просмотреть, какие файлы были обновлены, а повторить попытку переключения на ветку с помощью «git checkout -f HEAD»\n"
 
-#: builtin/clone.c:538
+#: builtin/clone.c:537
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "Не удалось найти внешнюю ветку %s для клонирования."
 
-#: builtin/clone.c:633
+#: builtin/clone.c:632
 msgid "remote did not send all necessary objects"
 msgstr "внешний репозиторий прислал не все необходимые объекты"
 
-#: builtin/clone.c:649
+#: builtin/clone.c:648
 #, c-format
 msgid "unable to update %s"
 msgstr "не удалось обновить %s"
 
-#: builtin/clone.c:698
+#: builtin/clone.c:697
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "внешний HEAD ссылается на несуществующую ссылку, нельзя переключиться на такую версию.\n"
 
-#: builtin/clone.c:729
+#: builtin/clone.c:728
 msgid "unable to checkout working tree"
 msgstr "не удалось переключиться на версию в рабочем каталоге"
 
-#: builtin/clone.c:766
+#: builtin/clone.c:768
 msgid "unable to write parameters to config file"
 msgstr "не удалось записать параметры в файл конфигурации"
 
-#: builtin/clone.c:829
+#: builtin/clone.c:831
 msgid "cannot repack to clean up"
 msgstr "не удалось выполнить перепаковку для очистки"
 
-#: builtin/clone.c:831
+#: builtin/clone.c:833
 msgid "cannot unlink temporary alternates file"
 msgstr "не удалось отсоединить временные альтернативные файлы"
 
-#: builtin/clone.c:863 builtin/receive-pack.c:1855
+#: builtin/clone.c:866 builtin/receive-pack.c:1895
 msgid "Too many arguments."
 msgstr "Слишком много аргументов."
 
-#: builtin/clone.c:867
+#: builtin/clone.c:870
 msgid "You must specify a repository to clone."
 msgstr "Вы должны указать репозиторий для клонирования."
 
-#: builtin/clone.c:878
+#: builtin/clone.c:883
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare и --origin %s нельзя использовать одновременно."
 
-#: builtin/clone.c:881
+#: builtin/clone.c:886
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare и --separate-git-dir нельзя использовать одновременно."
 
-#: builtin/clone.c:894
+#: builtin/clone.c:899
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "репозиторий «%s» не существует"
 
-#: builtin/clone.c:900 builtin/fetch.c:1293
+#: builtin/clone.c:905 builtin/fetch.c:1338
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "глубина %s не является положительным числом"
 
-#: builtin/clone.c:910
+#: builtin/clone.c:915
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "целевой путь «%s» уже существует и не является пустым каталогом."
 
-#: builtin/clone.c:920
+#: builtin/clone.c:925
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "рабочий каталог «%s» уже существует."
 
-#: builtin/clone.c:935 builtin/clone.c:946 builtin/submodule--helper.c:544
+#: builtin/clone.c:940 builtin/clone.c:951 builtin/submodule--helper.c:657
 #: builtin/worktree.c:222 builtin/worktree.c:249
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "не удалось создать родительские каталоги для «%s»"
 
-#: builtin/clone.c:938
+#: builtin/clone.c:943
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "не удалось создать рабочий каталог «%s»"
 
-#: builtin/clone.c:956
+#: builtin/clone.c:955
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Клонирование в голый репозиторий «%s»…\n"
 
-#: builtin/clone.c:958
+#: builtin/clone.c:957
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Клонирование в «%s»…\n"
 
-#: builtin/clone.c:997
+#: builtin/clone.c:963
+msgid ""
+"clone --recursive is not compatible with both --reference and --reference-"
+"if-able"
+msgstr "клонирование с параметром --recursive нельзя использовать одновременно ни с --reference, ни с --reference-if-able"
+
+#: builtin/clone.c:1019
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth игнорируется на локальных клонах; вместо этого используйте file://."
 
-#: builtin/clone.c:1000
+#: builtin/clone.c:1021
+msgid "--shallow-since is ignored in local clones; use file:// instead."
+msgstr "--shallow-since игнорируется на локальных клонах; используйте file:// вместо этого."
+
+#: builtin/clone.c:1023
+msgid "--shallow-exclude is ignored in local clones; use file:// instead."
+msgstr "--shallow-exclude игнорируется на локальных клонах; используйте file:// вместо этого."
+
+#: builtin/clone.c:1026
 msgid "source repository is shallow, ignoring --local"
 msgstr "исходный репозиторий является частичным, --local игнорируется"
 
-#: builtin/clone.c:1005
+#: builtin/clone.c:1031
 msgid "--local is ignored"
 msgstr "--local игнорируется"
 
-#: builtin/clone.c:1009
+#: builtin/clone.c:1035
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Не знаю как клонировать %s"
 
-#: builtin/clone.c:1058 builtin/clone.c:1066
+#: builtin/clone.c:1090 builtin/clone.c:1098
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "Внешняя ветка %s не найдена в вышестоящем репозитории %s"
 
-#: builtin/clone.c:1069
+#: builtin/clone.c:1101
 msgid "You appear to have cloned an empty repository."
 msgstr "Похоже, что вы клонировали пустой репозиторий."
 
@@ -5431,103 +5959,103 @@ msgid ""
 "the remaining commits.\n"
 msgstr "Если вы хотите пропустит этот коммит, используйте команду:\n\n    git reset\n\nПосле этого «git cherry-pick --continue» продолжит копирование оставшихся коммитов.\n"
 
-#: builtin/commit.c:308
+#: builtin/commit.c:318
 msgid "failed to unpack HEAD tree object"
 msgstr "сбой распаковки объекта дерева HEAD"
 
-#: builtin/commit.c:349
+#: builtin/commit.c:359
 msgid "unable to create temporary index"
 msgstr "не удалось создать временный индекс"
 
-#: builtin/commit.c:355
+#: builtin/commit.c:365
 msgid "interactive add failed"
 msgstr "сбой интерактивного добавления"
 
-#: builtin/commit.c:368
+#: builtin/commit.c:378
 msgid "unable to update temporary index"
 msgstr "не удалось обновить временный индекс"
 
-#: builtin/commit.c:370
+#: builtin/commit.c:380
 msgid "Failed to update main cache tree"
 msgstr "Сбой при обновлении основного кэша дерева"
 
-#: builtin/commit.c:394 builtin/commit.c:417 builtin/commit.c:466
+#: builtin/commit.c:404 builtin/commit.c:427 builtin/commit.c:476
 msgid "unable to write new_index file"
 msgstr "не удалось записать файл new_index"
 
-#: builtin/commit.c:448
+#: builtin/commit.c:458
 msgid "cannot do a partial commit during a merge."
 msgstr "нельзя создать частичный коммит во время слияния."
 
-#: builtin/commit.c:450
+#: builtin/commit.c:460
 msgid "cannot do a partial commit during a cherry-pick."
 msgstr "нельзя создать частичный коммит во время копирования коммита."
 
-#: builtin/commit.c:459
+#: builtin/commit.c:469
 msgid "cannot read the index"
 msgstr "не удалось прочитать индекс"
 
-#: builtin/commit.c:478
+#: builtin/commit.c:488
 msgid "unable to write temporary index file"
 msgstr "не удалось записать временный файл индекса"
 
-#: builtin/commit.c:583
+#: builtin/commit.c:582
 #, c-format
 msgid "commit '%s' lacks author header"
 msgstr "у коммита «%s» отсутствует автор в заголовке"
 
-#: builtin/commit.c:585
+#: builtin/commit.c:584
 #, c-format
 msgid "commit '%s' has malformed author line"
 msgstr "у коммита «%s» строка автора в неправильном формате"
 
-#: builtin/commit.c:604
+#: builtin/commit.c:603
 msgid "malformed --author parameter"
 msgstr "параметр --author в неправильном формате"
 
-#: builtin/commit.c:612
+#: builtin/commit.c:611
 #, c-format
 msgid "invalid date format: %s"
 msgstr "неправильный формат даты: %s"
 
-#: builtin/commit.c:656
+#: builtin/commit.c:655
 msgid ""
 "unable to select a comment character that is not used\n"
 "in the current commit message"
 msgstr "нельзя выбрать символ комментария, который\nне используется в текущем сообщении коммита"
 
-#: builtin/commit.c:693 builtin/commit.c:726 builtin/commit.c:1092
+#: builtin/commit.c:692 builtin/commit.c:725 builtin/commit.c:1096
 #, c-format
 msgid "could not lookup commit %s"
 msgstr "не удалось запросить коммит %s"
 
-#: builtin/commit.c:705 builtin/shortlog.c:286
+#: builtin/commit.c:704 builtin/shortlog.c:286
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(чтение файла журнала из стандартного ввода)\n"
 
-#: builtin/commit.c:707
+#: builtin/commit.c:706
 msgid "could not read log from standard input"
 msgstr "не удалось прочитать файл журнала из стандартного ввода"
 
-#: builtin/commit.c:711
+#: builtin/commit.c:710
 #, c-format
 msgid "could not read log file '%s'"
 msgstr "не удалось прочитать файл журнала «%s»"
 
-#: builtin/commit.c:738 builtin/commit.c:746
+#: builtin/commit.c:737 builtin/commit.c:745
 msgid "could not read SQUASH_MSG"
 msgstr "не удалось прочитать SQUASH_MSG"
 
-#: builtin/commit.c:743
+#: builtin/commit.c:742
 msgid "could not read MERGE_MSG"
 msgstr "не удалось прочитать MERGE_MSG"
 
-#: builtin/commit.c:797
+#: builtin/commit.c:796
 msgid "could not write commit template"
 msgstr "не удалось записать шаблон описания коммита"
 
-#: builtin/commit.c:815
+#: builtin/commit.c:814
 #, c-format
 msgid ""
 "\n"
@@ -5537,7 +6065,7 @@ msgid ""
 "and try again.\n"
 msgstr "\nПохоже, что вы пытаетесь закоммитить слияние.\nЕсли это ошибка, пожалуйста удалите файл\n\t%s\nи попробуйте снова.\n"
 
-#: builtin/commit.c:820
+#: builtin/commit.c:819
 #, c-format
 msgid ""
 "\n"
@@ -5547,14 +6075,14 @@ msgid ""
 "and try again.\n"
 msgstr "\nПохоже, что вы пытаетесь закоммитить при копировании коммита.\nЕсли это не так, то удалите файл\n\t%s\nи попробуйте снова.\n"
 
-#: builtin/commit.c:833
+#: builtin/commit.c:832
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
 "with '%c' will be ignored, and an empty message aborts the commit.\n"
 msgstr "Пожалуйста, введите сообщение коммита для ваших изменений. Строки,\nначинающиеся с «%c» будут проигнорированы, а пустое сообщение\nотменяет процесс коммита.\n"
 
-#: builtin/commit.c:840
+#: builtin/commit.c:839
 #, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
@@ -5562,341 +6090,345 @@ msgid ""
 "An empty message aborts the commit.\n"
 msgstr "Пожалуйста, введите сообщение коммита для ваших изменений. Строки,\nначинающиеся с «%c» будут оставлены; вы можете удалить их вручную,\nесли хотите. Пустое сообщение отменяет процесс коммита.\n"
 
-#: builtin/commit.c:860
+#: builtin/commit.c:859
 #, c-format
 msgid "%sAuthor:    %.*s <%.*s>"
 msgstr "%sАвтор:     %.*s <%.*s>"
 
-#: builtin/commit.c:868
+#: builtin/commit.c:867
 #, c-format
 msgid "%sDate:      %s"
 msgstr "%sДата:      %s"
 
-#: builtin/commit.c:875
+#: builtin/commit.c:874
 #, c-format
 msgid "%sCommitter: %.*s <%.*s>"
 msgstr "%sКоммитер:  %.*s <%.*s>"
 
-#: builtin/commit.c:893
+#: builtin/commit.c:892
 msgid "Cannot read index"
 msgstr "Не удалось прочитать индекс"
 
-#: builtin/commit.c:950
+#: builtin/commit.c:954
 msgid "Error building trees"
 msgstr "Ошибка при построении деревьев"
 
-#: builtin/commit.c:965 builtin/tag.c:266
+#: builtin/commit.c:969 builtin/tag.c:266
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "Пожалуйста, укажите сообщение, при указании опций -m или -F.\n"
 
-#: builtin/commit.c:1067
+#: builtin/commit.c:1071
 #, c-format
 msgid "--author '%s' is not 'Name <email>' and matches no existing author"
 msgstr "--author «%s» не в формате «Имя <почта>» и не совпадает с существующим автором"
 
-#: builtin/commit.c:1082 builtin/commit.c:1322
+#: builtin/commit.c:1086 builtin/commit.c:1327
 #, c-format
 msgid "Invalid untracked files mode '%s'"
 msgstr "Неправильный режим неотслеживаемых файлов «%s»"
 
-#: builtin/commit.c:1119
+#: builtin/commit.c:1124
 msgid "--long and -z are incompatible"
 msgstr "--long и -z нельзя использовать одновременно"
 
-#: builtin/commit.c:1149
+#: builtin/commit.c:1154
 msgid "Using both --reset-author and --author does not make sense"
 msgstr "Указание одновременно опций --reset-author и --author не имеет смысла"
 
-#: builtin/commit.c:1158
+#: builtin/commit.c:1163
 msgid "You have nothing to amend."
 msgstr "Нечего исправлять."
 
-#: builtin/commit.c:1161
+#: builtin/commit.c:1166
 msgid "You are in the middle of a merge -- cannot amend."
 msgstr "Вы в процессе слияния —  сейчас нельзя исправлять."
 
-#: builtin/commit.c:1163
+#: builtin/commit.c:1168
 msgid "You are in the middle of a cherry-pick -- cannot amend."
 msgstr "Вы в процессе копирования коммита —  сейчас нельзя исправлять."
 
-#: builtin/commit.c:1166
+#: builtin/commit.c:1171
 msgid "Options --squash and --fixup cannot be used together"
 msgstr "Опции --squash и --fixup не могут использоваться одновременно"
 
-#: builtin/commit.c:1176
+#: builtin/commit.c:1181
 msgid "Only one of -c/-C/-F/--fixup can be used."
 msgstr "Может использоваться только одна из опций -c/-C/-F/--fixup."
 
-#: builtin/commit.c:1178
+#: builtin/commit.c:1183
 msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
 msgstr "Опция -m не может использоваться с -c/-C/-F/--fixup."
 
-#: builtin/commit.c:1186
+#: builtin/commit.c:1191
 msgid "--reset-author can be used only with -C, -c or --amend."
 msgstr "--reset-author может использоваться только одновременно с опциями -C, -c или --amend."
 
-#: builtin/commit.c:1203
+#: builtin/commit.c:1208
 msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
 msgstr "Может использоваться только одна из опций --include/--only/--all/--interactive/--patch."
 
-#: builtin/commit.c:1205
+#: builtin/commit.c:1210
 msgid "No paths with --include/--only does not make sense."
 msgstr "Указание путей каталогов с опциями --include/--only не имеет смысла."
 
-#: builtin/commit.c:1207
+#: builtin/commit.c:1212
 msgid "Clever... amending the last one with dirty index."
 msgstr "Умно… отмена последнего с измененным индексом."
 
-#: builtin/commit.c:1209
+#: builtin/commit.c:1214
 msgid "Explicit paths specified without -i or -o; assuming --only paths..."
 msgstr "Пути явно указаны пути без опций -i или -o; предполагаю опцию --only…"
 
-#: builtin/commit.c:1221 builtin/tag.c:474
+#: builtin/commit.c:1226 builtin/tag.c:474
 #, c-format
 msgid "Invalid cleanup mode %s"
 msgstr "Неправильное значение режима очистки %s"
 
-#: builtin/commit.c:1226
+#: builtin/commit.c:1231
 msgid "Paths with -a does not make sense."
 msgstr "С опцией -a указание пути не имеет смысла."
 
-#: builtin/commit.c:1336 builtin/commit.c:1622
+#: builtin/commit.c:1341 builtin/commit.c:1617
 msgid "show status concisely"
 msgstr "кратко показать статус"
 
-#: builtin/commit.c:1338 builtin/commit.c:1624
+#: builtin/commit.c:1343 builtin/commit.c:1619
 msgid "show branch information"
 msgstr "показать информацию о версии"
 
-#: builtin/commit.c:1340 builtin/commit.c:1626 builtin/push.c:522
+#: builtin/commit.c:1345
+msgid "version"
+msgstr "версия"
+
+#: builtin/commit.c:1345 builtin/commit.c:1621 builtin/push.c:522
 #: builtin/worktree.c:440
 msgid "machine-readable output"
 msgstr "машиночитаемый вывод"
 
-#: builtin/commit.c:1343 builtin/commit.c:1628
+#: builtin/commit.c:1348 builtin/commit.c:1623
 msgid "show status in long format (default)"
 msgstr "показать статус в длинном формате (по умолчанию)"
 
-#: builtin/commit.c:1346 builtin/commit.c:1631
+#: builtin/commit.c:1351 builtin/commit.c:1626
 msgid "terminate entries with NUL"
 msgstr "завершать записи НУЛЕВЫМ байтом"
 
-#: builtin/commit.c:1348 builtin/commit.c:1634 builtin/fast-export.c:981
+#: builtin/commit.c:1353 builtin/commit.c:1629 builtin/fast-export.c:981
 #: builtin/fast-export.c:984 builtin/tag.c:353
 msgid "mode"
 msgstr "режим"
 
-#: builtin/commit.c:1349 builtin/commit.c:1634
+#: builtin/commit.c:1354 builtin/commit.c:1629
 msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
 msgstr "показать неотслеживаемые файлы, опциональные режимы: all (все), normal (как обычно), no (нет). (По умолчанию: all)"
 
-#: builtin/commit.c:1352
+#: builtin/commit.c:1357
 msgid "show ignored files"
 msgstr "показать игнорируемые файлы"
 
-#: builtin/commit.c:1353 parse-options.h:155
+#: builtin/commit.c:1358 parse-options.h:155
 msgid "when"
 msgstr "когда"
 
-#: builtin/commit.c:1354
+#: builtin/commit.c:1359
 msgid ""
 "ignore changes to submodules, optional when: all, dirty, untracked. "
 "(Default: all)"
 msgstr "игнорировать изменения в подмодулях, опционально когда: all (всегда), dirty (измененные), untracked (неотслеживаемые). (По умолчанию: all)"
 
-#: builtin/commit.c:1356
+#: builtin/commit.c:1361
 msgid "list untracked files in columns"
 msgstr "показать неотслеживаемые файлы по столбцам"
 
-#: builtin/commit.c:1442
+#: builtin/commit.c:1437
 msgid "couldn't look up newly created commit"
 msgstr "нельзя запросить новосозданный коммит"
 
-#: builtin/commit.c:1444
+#: builtin/commit.c:1439
 msgid "could not parse newly created commit"
 msgstr "нельзя разобрать новосозданный коммит"
 
-#: builtin/commit.c:1489
+#: builtin/commit.c:1484
 msgid "detached HEAD"
 msgstr "отделённый HEAD"
 
-#: builtin/commit.c:1492
+#: builtin/commit.c:1487
 msgid " (root-commit)"
 msgstr " (корневой коммит)"
 
-#: builtin/commit.c:1592
+#: builtin/commit.c:1587
 msgid "suppress summary after successful commit"
 msgstr "не выводить сводку после успешного коммита"
 
-#: builtin/commit.c:1593
+#: builtin/commit.c:1588
 msgid "show diff in commit message template"
 msgstr "добавить список изменений в шаблон сообщения коммита"
 
-#: builtin/commit.c:1595
+#: builtin/commit.c:1590
 msgid "Commit message options"
 msgstr "Опции сообщения коммита"
 
-#: builtin/commit.c:1596 builtin/tag.c:351
+#: builtin/commit.c:1591 builtin/tag.c:351
 msgid "read message from file"
 msgstr "прочитать сообщение из файла"
 
-#: builtin/commit.c:1597
+#: builtin/commit.c:1592
 msgid "author"
 msgstr "автор"
 
-#: builtin/commit.c:1597
+#: builtin/commit.c:1592
 msgid "override author for commit"
 msgstr "подменить автора коммита"
 
-#: builtin/commit.c:1598 builtin/gc.c:326
+#: builtin/commit.c:1593 builtin/gc.c:326
 msgid "date"
 msgstr "дата"
 
-#: builtin/commit.c:1598
+#: builtin/commit.c:1593
 msgid "override date for commit"
 msgstr "подменить дату коммита"
 
-#: builtin/commit.c:1599 builtin/merge.c:220 builtin/notes.c:396
-#: builtin/notes.c:559 builtin/tag.c:349
+#: builtin/commit.c:1594 builtin/merge.c:220 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/tag.c:349
 msgid "message"
 msgstr "сообщение"
 
-#: builtin/commit.c:1599
+#: builtin/commit.c:1594
 msgid "commit message"
 msgstr "сообщение коммита"
 
-#: builtin/commit.c:1600 builtin/commit.c:1601 builtin/commit.c:1602
-#: builtin/commit.c:1603 parse-options.h:256 ref-filter.h:79
+#: builtin/commit.c:1595 builtin/commit.c:1596 builtin/commit.c:1597
+#: builtin/commit.c:1598 parse-options.h:257 ref-filter.h:79
 msgid "commit"
 msgstr "коммит"
 
-#: builtin/commit.c:1600
+#: builtin/commit.c:1595
 msgid "reuse and edit message from specified commit"
 msgstr "использовать и отредактировать сообщение от указанного коммита"
 
-#: builtin/commit.c:1601
+#: builtin/commit.c:1596
 msgid "reuse message from specified commit"
 msgstr "использовать сообщение указанного коммита"
 
-#: builtin/commit.c:1602
+#: builtin/commit.c:1597
 msgid "use autosquash formatted message to fixup specified commit"
 msgstr "использовать форматированное сообщение автоуплотнения для исправления указанного коммита"
 
-#: builtin/commit.c:1603
+#: builtin/commit.c:1598
 msgid "use autosquash formatted message to squash specified commit"
 msgstr "использовать форматированное сообщение автоуплотнения для уплотнения указанного коммита"
 
-#: builtin/commit.c:1604
+#: builtin/commit.c:1599
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "коммит теперь за моим авторством (с использованием -C/-c/--amend)"
 
-#: builtin/commit.c:1605 builtin/log.c:1409 builtin/revert.c:86
+#: builtin/commit.c:1600 builtin/log.c:1413 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "добавить Signed-off-by:"
 
-#: builtin/commit.c:1606
+#: builtin/commit.c:1601
 msgid "use specified template file"
 msgstr "использовать указанный файл шаблона"
 
-#: builtin/commit.c:1607
+#: builtin/commit.c:1602
 msgid "force edit of commit"
 msgstr "принудительно редактировать коммит"
 
-#: builtin/commit.c:1608
+#: builtin/commit.c:1603
 msgid "default"
 msgstr "по-умолчанию"
 
-#: builtin/commit.c:1608 builtin/tag.c:354
+#: builtin/commit.c:1603 builtin/tag.c:354
 msgid "how to strip spaces and #comments from message"
 msgstr "как удалять пробелы и #комментарии из сообщения коммита"
 
-#: builtin/commit.c:1609
+#: builtin/commit.c:1604
 msgid "include status in commit message template"
 msgstr "включить статус файлов в шаблон сообщения коммита"
 
-#: builtin/commit.c:1611 builtin/merge.c:230 builtin/pull.c:165
+#: builtin/commit.c:1606 builtin/merge.c:230 builtin/pull.c:166
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "подписать коммит с помощью GPG"
 
-#: builtin/commit.c:1614
+#: builtin/commit.c:1609
 msgid "Commit contents options"
 msgstr "Опции содержимого коммита"
 
-#: builtin/commit.c:1615
+#: builtin/commit.c:1610
 msgid "commit all changed files"
 msgstr "закоммитить все измененные файлы"
 
-#: builtin/commit.c:1616
+#: builtin/commit.c:1611
 msgid "add specified files to index for commit"
 msgstr "добавить указанные файлы в индекс для коммита"
 
-#: builtin/commit.c:1617
+#: builtin/commit.c:1612
 msgid "interactively add files"
 msgstr "интерактивное добавление файлов"
 
-#: builtin/commit.c:1618
+#: builtin/commit.c:1613
 msgid "interactively add changes"
 msgstr "интерактивное добавление изменений"
 
-#: builtin/commit.c:1619
+#: builtin/commit.c:1614
 msgid "commit only specified files"
 msgstr "закоммитить только указанные файлы"
 
-#: builtin/commit.c:1620
+#: builtin/commit.c:1615
 msgid "bypass pre-commit and commit-msg hooks"
 msgstr "пропустить перехватчик pre-commit и commit-msg"
 
-#: builtin/commit.c:1621
+#: builtin/commit.c:1616
 msgid "show what would be committed"
 msgstr "показать, что будет закоммичено"
 
-#: builtin/commit.c:1632
+#: builtin/commit.c:1627
 msgid "amend previous commit"
 msgstr "исправить предыдущий коммит"
 
-#: builtin/commit.c:1633
+#: builtin/commit.c:1628
 msgid "bypass post-rewrite hook"
 msgstr "пропустить перехватчик post-rewrite"
 
-#: builtin/commit.c:1638
+#: builtin/commit.c:1633
 msgid "ok to record an empty change"
 msgstr "разрешить запись пустого коммита"
 
-#: builtin/commit.c:1640
+#: builtin/commit.c:1635
 msgid "ok to record a change with an empty message"
 msgstr "разрешить запись изменений с пустым сообщением"
 
-#: builtin/commit.c:1669
+#: builtin/commit.c:1664
 msgid "could not parse HEAD commit"
 msgstr "не удалось разобрать HEAD коммит"
 
-#: builtin/commit.c:1719
+#: builtin/commit.c:1712
 #, c-format
 msgid "Corrupt MERGE_HEAD file (%s)"
 msgstr "Файл MERGE_HEAD поврежден (%s)"
 
-#: builtin/commit.c:1726
+#: builtin/commit.c:1719
 msgid "could not read MERGE_MODE"
 msgstr "не удалось прочитать MERGE_MODE"
 
-#: builtin/commit.c:1745
+#: builtin/commit.c:1738
 #, c-format
 msgid "could not read commit message: %s"
 msgstr "не удалось открыть сообщение коммита: %s"
 
-#: builtin/commit.c:1756
+#: builtin/commit.c:1749
 #, c-format
 msgid "Aborting commit; you did not edit the message.\n"
 msgstr "Отмена коммита; вы не изменили сообщение.\n"
 
-#: builtin/commit.c:1761
+#: builtin/commit.c:1754
 #, c-format
 msgid "Aborting commit due to empty commit message.\n"
 msgstr "Отмена коммита из-за пустого сообщения коммита.\n"
 
-#: builtin/commit.c:1809
+#: builtin/commit.c:1802
 msgid ""
 "Repository has been updated, but unable to write\n"
 "new_index file. Check that disk is not full and quota is\n"
@@ -6054,11 +6586,18 @@ msgstr "# Это файл конфигурации пользователя Git.
 msgid "cannot create configuration file %s"
 msgstr "не удалось создать файл конфигурации %s"
 
-#: builtin/count-objects.c:77
+#: builtin/config.c:625
+#, c-format
+msgid ""
+"cannot overwrite multiple values with a single value\n"
+"       Use a regexp, --add or --replace-all to change %s."
+msgstr "нельзя перезаписать несколько значений одним\n       Используйте регулярные выражения, параметры --add или --replace-all, чтобы изменить %s."
+
+#: builtin/count-objects.c:86
 msgid "git count-objects [-v] [-H | --human-readable]"
 msgstr "git count-objects [-v] [-H | --human-readable]"
 
-#: builtin/count-objects.c:87
+#: builtin/count-objects.c:96
 msgid "print sizes in human readable format"
 msgstr "вывод размеров в удобочитаемом для человека виде"
 
@@ -6172,7 +6711,7 @@ msgstr "рассматривать последние <n> меток (по ум
 msgid "only consider tags matching <pattern>"
 msgstr "рассматривать только метки по <шаблону>"
 
-#: builtin/describe.c:410 builtin/name-rev.c:321
+#: builtin/describe.c:410 builtin/name-rev.c:320
 msgid "show abbreviated commit object as fallback"
 msgstr "если не найдено, показать сокращенный номер редакции коммита"
 
@@ -6206,21 +6745,21 @@ msgstr "«%s»: не является обычным файлом или сим
 msgid "invalid option: %s"
 msgstr "неправильный параметр: %s"
 
-#: builtin/diff.c:360
+#: builtin/diff.c:361
 msgid "Not a git repository"
 msgstr "Не найден git репозитоий"
 
-#: builtin/diff.c:403
+#: builtin/diff.c:404
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "передан неправильный объект «%s»."
 
-#: builtin/diff.c:412
+#: builtin/diff.c:413
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "передано больше двух двоичных объектов: «%s»"
 
-#: builtin/diff.c:419
+#: builtin/diff.c:420
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "передан необработанный объект «%s»."
@@ -6293,247 +6832,259 @@ msgstr "git fetch --multiple [<опции>] [(<репозиторий> | <гру
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<опции>]"
 
-#: builtin/fetch.c:93 builtin/pull.c:174
+#: builtin/fetch.c:95 builtin/pull.c:175
 msgid "fetch from all remotes"
 msgstr "извлечь со всех внешних репозиториев"
 
-#: builtin/fetch.c:95 builtin/pull.c:177
+#: builtin/fetch.c:97 builtin/pull.c:178
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "дописать к .git/FETCH_HEAD вместо перезаписи"
 
-#: builtin/fetch.c:97 builtin/pull.c:180
+#: builtin/fetch.c:99 builtin/pull.c:181
 msgid "path to upload pack on remote end"
 msgstr "путь к программе упаковки пакета на машине с внешним репозиторием"
 
-#: builtin/fetch.c:98 builtin/pull.c:182
+#: builtin/fetch.c:100 builtin/pull.c:183
 msgid "force overwrite of local branch"
 msgstr "принудительная перезапись локальной ветки"
 
-#: builtin/fetch.c:100
+#: builtin/fetch.c:102
 msgid "fetch from multiple remotes"
 msgstr "извлечь с нескольких внешних репозиториев"
 
-#: builtin/fetch.c:102 builtin/pull.c:184
+#: builtin/fetch.c:104 builtin/pull.c:185
 msgid "fetch all tags and associated objects"
 msgstr "извлечь все метки и связанные объекты"
 
-#: builtin/fetch.c:104
+#: builtin/fetch.c:106
 msgid "do not fetch all tags (--no-tags)"
 msgstr "не извлекать все метки (--no-tags)"
 
-#: builtin/fetch.c:106
+#: builtin/fetch.c:108
 msgid "number of submodules fetched in parallel"
 msgstr "количество подмодулей, которые будут скачаны парралельно"
 
-#: builtin/fetch.c:108 builtin/pull.c:187
+#: builtin/fetch.c:110 builtin/pull.c:188
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "почистить отслеживаемые внешние ветки, которых уже нет на внешнем репозитории"
 
-#: builtin/fetch.c:109 builtin/pull.c:190
+#: builtin/fetch.c:111 builtin/pull.c:191
 msgid "on-demand"
 msgstr "по требованию"
 
-#: builtin/fetch.c:110 builtin/pull.c:191
+#: builtin/fetch.c:112 builtin/pull.c:192
 msgid "control recursive fetching of submodules"
 msgstr "управление рекурсивным извлечением подмодулей"
 
-#: builtin/fetch.c:114 builtin/pull.c:199
+#: builtin/fetch.c:116 builtin/pull.c:200
 msgid "keep downloaded pack"
 msgstr "оставить загруженный пакет данных"
 
-#: builtin/fetch.c:116
+#: builtin/fetch.c:118
 msgid "allow updating of HEAD ref"
 msgstr "разрешить обновление ссылки HEAD"
 
-#: builtin/fetch.c:119 builtin/pull.c:202
+#: builtin/fetch.c:121 builtin/fetch.c:127 builtin/pull.c:203
 msgid "deepen history of shallow clone"
-msgstr "глубокая история частичного клона"
+msgstr "улугубить историю частичного клона"
 
-#: builtin/fetch.c:121 builtin/pull.c:205
+#: builtin/fetch.c:123
+msgid "deepen history of shallow repository based on time"
+msgstr "углубить историю частичного клона основываясь на времени"
+
+#: builtin/fetch.c:129 builtin/pull.c:206
 msgid "convert to a complete repository"
 msgstr "преобразовать в полный репозиторий"
 
-#: builtin/fetch.c:123 builtin/log.c:1426
+#: builtin/fetch.c:131 builtin/log.c:1433
 msgid "dir"
 msgstr "каталог"
 
-#: builtin/fetch.c:124
+#: builtin/fetch.c:132
 msgid "prepend this to submodule path output"
 msgstr "присоединять это спереди к выводу путей подмодуля"
 
-#: builtin/fetch.c:127
+#: builtin/fetch.c:135
 msgid "default mode for recursion"
 msgstr "режим по умолчанию для рекурсии"
 
-#: builtin/fetch.c:129 builtin/pull.c:208
+#: builtin/fetch.c:137 builtin/pull.c:209
 msgid "accept refs that update .git/shallow"
 msgstr "принимать ссылки, которые обновляют .git/shallow"
 
-#: builtin/fetch.c:130 builtin/pull.c:210
+#: builtin/fetch.c:138 builtin/pull.c:211
 msgid "refmap"
 msgstr "соответствие-ссылок"
 
-#: builtin/fetch.c:131 builtin/pull.c:211
+#: builtin/fetch.c:139 builtin/pull.c:212
 msgid "specify fetch refmap"
 msgstr "указать соответствие ссылок при извлечении"
 
-#: builtin/fetch.c:387
+#: builtin/fetch.c:398
 msgid "Couldn't find remote ref HEAD"
 msgstr "Не удалось найти ссылку HEAD на внешнем репозитории"
 
-#: builtin/fetch.c:503
+#: builtin/fetch.c:514
 #, c-format
 msgid "configuration fetch.output contains invalid value %s"
 msgstr "опция fetch.output содержит неправильное значение для %s"
 
-#: builtin/fetch.c:592
+#: builtin/fetch.c:607
 #, c-format
 msgid "object %s not found"
 msgstr "объект %s не найден"
 
-#: builtin/fetch.c:596
+#: builtin/fetch.c:611
 msgid "[up to date]"
 msgstr "[актуально]"
 
-#: builtin/fetch.c:609 builtin/fetch.c:689
+#: builtin/fetch.c:624 builtin/fetch.c:704
 msgid "[rejected]"
 msgstr "[отклонено]"
 
-#: builtin/fetch.c:610
+#: builtin/fetch.c:625
 msgid "can't fetch in current branch"
 msgstr "нельзя извлечь текущую ветку"
 
-#: builtin/fetch.c:619
+#: builtin/fetch.c:634
 msgid "[tag update]"
 msgstr "[обновление метки]"
 
-#: builtin/fetch.c:620 builtin/fetch.c:653 builtin/fetch.c:669
-#: builtin/fetch.c:684
+#: builtin/fetch.c:635 builtin/fetch.c:668 builtin/fetch.c:684
+#: builtin/fetch.c:699
 msgid "unable to update local ref"
 msgstr "не удалось обновить локальную ссылку"
 
-#: builtin/fetch.c:639
+#: builtin/fetch.c:654
 msgid "[new tag]"
 msgstr "[новая метка]"
 
-#: builtin/fetch.c:642
+#: builtin/fetch.c:657
 msgid "[new branch]"
 msgstr "[новая ветка]"
 
-#: builtin/fetch.c:645
+#: builtin/fetch.c:660
 msgid "[new ref]"
 msgstr "[новая ссылка]"
 
-#: builtin/fetch.c:684
+#: builtin/fetch.c:699
 msgid "forced update"
 msgstr "принудительное обновление"
 
-#: builtin/fetch.c:689
+#: builtin/fetch.c:704
 msgid "non-fast-forward"
 msgstr "без перемотки вперед"
 
-#: builtin/fetch.c:733
+#: builtin/fetch.c:749
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s не отправил все необходимые объекты\n"
 
-#: builtin/fetch.c:753
+#: builtin/fetch.c:769
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "%s отклонено из-за того, что частичные корни не разрешено обновлять"
 
-#: builtin/fetch.c:839 builtin/fetch.c:934
+#: builtin/fetch.c:856 builtin/fetch.c:952
 #, c-format
 msgid "From %.*s\n"
 msgstr "Из %.*s\n"
 
-#: builtin/fetch.c:850
+#: builtin/fetch.c:867
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr "не удалось обновить некоторые локальные ссылки; попробуйте запустить «git remote prune %s», чтобы почистить старые, конфликтующие ветки"
 
-#: builtin/fetch.c:904
+#: builtin/fetch.c:922
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s будет висящей веткой)"
 
-#: builtin/fetch.c:905
+#: builtin/fetch.c:923
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s стала висящей веткой)"
 
-#: builtin/fetch.c:937
+#: builtin/fetch.c:955
 msgid "[deleted]"
 msgstr "[удалено]"
 
-#: builtin/fetch.c:938 builtin/remote.c:1020
+#: builtin/fetch.c:956 builtin/remote.c:1020
 msgid "(none)"
 msgstr "(нет)"
 
-#: builtin/fetch.c:960
+#: builtin/fetch.c:979
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "Отказ получения в текущую ветку %s не голого репозитория"
 
-#: builtin/fetch.c:979
+#: builtin/fetch.c:998
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "Неправильное значение «%2$s» для параметра «%1$s» для %3$s"
 
-#: builtin/fetch.c:982
+#: builtin/fetch.c:1001
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "Параметр «%s» игнорируется для %s\n"
 
-#: builtin/fetch.c:1039
+#: builtin/fetch.c:1077
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "Не знаю как извлечь с %s"
 
-#: builtin/fetch.c:1199
+#: builtin/fetch.c:1237
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Извлечение из %s\n"
 
-#: builtin/fetch.c:1201 builtin/remote.c:96
+#: builtin/fetch.c:1239 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "Не удалось извлечь %s"
 
-#: builtin/fetch.c:1219
+#: builtin/fetch.c:1257
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
 msgstr "Не указан внешний репозиторий. Укажите URL или имя внешнего репозитория из которого должны извлекаться новые редакции."
 
-#: builtin/fetch.c:1242
+#: builtin/fetch.c:1280
 msgid "You need to specify a tag name."
 msgstr "Вам нужно указать имя метки."
 
-#: builtin/fetch.c:1284
+#: builtin/fetch.c:1322
+msgid "Negative depth in --deepen is not supported"
+msgstr "Отрицательная грубина для --deepen не поддерживается"
+
+#: builtin/fetch.c:1324
+msgid "--deepen and --depth are mutually exclusive"
+msgstr "--deepen и --depth нельзя использовать одновременно"
+
+#: builtin/fetch.c:1329
 msgid "--depth and --unshallow cannot be used together"
 msgstr "нельзя использовать одновременно --depth и --unshallow"
 
-#: builtin/fetch.c:1286
+#: builtin/fetch.c:1331
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow не имеет смысла на полном репозитории"
 
-#: builtin/fetch.c:1306
+#: builtin/fetch.c:1353
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all не принимает имя репозитория как аргумент"
 
-#: builtin/fetch.c:1308
+#: builtin/fetch.c:1355
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all не имеет смысла при указании спецификаций ссылок"
 
-#: builtin/fetch.c:1319
+#: builtin/fetch.c:1366
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "Нет такого внешнего репозитория или группы: %s"
 
-#: builtin/fetch.c:1327
+#: builtin/fetch.c:1374
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "Получение группы и указание спецификаций ссылок не имеет смысла"
 
@@ -6542,23 +7093,23 @@ msgid ""
 "git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]"
 msgstr "git fmt-merge-msg [-m <сообщение>] [--log[=<n>] | --no-log] [--file <файл>]"
 
-#: builtin/fmt-merge-msg.c:667
+#: builtin/fmt-merge-msg.c:663
 msgid "populate log with at most <n> entries from shortlog"
 msgstr "отправить в журнал <n> записей из короткого журнала"
 
-#: builtin/fmt-merge-msg.c:670
+#: builtin/fmt-merge-msg.c:666
 msgid "alias for --log (deprecated)"
 msgstr "сокращение для --log (устаревшее)"
 
-#: builtin/fmt-merge-msg.c:673
+#: builtin/fmt-merge-msg.c:669
 msgid "text"
 msgstr "текст"
 
-#: builtin/fmt-merge-msg.c:674
+#: builtin/fmt-merge-msg.c:670
 msgid "use <text> as start of message"
 msgstr "использовать <текст> как начальное сообщение"
 
-#: builtin/fmt-merge-msg.c:675
+#: builtin/fmt-merge-msg.c:671
 msgid "file to read from"
 msgstr "файл для чтения"
 
@@ -6674,7 +7225,7 @@ msgstr "показать прогресс выполнения"
 msgid "show verbose names for reachable objects"
 msgstr "показать подробные имена для недоступных объектов"
 
-#: builtin/fsck.c:671
+#: builtin/fsck.c:665
 msgid "Checking objects"
 msgstr "Проверка объектов"
 
@@ -6759,224 +7310,219 @@ msgstr "grep: сбой создания потока: %s"
 msgid "invalid number of threads specified (%d) for %s"
 msgstr "указано недопустимое количество потоков (%d) для %s"
 
-#: builtin/grep.c:452 builtin/grep.c:487
+#: builtin/grep.c:453 builtin/grep.c:488
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "не удалось прочитать дерево (%s)"
 
-#: builtin/grep.c:502
+#: builtin/grep.c:503
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "не удалось выполнить grep из объекта типа %s"
 
-#: builtin/grep.c:560
+#: builtin/grep.c:561
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "параметр «%c» ожидает числовое значение"
 
-#: builtin/grep.c:577
-#, c-format
-msgid "cannot open '%s'"
-msgstr "не удалось открыть «%s»"
-
-#: builtin/grep.c:646
+#: builtin/grep.c:647
 msgid "search in index instead of in the work tree"
 msgstr "искать в индексе, а не в рабочем каталоге"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:649
 msgid "find in contents not managed by git"
 msgstr "искать в содержимом не управляемым git"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:651
 msgid "search in both tracked and untracked files"
 msgstr "искать и в отслеживаемых, и в неотслеживаемых файлах"
 
-#: builtin/grep.c:652
+#: builtin/grep.c:653
 msgid "ignore files specified via '.gitignore'"
 msgstr "игнорировать файлы указанные в «.gitignore»"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:656
 msgid "show non-matching lines"
 msgstr "искать в несовпадающих строках"
 
-#: builtin/grep.c:657
+#: builtin/grep.c:658
 msgid "case insensitive matching"
 msgstr "без учета регистра"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:660
 msgid "match patterns only at word boundaries"
 msgstr "искать совпадения шаблона только на границах слов"
 
-#: builtin/grep.c:661
+#: builtin/grep.c:662
 msgid "process binary files as text"
 msgstr "обработка двоичных файлов как текста"
 
-#: builtin/grep.c:663
+#: builtin/grep.c:664
 msgid "don't match patterns in binary files"
 msgstr "не искать совпадения шаблона в двоичных файлах"
 
-#: builtin/grep.c:666
+#: builtin/grep.c:667
 msgid "process binary files with textconv filters"
 msgstr "обрабатываться двоичные файлы с помощью фильтров textconv"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:669
 msgid "descend at most <depth> levels"
 msgstr "на глубине максиму <глубина> уровней"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:673
 msgid "use extended POSIX regular expressions"
 msgstr "использовать расширенные регулярные выражения POSIX"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:676
 msgid "use basic POSIX regular expressions (default)"
 msgstr "использовать базовые регулярные выражения POSIX (по умолчанию)"
 
-#: builtin/grep.c:678
+#: builtin/grep.c:679
 msgid "interpret patterns as fixed strings"
 msgstr "интерпретировать шаблоны как фиксированные строки"
 
-#: builtin/grep.c:681
+#: builtin/grep.c:682
 msgid "use Perl-compatible regular expressions"
 msgstr "использовать Perl-совместимые регулярные выражения"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:685
 msgid "show line numbers"
 msgstr "вывести номера строк"
 
-#: builtin/grep.c:685
+#: builtin/grep.c:686
 msgid "don't show filenames"
 msgstr "не выводить имена файлов"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:687
 msgid "show filenames"
 msgstr "выводить имена файлов"
 
-#: builtin/grep.c:688
+#: builtin/grep.c:689
 msgid "show filenames relative to top directory"
 msgstr "выводить имена файлов относительно каталога репозитория"
 
-#: builtin/grep.c:690
+#: builtin/grep.c:691
 msgid "show only filenames instead of matching lines"
 msgstr "выводить только имена файлов, а не совпадающие строки"
 
-#: builtin/grep.c:692
+#: builtin/grep.c:693
 msgid "synonym for --files-with-matches"
 msgstr "синоним для --files-with-matches"
 
-#: builtin/grep.c:695
+#: builtin/grep.c:696
 msgid "show only the names of files without match"
 msgstr "выводить только несовпадающие имена файлов"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:698
 msgid "print NUL after filenames"
 msgstr "выводить двоичный НОЛЬ после списка имен файлов"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:700
 msgid "show the number of matches instead of matching lines"
 msgstr "выводить количество совпадений, а не совпадающие строки"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:701
 msgid "highlight matches"
 msgstr "подсвечивать совпадения"
 
-#: builtin/grep.c:702
+#: builtin/grep.c:703
 msgid "print empty line between matches from different files"
 msgstr "выводить пустую строку после совпадений из разных файлов"
 
-#: builtin/grep.c:704
+#: builtin/grep.c:705
 msgid "show filename only once above matches from same file"
 msgstr "выводить имя файла только раз на несколько совпадений в одном файле"
 
-#: builtin/grep.c:707
+#: builtin/grep.c:708
 msgid "show <n> context lines before and after matches"
 msgstr "показать <n> строк контекста перед и после совпадения"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:711
 msgid "show <n> context lines before matches"
 msgstr "показать <n> строк контекста перед совпадением"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:713
 msgid "show <n> context lines after matches"
 msgstr "показать <n> строк контекста после совпадения"
 
-#: builtin/grep.c:714
+#: builtin/grep.c:715
 msgid "use <n> worker threads"
 msgstr "использовать <кол> рабочих потоков"
 
-#: builtin/grep.c:715
+#: builtin/grep.c:716
 msgid "shortcut for -C NUM"
 msgstr "тоже, что и -C КОЛИЧЕСТВО"
 
-#: builtin/grep.c:718
+#: builtin/grep.c:719
 msgid "show a line with the function name before matches"
 msgstr "показать строку с именем функции перед совпадением"
 
-#: builtin/grep.c:720
+#: builtin/grep.c:721
 msgid "show the surrounding function"
 msgstr "показать окружающую функцию"
 
-#: builtin/grep.c:723
+#: builtin/grep.c:724
 msgid "read patterns from file"
 msgstr "прочитать шаблоны из файла"
 
-#: builtin/grep.c:725
+#: builtin/grep.c:726
 msgid "match <pattern>"
 msgstr "поиск соответствий с <шаблоном>"
 
-#: builtin/grep.c:727
+#: builtin/grep.c:728
 msgid "combine patterns specified with -e"
 msgstr "объединить шаблоны указанные с помощью -e"
 
-#: builtin/grep.c:739
+#: builtin/grep.c:740
 msgid "indicate hit with exit status without output"
 msgstr "ничего не выводить, указать на совпадение с помощью кода выхода"
 
-#: builtin/grep.c:741
+#: builtin/grep.c:742
 msgid "show only matches from files that match all patterns"
 msgstr "показать только совпадения из файлов в которых совпадают все шаблоны"
 
-#: builtin/grep.c:743
+#: builtin/grep.c:744
 msgid "show parse tree for grep expression"
 msgstr "показать дерево разбора для выражения поиска"
 
-#: builtin/grep.c:747
+#: builtin/grep.c:748
 msgid "pager"
 msgstr "пейджер"
 
-#: builtin/grep.c:747
+#: builtin/grep.c:748
 msgid "show matching files in the pager"
 msgstr "показать совпадающие файлы с помощью программы-пейджера"
 
-#: builtin/grep.c:750
+#: builtin/grep.c:751
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "разрешить вызов grep(1) (игнорируется в этой сборке)"
 
-#: builtin/grep.c:813
+#: builtin/grep.c:814
 msgid "no pattern given."
 msgstr "не задан шаблон."
 
-#: builtin/grep.c:845 builtin/index-pack.c:1479
+#: builtin/grep.c:846 builtin/index-pack.c:1480
 #, c-format
 msgid "invalid number of threads specified (%d)"
 msgstr "указано неправильное количество потоков (%d)"
 
-#: builtin/grep.c:875
+#: builtin/grep.c:876
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager работает только в рабочем каталоге"
 
-#: builtin/grep.c:901
+#: builtin/grep.c:902
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached или --untracked нельзя использовать одновременно с --no-index."
 
-#: builtin/grep.c:906
+#: builtin/grep.c:907
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index или --untracked нельзя использовать одновременно с указанием редакции."
 
-#: builtin/grep.c:909
+#: builtin/grep.c:910
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard не может использоваться для отслеживаемого содержимого."
 
-#: builtin/grep.c:917
+#: builtin/grep.c:918
 msgid "both --cached and trees are given."
 msgstr "указано одновременно --cached и дерево."
 
@@ -6990,176 +7536,180 @@ msgstr "git hash-object [-t <тип>] [-w] [--path=<файл> | --no-filters] [-
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "type"
 msgstr "тип"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "object type"
 msgstr "тип объекта"
 
-#: builtin/hash-object.c:94
+#: builtin/hash-object.c:95
 msgid "write the object into the object database"
 msgstr "запись объекта в базу данных объектов"
 
-#: builtin/hash-object.c:96
+#: builtin/hash-object.c:97
 msgid "read the object from stdin"
 msgstr "прочитать объект из стандартного ввода"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid "store file as is without filters"
 msgstr "сохранить файл без использования фильтров"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr "хэшировать любой мусор и создавать поврежденные объекты для отладки Git"
 
-#: builtin/hash-object.c:100
+#: builtin/hash-object.c:101
 msgid "process file as it were from this path"
 msgstr "обработать файл так, будто он находится по указанному пути"
 
-#: builtin/help.c:41
+#: builtin/help.c:42
 msgid "print all available commands"
 msgstr "вывести список всех доступных команд"
 
-#: builtin/help.c:42
+#: builtin/help.c:43
+msgid "exclude guides"
+msgstr "исключить руководства"
+
+#: builtin/help.c:44
 msgid "print list of useful guides"
 msgstr "вывести список полезных руководств"
 
-#: builtin/help.c:43
+#: builtin/help.c:45
 msgid "show man page"
 msgstr "открыть руководство в формате man"
 
-#: builtin/help.c:44
+#: builtin/help.c:46
 msgid "show manual in web browser"
 msgstr "открыть руководство в веб-браузере"
 
-#: builtin/help.c:46
+#: builtin/help.c:48
 msgid "show info page"
 msgstr "открыть руководство в формате info"
 
-#: builtin/help.c:52
+#: builtin/help.c:54
 msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
 msgstr "git help [--all] [--guides] [--man | --web | --info] [<команда>]"
 
-#: builtin/help.c:64
+#: builtin/help.c:66
 #, c-format
 msgid "unrecognized help format '%s'"
 msgstr "неопознанный формат руководства «%s»"
 
-#: builtin/help.c:91
+#: builtin/help.c:93
 msgid "Failed to start emacsclient."
 msgstr "Сбой при запуске emacsclient."
 
-#: builtin/help.c:104
+#: builtin/help.c:106
 msgid "Failed to parse emacsclient version."
 msgstr "Сбой при определении версии emacsclient."
 
-#: builtin/help.c:112
+#: builtin/help.c:114
 #, c-format
 msgid "emacsclient version '%d' too old (< 22)."
 msgstr "версия emacsclient «%d» слишком старая (< 22)."
 
-#: builtin/help.c:130 builtin/help.c:151 builtin/help.c:160 builtin/help.c:168
+#: builtin/help.c:132 builtin/help.c:153 builtin/help.c:162 builtin/help.c:170
 #, c-format
 msgid "failed to exec '%s'"
 msgstr "сбой при запуске «%s»"
 
-#: builtin/help.c:205
+#: builtin/help.c:207
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
 "Please consider using 'man.<tool>.cmd' instead."
 msgstr "«%s»: путь для неподдерживаемой программы просмотра man.\nВместо этого используйте «man.<программа>.cmd»."
 
-#: builtin/help.c:217
+#: builtin/help.c:219
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
 "Please consider using 'man.<tool>.path' instead."
 msgstr "«%s»: команда для неподдерживаемой программы просмотра man.\nВместо этого используйте «man.<программа>.path»."
 
-#: builtin/help.c:334
+#: builtin/help.c:336
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "«%s»: неизвестная программа просмотра man."
 
-#: builtin/help.c:351
+#: builtin/help.c:353
 msgid "no man viewer handled the request"
 msgstr "программа просмотра man не обработала запрос"
 
-#: builtin/help.c:359
+#: builtin/help.c:361
 msgid "no info viewer handled the request"
 msgstr "программа просмотра info не обработала запрос"
 
-#: builtin/help.c:401
+#: builtin/help.c:403
 msgid "Defining attributes per path"
 msgstr "Определение атрибутов для путей файлов или каталогов"
 
-#: builtin/help.c:402
+#: builtin/help.c:404
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Повседневный Git с 20 командами или около того"
 
-#: builtin/help.c:403
+#: builtin/help.c:405
 msgid "A Git glossary"
 msgstr "Глоссарий Git"
 
-#: builtin/help.c:404
+#: builtin/help.c:406
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Указание специально игнорируемых файлов"
 
-#: builtin/help.c:405
+#: builtin/help.c:407
 msgid "Defining submodule properties"
 msgstr "Определение свойств подмодулей"
 
-#: builtin/help.c:406
+#: builtin/help.c:408
 msgid "Specifying revisions and ranges for Git"
 msgstr "Указание редакций и диапазонов для Git"
 
-#: builtin/help.c:407
+#: builtin/help.c:409
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Учебное введение в Git (для версии 1.5.1 или новее)"
 
-#: builtin/help.c:408
+#: builtin/help.c:410
 msgid "An overview of recommended workflows with Git"
 msgstr "Обзор рекомендуемых последовательностей выполняемых действий с Git"
 
-#: builtin/help.c:420
+#: builtin/help.c:422
 msgid "The common Git guides are:\n"
 msgstr "Основные руководства Git:\n"
 
-#: builtin/help.c:441 builtin/help.c:458
-#, c-format
-msgid "usage: %s%s"
-msgstr "использование: %s%s"
-
-#: builtin/help.c:474
+#: builtin/help.c:440
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "«git %s» — это сокращение для «%s»"
 
-#: builtin/index-pack.c:153
+#: builtin/help.c:462 builtin/help.c:479
+#, c-format
+msgid "usage: %s%s"
+msgstr "использование: %s%s"
+
+#: builtin/index-pack.c:154
 #, c-format
 msgid "unable to open %s"
 msgstr "не удалось открыть %s"
 
-#: builtin/index-pack.c:203
+#: builtin/index-pack.c:204
 #, c-format
 msgid "object type mismatch at %s"
 msgstr "несоответствие типа объекта на %s"
 
-#: builtin/index-pack.c:223
+#: builtin/index-pack.c:224
 #, c-format
 msgid "did not receive expected object %s"
 msgstr "ожидаемый объект не получен на %s"
 
-#: builtin/index-pack.c:226
+#: builtin/index-pack.c:227
 #, c-format
 msgid "object %s: expected type %s, found %s"
 msgstr "объект %s: ожидаемый тип %s, получен %s"
 
-#: builtin/index-pack.c:268
+#: builtin/index-pack.c:269
 #, c-format
 msgid "cannot fill %d byte"
 msgid_plural "cannot fill %d bytes"
@@ -7168,69 +7718,73 @@ msgstr[1] "не удалось заполнить %d байта"
 msgstr[2] "не удалось заполнить %d байтов"
 msgstr[3] "не удалось заполнить %d байтов"
 
-#: builtin/index-pack.c:278
+#: builtin/index-pack.c:279
 msgid "early EOF"
 msgstr "неожиданный конец файла"
 
-#: builtin/index-pack.c:279
+#: builtin/index-pack.c:280
 msgid "read error on input"
 msgstr "ошибка чтения ввода"
 
-#: builtin/index-pack.c:291
+#: builtin/index-pack.c:292
 msgid "used more bytes than were available"
 msgstr "использовано больше байт, чем было доступно"
 
-#: builtin/index-pack.c:298
+#: builtin/index-pack.c:299
 msgid "pack too large for current definition of off_t"
 msgstr "пакет слишком большой для текущего определения off_t"
 
-#: builtin/index-pack.c:314
+#: builtin/index-pack.c:302 builtin/unpack-objects.c:92
+msgid "pack exceeds maximum allowed size"
+msgstr "размер пакета превышает максимальный допустимый"
+
+#: builtin/index-pack.c:317
 #, c-format
 msgid "unable to create '%s'"
 msgstr "не удалось создать «%s»"
 
-#: builtin/index-pack.c:319
+#: builtin/index-pack.c:322
 #, c-format
 msgid "cannot open packfile '%s'"
 msgstr "не удалось открыть файл пакета «%s»"
 
-#: builtin/index-pack.c:333
+#: builtin/index-pack.c:336
 msgid "pack signature mismatch"
 msgstr "несоответствие подписи пакета"
 
-#: builtin/index-pack.c:335
+#: builtin/index-pack.c:338
 #, c-format
 msgid "pack version %<PRIu32> unsupported"
 msgstr "версия пакета %<PRIu32> не поддерживается"
 
-#: builtin/index-pack.c:353
+#: builtin/index-pack.c:356
 #, c-format
 msgid "pack has bad object at offset %<PRIuMAX>: %s"
 msgstr "пакет содержит плохой объект по смещению %<PRIuMAX>: %s"
 
-#: builtin/index-pack.c:475
+#: builtin/index-pack.c:478
 #, c-format
 msgid "inflate returned %d"
 msgstr "программа сжатия вернула %d"
 
-#: builtin/index-pack.c:524
+#: builtin/index-pack.c:527
 msgid "offset value overflow for delta base object"
 msgstr "переполнение значения смещения у базового объекта дельты"
 
-#: builtin/index-pack.c:532
+#: builtin/index-pack.c:535
 msgid "delta base offset is out of bound"
 msgstr "смещение базовой дельты вышло за допустимые пределы"
 
-#: builtin/index-pack.c:540
+#: builtin/index-pack.c:543
 #, c-format
 msgid "unknown object type %d"
 msgstr "неизвестный тип объекта %d"
 
-#: builtin/index-pack.c:571
+#: builtin/index-pack.c:574
 msgid "cannot pread pack file"
 msgstr "не удалось выполнить pread для файла пакета"
 
-#: builtin/index-pack.c:573
+#: builtin/index-pack.c:576
 #, c-format
 msgid "premature end of pack file, %<PRIuMAX> byte missing"
 msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing"
@@ -7239,88 +7793,88 @@ msgstr[1] "преждевременное окончание файла паке
 msgstr[2] "преждевременное окончание файла пакета, %<PRIuMAX> байтов отсутствует"
 msgstr[3] "преждевременное окончание файла пакета, %<PRIuMAX> байтов отсутствует"
 
-#: builtin/index-pack.c:599
+#: builtin/index-pack.c:602
 msgid "serious inflate inconsistency"
 msgstr "серьезное несоответствие при распаковке"
 
-#: builtin/index-pack.c:745 builtin/index-pack.c:751 builtin/index-pack.c:774
-#: builtin/index-pack.c:808 builtin/index-pack.c:817
+#: builtin/index-pack.c:748 builtin/index-pack.c:754 builtin/index-pack.c:777
+#: builtin/index-pack.c:811 builtin/index-pack.c:820
 #, c-format
 msgid "SHA1 COLLISION FOUND WITH %s !"
 msgstr "НАЙДЕНА КОЛЛИЗИЯ SHA1 С %s !"
 
-#: builtin/index-pack.c:748 builtin/pack-objects.c:164
-#: builtin/pack-objects.c:256
+#: builtin/index-pack.c:751 builtin/pack-objects.c:166
+#: builtin/pack-objects.c:258
 #, c-format
 msgid "unable to read %s"
 msgstr "не удалось прочитать %s"
 
-#: builtin/index-pack.c:814
+#: builtin/index-pack.c:817
 #, c-format
 msgid "cannot read existing object %s"
 msgstr "не удалось прочитать существующий объект %s"
 
-#: builtin/index-pack.c:828
+#: builtin/index-pack.c:831
 #, c-format
 msgid "invalid blob object %s"
 msgstr "неправильный файл двоичного объекта %s"
 
-#: builtin/index-pack.c:842
+#: builtin/index-pack.c:845
 #, c-format
 msgid "invalid %s"
 msgstr "неправильный %s"
 
-#: builtin/index-pack.c:845
+#: builtin/index-pack.c:848
 msgid "Error in object"
 msgstr "Ошибка в объекте"
 
-#: builtin/index-pack.c:847
+#: builtin/index-pack.c:850
 #, c-format
 msgid "Not all child objects of %s are reachable"
 msgstr "Не все дочерние объекты %s достижимы"
 
-#: builtin/index-pack.c:919 builtin/index-pack.c:950
+#: builtin/index-pack.c:922 builtin/index-pack.c:953
 msgid "failed to apply delta"
 msgstr "сбой при применении дельты"
 
-#: builtin/index-pack.c:1120
+#: builtin/index-pack.c:1123
 msgid "Receiving objects"
 msgstr "Получение объектов"
 
-#: builtin/index-pack.c:1120
+#: builtin/index-pack.c:1123
 msgid "Indexing objects"
 msgstr "Индексирование объектов"
 
-#: builtin/index-pack.c:1152
+#: builtin/index-pack.c:1155
 msgid "pack is corrupted (SHA1 mismatch)"
 msgstr "пакет поврежден (несоответствие SHA1)"
 
-#: builtin/index-pack.c:1157
+#: builtin/index-pack.c:1160
 msgid "cannot fstat packfile"
 msgstr "не удалось выполнить fstat для файла пакета"
 
-#: builtin/index-pack.c:1160
+#: builtin/index-pack.c:1163
 msgid "pack has junk at the end"
 msgstr "файл пакета содержит мусор в конце"
 
-#: builtin/index-pack.c:1171
+#: builtin/index-pack.c:1174
 msgid "confusion beyond insanity in parse_pack_objects()"
 msgstr "безумная путаница в parse_pack_objects()"
 
-#: builtin/index-pack.c:1196
+#: builtin/index-pack.c:1197
 msgid "Resolving deltas"
 msgstr "Определение изменений"
 
-#: builtin/index-pack.c:1207
+#: builtin/index-pack.c:1208
 #, c-format
 msgid "unable to create thread: %s"
 msgstr "не удалось создать поток: %s"
 
-#: builtin/index-pack.c:1249
+#: builtin/index-pack.c:1250
 msgid "confusion beyond insanity"
 msgstr "безумная путаница"
 
-#: builtin/index-pack.c:1255
+#: builtin/index-pack.c:1256
 #, c-format
 msgid "completed with %d local object"
 msgid_plural "completed with %d local objects"
@@ -7329,12 +7883,12 @@ msgstr[1] "завершено с %d локальными объектами"
 msgstr[2] "завершено с %d локальными объектами"
 msgstr[3] "завершено с %d локальными объектами"
 
-#: builtin/index-pack.c:1267
+#: builtin/index-pack.c:1268
 #, c-format
 msgid "Unexpected tail checksum for %s (disk corruption?)"
 msgstr "Неожиданная контрольная сумма в конце %s (диск поврежден?)"
 
-#: builtin/index-pack.c:1271
+#: builtin/index-pack.c:1272
 #, c-format
 msgid "pack has %d unresolved delta"
 msgid_plural "pack has %d unresolved deltas"
@@ -7343,44 +7897,44 @@ msgstr[1] "пакет содержит %d неразрешенные дельт
 msgstr[2] "пакет содержит %d неразрешенных дельт"
 msgstr[3] "пакет содержит %d неразрешенных дельт"
 
-#: builtin/index-pack.c:1295
+#: builtin/index-pack.c:1296
 #, c-format
 msgid "unable to deflate appended object (%d)"
 msgstr "нельзя сжать присоединенный объект (%d)"
 
-#: builtin/index-pack.c:1371
+#: builtin/index-pack.c:1372
 #, c-format
 msgid "local object %s is corrupt"
 msgstr "локальный объект %s поврежден"
 
-#: builtin/index-pack.c:1395
+#: builtin/index-pack.c:1396
 msgid "error while closing pack file"
 msgstr "ошибка при закрытии файла пакета"
 
-#: builtin/index-pack.c:1408
+#: builtin/index-pack.c:1409
 #, c-format
 msgid "cannot write keep file '%s'"
 msgstr "не удалось записать файл удержания «%s»"
 
-#: builtin/index-pack.c:1416
+#: builtin/index-pack.c:1417
 #, c-format
 msgid "cannot close written keep file '%s'"
 msgstr "не удалось закрыть записанный файл удержания «%s»"
 
-#: builtin/index-pack.c:1429
+#: builtin/index-pack.c:1430
 msgid "cannot store pack file"
 msgstr "не удалось сохранить файл пакета"
 
-#: builtin/index-pack.c:1440
+#: builtin/index-pack.c:1441
 msgid "cannot store index file"
 msgstr "не удалось сохранить файл индекса"
 
-#: builtin/index-pack.c:1473
+#: builtin/index-pack.c:1474
 #, c-format
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "плохой pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1483 builtin/index-pack.c:1681
+#: builtin/index-pack.c:1484 builtin/index-pack.c:1681
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "нет поддержки потоков, игнорирование %s"
@@ -7424,126 +7978,126 @@ msgstr "имя пакета «%s» не оканчивается на «.pack»"
 msgid "bad %s"
 msgstr "плохой %s"
 
-#: builtin/index-pack.c:1730
+#: builtin/index-pack.c:1732
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin нельзя использовать без --stdin"
 
-#: builtin/index-pack.c:1738
+#: builtin/index-pack.c:1740
 msgid "--verify with no packfile name given"
 msgstr "--verify без указания имени файла пакета"
 
-#: builtin/init-db.c:55
+#: builtin/init-db.c:54
 #, c-format
 msgid "cannot stat '%s'"
 msgstr "не удалось выполнить stat для «%s»"
 
-#: builtin/init-db.c:61
+#: builtin/init-db.c:60
 #, c-format
 msgid "cannot stat template '%s'"
 msgstr "не удалось выполнить stat для шаблона «%s»"
 
-#: builtin/init-db.c:66
+#: builtin/init-db.c:65
 #, c-format
 msgid "cannot opendir '%s'"
 msgstr "не удалось выполнить opendir для «%s»"
 
-#: builtin/init-db.c:77
+#: builtin/init-db.c:76
 #, c-format
 msgid "cannot readlink '%s'"
 msgstr "не удалось выполнить readlink для «%s»"
 
-#: builtin/init-db.c:79
+#: builtin/init-db.c:78
 #, c-format
 msgid "cannot symlink '%s' '%s'"
 msgstr "не удалось создать символьную ссылку «%s» на «%s»"
 
-#: builtin/init-db.c:85
+#: builtin/init-db.c:84
 #, c-format
 msgid "cannot copy '%s' to '%s'"
 msgstr "не удалось скопировать файл «%s» в «%s»"
 
-#: builtin/init-db.c:89
+#: builtin/init-db.c:88
 #, c-format
 msgid "ignoring template %s"
 msgstr "игнорирование шаблона %s"
 
-#: builtin/init-db.c:120
+#: builtin/init-db.c:119
 #, c-format
 msgid "templates not found %s"
 msgstr "шаблоны не найдены %s"
 
-#: builtin/init-db.c:135
+#: builtin/init-db.c:134
 #, c-format
 msgid "not copying templates from '%s': %s"
 msgstr "не копирую шаблоны из «%s»: %s"
 
-#: builtin/init-db.c:312 builtin/init-db.c:315
-#, c-format
-msgid "%s already exists"
-msgstr "%s уже существует"
-
-#: builtin/init-db.c:344
+#: builtin/init-db.c:327
 #, c-format
 msgid "unable to handle file type %d"
 msgstr "не удается обработать файл типа %d"
 
-#: builtin/init-db.c:347
+#: builtin/init-db.c:330
 #, c-format
 msgid "unable to move %s to %s"
 msgstr "не удается переместить файл %s в %s"
 
-#: builtin/init-db.c:402
+#: builtin/init-db.c:347 builtin/init-db.c:350
+#, c-format
+msgid "%s already exists"
+msgstr "%s уже существует"
+
+#: builtin/init-db.c:403
 #, c-format
 msgid "Reinitialized existing shared Git repository in %s%s\n"
 msgstr "Переинициализирован существующий общий репозиторий Git в %s%s\n"
 
-#: builtin/init-db.c:403
+#: builtin/init-db.c:404
 #, c-format
 msgid "Reinitialized existing Git repository in %s%s\n"
 msgstr "Переинициализирован существующий репозиторий Git в %s%s\n"
 
-#: builtin/init-db.c:407
+#: builtin/init-db.c:408
 #, c-format
 msgid "Initialized empty shared Git repository in %s%s\n"
 msgstr "Инициализирован пустой общий репозиторий Git в %s%s\n"
 
-#: builtin/init-db.c:408
+#: builtin/init-db.c:409
 #, c-format
 msgid "Initialized empty Git repository in %s%s\n"
 msgstr "Инициализирован пустой репозиторий Git в %s%s\n"
 
-#: builtin/init-db.c:455
+#: builtin/init-db.c:457
 msgid ""
 "git init [-q | --quiet] [--bare] [--template=<template-directory>] "
 "[--shared[=<permissions>]] [<directory>]"
 msgstr "git init [-q | --quiet] [--bare] [--template=<каталог-шаблонов>] [--shared[=<права-доступа>]] [<каталог>]"
 
-#: builtin/init-db.c:478
+#: builtin/init-db.c:480
 msgid "permissions"
 msgstr "права-доступа"
 
-#: builtin/init-db.c:479
+#: builtin/init-db.c:481
 msgid "specify that the git repository is to be shared amongst several users"
 msgstr "укажите, если репозиторий git будет использоваться несколькими пользователями"
 
-#: builtin/init-db.c:513 builtin/init-db.c:518
+#: builtin/init-db.c:515 builtin/init-db.c:520
 #, c-format
 msgid "cannot mkdir %s"
 msgstr "не удалось выполнить mkdir %s"
 
-#: builtin/init-db.c:522
+#: builtin/init-db.c:524
 #, c-format
 msgid "cannot chdir to %s"
 msgstr "не удалось выполнить chdir в %s"
 
-#: builtin/init-db.c:543
+#: builtin/init-db.c:545
 #, c-format
 msgid ""
 "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
 "dir=<directory>)"
 msgstr "%s (или --work-tree=<каталог>) нельзя использовать без указания %s (или --git-dir=<каталог>)"
 
-#: builtin/init-db.c:571
+#: builtin/init-db.c:573
 #, c-format
 msgid "Cannot access work tree '%s'"
 msgstr "Не удалось получить доступ к рабочему каталогу «%s»"
@@ -7652,345 +8206,350 @@ msgstr "Не является диапазоном."
 msgid "Cover letter needs email format"
 msgstr "Сопроводительное письмо должно быть в формате электронной почты"
 
-#: builtin/log.c:1064
+#: builtin/log.c:1063
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "ошибка в поле in-reply-to: %s"
 
-#: builtin/log.c:1092
+#: builtin/log.c:1091
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<опции>] [<начиная-с> | <диапазон-редакций>]"
 
-#: builtin/log.c:1137
+#: builtin/log.c:1141
 msgid "Two output directories?"
 msgstr "Два выходных каталога?"
 
-#: builtin/log.c:1244 builtin/log.c:1883 builtin/log.c:1885 builtin/log.c:1897
+#: builtin/log.c:1248 builtin/log.c:1891 builtin/log.c:1893 builtin/log.c:1905
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Неизвестный коммит %s"
 
-#: builtin/log.c:1254 builtin/notes.c:254 builtin/notes.c:305
-#: builtin/notes.c:307 builtin/notes.c:370 builtin/notes.c:425
-#: builtin/notes.c:511 builtin/notes.c:516 builtin/notes.c:594
-#: builtin/notes.c:657 builtin/notes.c:882 builtin/tag.c:455
+#: builtin/log.c:1258 builtin/notes.c:884 builtin/tag.c:455
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Не удалось разрешить «%s» как ссылку."
 
-#: builtin/log.c:1259
+#: builtin/log.c:1263
 msgid "Could not find exact merge base."
 msgstr "Не удалось найти точную базу слияния."
 
-#: builtin/log.c:1263
+#: builtin/log.c:1267
 msgid ""
 "Failed to get upstream, if you want to record base commit automatically,\n"
 "please use git branch --set-upstream-to to track a remote branch.\n"
 "Or you could specify base commit by --base=<base-commit-id> manually."
 msgstr "Не удалось получить вышестоящую ветку. Если вы хотите записать базовый коммит автомитически, то используйте git branch --set-upstream-to для отслеживания внешней ветки.\nИли же вы можете указать базовый коммит указанием --base=<идентификатор-базового-коммита> вручную."
 
-#: builtin/log.c:1283
+#: builtin/log.c:1287
 msgid "Failed to find exact merge base"
 msgstr "Не удалось найти точную базу слияния"
 
-#: builtin/log.c:1294
+#: builtin/log.c:1298
 msgid "base commit should be the ancestor of revision list"
 msgstr "базовый коммит должен быть предком списка редакций"
 
-#: builtin/log.c:1298
+#: builtin/log.c:1302
 msgid "base commit shouldn't be in revision list"
 msgstr "базовый коммит не должен быть в списке редакций"
 
-#: builtin/log.c:1347
+#: builtin/log.c:1351
 msgid "cannot get patch id"
 msgstr "не удалось получить идентификатор патча"
 
-#: builtin/log.c:1404
+#: builtin/log.c:1408
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "выводить [PATCH n/m] даже когда один патч"
 
-#: builtin/log.c:1407
+#: builtin/log.c:1411
 msgid "use [PATCH] even with multiple patches"
 msgstr "выводить [PATCH] даже когда несколько патчей"
 
-#: builtin/log.c:1411
+#: builtin/log.c:1415
 msgid "print patches to standard out"
 msgstr "выводить патчи на стандартный вывод"
 
-#: builtin/log.c:1413
+#: builtin/log.c:1417
 msgid "generate a cover letter"
 msgstr "генерировать сопроводительное письмо"
 
-#: builtin/log.c:1415
+#: builtin/log.c:1419
 msgid "use simple number sequence for output file names"
 msgstr "использовать простую последовательность чисел для имен выходных файлов"
 
-#: builtin/log.c:1416
+#: builtin/log.c:1420
 msgid "sfx"
 msgstr "суффикс"
 
-#: builtin/log.c:1417
+#: builtin/log.c:1421
 msgid "use <sfx> instead of '.patch'"
 msgstr "использовать суффикс <суффикс> вместо «.patch»"
 
-#: builtin/log.c:1419
+#: builtin/log.c:1423
 msgid "start numbering patches at <n> instead of 1"
 msgstr "начать нумерацию патчей с <n>, а не с 1"
 
-#: builtin/log.c:1421
+#: builtin/log.c:1425
 msgid "mark the series as Nth re-roll"
 msgstr "пометить серию как энную попытку"
 
-#: builtin/log.c:1423
+#: builtin/log.c:1427
+msgid "Use [RFC PATCH] instead of [PATCH]"
+msgstr "Использовать [RFC PATCH] вместо [PATCH]"
+
+#: builtin/log.c:1430
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "Использовать [<префикс>] вместо [PATCH]"
 
-#: builtin/log.c:1426
+#: builtin/log.c:1433
 msgid "store resulting files in <dir>"
 msgstr "сохранить результирующие файлы в <каталог>"
 
-#: builtin/log.c:1429
+#: builtin/log.c:1436
 msgid "don't strip/add [PATCH]"
 msgstr "не обрезать/добавлять [PATCH]"
 
-#: builtin/log.c:1432
+#: builtin/log.c:1439
 msgid "don't output binary diffs"
 msgstr "не выводить двоичные различия"
 
-#: builtin/log.c:1434
+#: builtin/log.c:1441
 msgid "output all-zero hash in From header"
 msgstr "выводить нулевую хэш-сумму в заголовке From"
 
-#: builtin/log.c:1436
+#: builtin/log.c:1443
 msgid "don't include a patch matching a commit upstream"
 msgstr "не включать патч, если коммит уже есть в вышестоящей ветке"
 
-#: builtin/log.c:1438
+#: builtin/log.c:1445
 msgid "show patch format instead of default (patch + stat)"
 msgstr "выводить в формате патча, а не в стандартном (патч + статистика)"
 
-#: builtin/log.c:1440
+#: builtin/log.c:1447
 msgid "Messaging"
 msgstr "Передача сообщений"
 
-#: builtin/log.c:1441
+#: builtin/log.c:1448
 msgid "header"
 msgstr "заголовок"
 
-#: builtin/log.c:1442
+#: builtin/log.c:1449
 msgid "add email header"
 msgstr "добавить заголовок сообщения"
 
-#: builtin/log.c:1443 builtin/log.c:1445
+#: builtin/log.c:1450 builtin/log.c:1452
 msgid "email"
 msgstr "почта"
 
-#: builtin/log.c:1443
+#: builtin/log.c:1450
 msgid "add To: header"
 msgstr "добавить заголовок To:"
 
-#: builtin/log.c:1445
+#: builtin/log.c:1452
 msgid "add Cc: header"
 msgstr "добавить заголовок Cc:"
 
-#: builtin/log.c:1447
+#: builtin/log.c:1454
 msgid "ident"
 msgstr "идентификатор"
 
-#: builtin/log.c:1448
+#: builtin/log.c:1455
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "установить адрес отправителя на <идентификатор> (или на идентификатор коммитера, если отсутствует)"
 
-#: builtin/log.c:1450
+#: builtin/log.c:1457
 msgid "message-id"
 msgstr "идентификатор-сообщения"
 
-#: builtin/log.c:1451
+#: builtin/log.c:1458
 msgid "make first mail a reply to <message-id>"
 msgstr "сделать первое письмо ответом на <идентификатор-сообщения>"
 
-#: builtin/log.c:1452 builtin/log.c:1455
+#: builtin/log.c:1459 builtin/log.c:1462
 msgid "boundary"
 msgstr "вложение"
 
-#: builtin/log.c:1453
+#: builtin/log.c:1460
 msgid "attach the patch"
 msgstr "приложить патч"
 
-#: builtin/log.c:1456
+#: builtin/log.c:1463
 msgid "inline the patch"
 msgstr "включить патч в текст письма"
 
-#: builtin/log.c:1460
+#: builtin/log.c:1467
 msgid "enable message threading, styles: shallow, deep"
 msgstr "включить в письмах иерархичность, стили: shallow (частичную), deep (глубокую)"
 
-#: builtin/log.c:1462
+#: builtin/log.c:1469
 msgid "signature"
 msgstr "подпись"
 
-#: builtin/log.c:1463
+#: builtin/log.c:1470
 msgid "add a signature"
 msgstr "добавить подпись"
 
-#: builtin/log.c:1464
+#: builtin/log.c:1471
 msgid "base-commit"
 msgstr "базовый коммит"
 
-#: builtin/log.c:1465
+#: builtin/log.c:1472
 msgid "add prerequisite tree info to the patch series"
 msgstr "добавить информацию о требовании дерева к серии патчей"
 
-#: builtin/log.c:1467
+#: builtin/log.c:1474
 msgid "add a signature from a file"
 msgstr "добавить подпись из файла"
 
-#: builtin/log.c:1468
+#: builtin/log.c:1475
 msgid "don't print the patch filenames"
 msgstr "не выводить имена файлов патчей"
 
-#: builtin/log.c:1558
+#: builtin/log.c:1565
 msgid "-n and -k are mutually exclusive."
 msgstr "-n и -k нельзя использовать одновременно"
 
-#: builtin/log.c:1560
-msgid "--subject-prefix and -k are mutually exclusive."
-msgstr "--subject-prefix и -k нельзя использовать одновременно."
+#: builtin/log.c:1567
+msgid "--subject-prefix/--rfc and -k are mutually exclusive."
+msgstr "--subject-prefix/--rfc и -k нельзя использовать одновременно."
 
-#: builtin/log.c:1568
+#: builtin/log.c:1575
 msgid "--name-only does not make sense"
 msgstr "--name-only не имеет смысла"
 
-#: builtin/log.c:1570
+#: builtin/log.c:1577
 msgid "--name-status does not make sense"
 msgstr "--name-status не имеет смысла"
 
-#: builtin/log.c:1572
+#: builtin/log.c:1579
 msgid "--check does not make sense"
 msgstr "--check не имеет смысла"
 
-#: builtin/log.c:1602
+#: builtin/log.c:1609
 msgid "standard output, or directory, which one?"
 msgstr "стандартный вывод или каталог?"
 
-#: builtin/log.c:1604
+#: builtin/log.c:1611
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "Не удалось создать каталог «%s»"
 
-#: builtin/log.c:1698
+#: builtin/log.c:1705
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "не удалось прочитать файл подписи «%s»"
 
-#: builtin/log.c:1769
+#: builtin/log.c:1777
 msgid "Failed to create output files"
 msgstr "Сбой при создании выходных файлов"
 
-#: builtin/log.c:1818
+#: builtin/log.c:1826
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<вышестоящая-ветка> [<голова> [<ограничение>]]]"
 
-#: builtin/log.c:1872
+#: builtin/log.c:1880
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> "
 "manually.\n"
 msgstr "Не удалось найти отслеживаемую внешнюю ветку, укажите <вышестоящую-ветку> вручную.\n"
 
-#: builtin/ls-files.c:379
+#: builtin/ls-files.c:458
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<опции>] [<файл>…]"
 
-#: builtin/ls-files.c:428
+#: builtin/ls-files.c:507
 msgid "identify the file status with tags"
 msgstr "выводить имена файлов с метками"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:509
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "использовать символы в нижнем регистре для «предположительно без изменений» файлов"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:511
 msgid "show cached files in the output (default)"
 msgstr "показывать кэшированные файлы при выводе (по умолчанию)"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:513
 msgid "show deleted files in the output"
 msgstr "показывать удаленные файлы при выводе"
 
-#: builtin/ls-files.c:436
+#: builtin/ls-files.c:515
 msgid "show modified files in the output"
 msgstr "показывать измененные файлы при выводе"
 
-#: builtin/ls-files.c:438
+#: builtin/ls-files.c:517
 msgid "show other files in the output"
 msgstr "показывать другие файлы при выводе"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:519
 msgid "show ignored files in the output"
 msgstr "показывать игнорируемые файлы при выводе"
 
-#: builtin/ls-files.c:443
+#: builtin/ls-files.c:522
 msgid "show staged contents' object name in the output"
 msgstr "показывать имя индексированного объекта на выводе"
 
-#: builtin/ls-files.c:445
+#: builtin/ls-files.c:524
 msgid "show files on the filesystem that need to be removed"
 msgstr "показывать файлы в файловой системе, которые должны быть удалены"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:526
 msgid "show 'other' directories' names only"
 msgstr "показывать только имена у «других» каталогов"
 
-#: builtin/ls-files.c:449
+#: builtin/ls-files.c:528
 msgid "show line endings of files"
 msgstr "показать концы строк файлов"
 
-#: builtin/ls-files.c:451
+#: builtin/ls-files.c:530
 msgid "don't show empty directories"
 msgstr "не показывать пустые каталоги"
 
-#: builtin/ls-files.c:454
+#: builtin/ls-files.c:533
 msgid "show unmerged files in the output"
 msgstr "показывать не слитые файлы на выводе"
 
-#: builtin/ls-files.c:456
+#: builtin/ls-files.c:535
 msgid "show resolve-undo information"
 msgstr "показывать информации о разрешении конфликтов и отмене"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:537
 msgid "skip files matching pattern"
 msgstr "пропустить файлы, соответствующие шаблону"
 
-#: builtin/ls-files.c:461
+#: builtin/ls-files.c:540
 msgid "exclude patterns are read from <file>"
 msgstr "прочитать шаблоны исключения из <файл>"
 
-#: builtin/ls-files.c:464
+#: builtin/ls-files.c:543
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "прочитать дополнительные покаталожные шаблоны исключения из <файл>"
 
-#: builtin/ls-files.c:466
+#: builtin/ls-files.c:545
 msgid "add the standard git exclusions"
 msgstr "добавить стандартные исключения git"
 
-#: builtin/ls-files.c:469
+#: builtin/ls-files.c:548
 msgid "make the output relative to the project top directory"
 msgstr "выводить пути относительно корневого каталога проекта"
 
-#: builtin/ls-files.c:472
+#: builtin/ls-files.c:551
+msgid "recurse through submodules"
+msgstr "рекурсивно по подмодулям"
+
+#: builtin/ls-files.c:553
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "если какой-либо <файл> не в индексе, считать это ошибкой"
 
-#: builtin/ls-files.c:473
+#: builtin/ls-files.c:554
 msgid "tree-ish"
 msgstr "указатель-дерева"
 
-#: builtin/ls-files.c:474
+#: builtin/ls-files.c:555
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr "притвориться, что пути удалены, т.к. <указатель-дерева> еще существует"
 
-#: builtin/ls-files.c:476
+#: builtin/ls-files.c:557
 msgid "show debugging data"
 msgstr "показать отладочную информацию"
 
@@ -8104,31 +8663,31 @@ msgstr "Доступные стратегии:"
 msgid "Available custom strategies are:"
 msgstr "Доступные пользовательские стратегии:"
 
-#: builtin/merge.c:195 builtin/pull.c:126
+#: builtin/merge.c:195 builtin/pull.c:127
 msgid "do not show a diffstat at the end of the merge"
 msgstr "не выводить статистику изменений после окончания слияния"
 
-#: builtin/merge.c:198 builtin/pull.c:129
+#: builtin/merge.c:198 builtin/pull.c:130
 msgid "show a diffstat at the end of the merge"
 msgstr "вывести статистику изменений после окончания слияния"
 
-#: builtin/merge.c:199 builtin/pull.c:132
+#: builtin/merge.c:199 builtin/pull.c:133
 msgid "(synonym to --stat)"
 msgstr "(синоним для --stat)"
 
-#: builtin/merge.c:201 builtin/pull.c:135
+#: builtin/merge.c:201 builtin/pull.c:136
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "добавить (максимум <n>) записей из короткого журнала в сообщение коммита у слияния"
 
-#: builtin/merge.c:204 builtin/pull.c:138
+#: builtin/merge.c:204 builtin/pull.c:139
 msgid "create a single commit instead of doing a merge"
 msgstr "создать один коммит, вместо выполнения слияния"
 
-#: builtin/merge.c:206 builtin/pull.c:141
+#: builtin/merge.c:206 builtin/pull.c:142
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "сделать коммит, если слияние прошло успешно (по умолчанию)"
 
-#: builtin/merge.c:208 builtin/pull.c:144
+#: builtin/merge.c:208 builtin/pull.c:145
 msgid "edit message before committing"
 msgstr "отредактировать сообщение перед выполнением коммита"
 
@@ -8136,28 +8695,28 @@ msgstr "отредактировать сообщение перед выпол
 msgid "allow fast-forward (default)"
 msgstr "разрешить перемотку вперед (по умолчанию)"
 
-#: builtin/merge.c:211 builtin/pull.c:150
+#: builtin/merge.c:211 builtin/pull.c:151
 msgid "abort if fast-forward is not possible"
 msgstr "отменить выполнение слияния, если перемотка вперед невозможна"
 
-#: builtin/merge.c:215 builtin/pull.c:153
+#: builtin/merge.c:215 builtin/pull.c:154
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "проверить, что указанный коммит имеет верную электронную подпись GPG"
 
-#: builtin/merge.c:216 builtin/notes.c:772 builtin/pull.c:157
+#: builtin/merge.c:216 builtin/notes.c:774 builtin/pull.c:158
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "стратегия"
 
-#: builtin/merge.c:217 builtin/pull.c:158
+#: builtin/merge.c:217 builtin/pull.c:159
 msgid "merge strategy to use"
 msgstr "используемая стратегия слияния"
 
-#: builtin/merge.c:218 builtin/pull.c:161
+#: builtin/merge.c:218 builtin/pull.c:162
 msgid "option=value"
 msgstr "опция=значение"
 
-#: builtin/merge.c:219 builtin/pull.c:162
+#: builtin/merge.c:219 builtin/pull.c:163
 msgid "option for selected merge strategy"
 msgstr "опции для выбранной стратегии слияния"
 
@@ -8169,7 +8728,7 @@ msgstr "сообщение коммита для слияния (для слия
 msgid "abort the current in-progress merge"
 msgstr "отменить выполнение происходящего слияния"
 
-#: builtin/merge.c:227 builtin/pull.c:169
+#: builtin/merge.c:227 builtin/pull.c:170
 msgid "allow merging unrelated histories"
 msgstr "разрешить слияние несвязанных историй изменений"
 
@@ -8376,55 +8935,55 @@ msgstr "отказ слияния несвязанных историй изме
 msgid "Already up-to-date."
 msgstr "Уже обновлено."
 
-#: builtin/merge.c:1382
+#: builtin/merge.c:1377
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Обновление %s..%s\n"
 
-#: builtin/merge.c:1419
+#: builtin/merge.c:1418
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Попытка тривиального слияния в индексе…\n"
 
-#: builtin/merge.c:1426
+#: builtin/merge.c:1425
 #, c-format
 msgid "Nope.\n"
 msgstr "Не вышло.\n"
 
-#: builtin/merge.c:1451
+#: builtin/merge.c:1450
 msgid "Already up-to-date. Yeeah!"
 msgstr "Уже обновлено. Круто!"
 
-#: builtin/merge.c:1457
+#: builtin/merge.c:1456
 msgid "Not possible to fast-forward, aborting."
 msgstr "Перемотка вперед невозможна, отмена."
 
-#: builtin/merge.c:1480 builtin/merge.c:1559
+#: builtin/merge.c:1479 builtin/merge.c:1558
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Перемотка дерева к исходному состоянию…\n"
 
-#: builtin/merge.c:1484
+#: builtin/merge.c:1483
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Попытка слияния с помощью стратегии %s…\n"
 
-#: builtin/merge.c:1550
+#: builtin/merge.c:1549
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Ни одна стратегия слияния не обработала слияние.\n"
 
-#: builtin/merge.c:1552
+#: builtin/merge.c:1551
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "Сбой при слиянии с помощью стратегии %s.\n"
 
-#: builtin/merge.c:1561
+#: builtin/merge.c:1560
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Использую %s для подготовки ручного разрешения конфликтов.\n"
 
-#: builtin/merge.c:1573
+#: builtin/merge.c:1572
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "Автоматическое слияние прошло успешно; как и запрашивали, остановлено перед выполнением коммита\n"
@@ -8449,23 +9008,23 @@ msgstr "git merge-base --is-ancestor <коммит> <коммит>"
 msgid "git merge-base --fork-point <ref> [<commit>]"
 msgstr "git merge-base --fork-point <ссылка> [<коммит>]"
 
-#: builtin/merge-base.c:214
+#: builtin/merge-base.c:217
 msgid "output all common ancestors"
 msgstr "вывести всех общих предков"
 
-#: builtin/merge-base.c:216
+#: builtin/merge-base.c:219
 msgid "find ancestors for a single n-way merge"
 msgstr "вывести предков для одного многоходового слияния"
 
-#: builtin/merge-base.c:218
+#: builtin/merge-base.c:221
 msgid "list revs not reachable from others"
 msgstr "вывести список редаций, которые не достижимы из друг друга"
 
-#: builtin/merge-base.c:220
+#: builtin/merge-base.c:223
 msgid "is the first one ancestor of the other?"
 msgstr "является первым предком второго указанного коммита?"
 
-#: builtin/merge-base.c:222
+#: builtin/merge-base.c:225
 msgid "find where <commit> forked from reflog of <ref>"
 msgstr "найти журнале ссылок <ссылка> где именно <коммит> разветвился"
 
@@ -8507,6 +9066,39 @@ msgstr "не предупреждать о конфликтах"
 msgid "set labels for file1/orig-file/file2"
 msgstr "установить метки для файл1/ориг-файл/файл2"
 
+#: builtin/merge-recursive.c:45
+#, c-format
+msgid "unknown option %s"
+msgstr "неизвестная опция %s"
+
+#: builtin/merge-recursive.c:51
+#, c-format
+msgid "could not parse object '%s'"
+msgstr "не удалось разобрать объект «%s»"
+
+#: builtin/merge-recursive.c:55
+#, c-format
+msgid "cannot handle more than %d base. Ignoring %s."
+msgid_plural "cannot handle more than %d bases. Ignoring %s."
+msgstr[0] "невозможно обработать больше %d базы. Игнорирую %s."
+msgstr[1] "невозможно обработать больше %d баз. Игнорирую %s."
+msgstr[2] "невозможно обработать больше %d баз. Игнорирую %s."
+msgstr[3] "невозможно обработать больше %d базы. Игнорирую %s."
+
+#: builtin/merge-recursive.c:63
+msgid "not handling anything other than two heads merge."
+msgstr "не обрабатываю ничего, кроме слияния двух указателей на ветки."
+
+#: builtin/merge-recursive.c:69 builtin/merge-recursive.c:71
+#, c-format
+msgid "could not resolve ref '%s'"
+msgstr "не удалось распознать ссылку «%s»"
+
+#: builtin/merge-recursive.c:77
+#, c-format
+msgid "Merging %s with %s\n"
+msgstr "Слияние %s и %s\n"
+
 #: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
@@ -8615,43 +9207,43 @@ msgstr "Переименование %s в %s\n"
 msgid "renaming '%s' failed"
 msgstr "сбой при переименовании «%s»"
 
-#: builtin/name-rev.c:258
+#: builtin/name-rev.c:257
 msgid "git name-rev [<options>] <commit>..."
 msgstr "git name-rev [<опции>] <коммит>…"
 
-#: builtin/name-rev.c:259
+#: builtin/name-rev.c:258
 msgid "git name-rev [<options>] --all"
 msgstr "git name-rev [<опции>] --all"
 
-#: builtin/name-rev.c:260
+#: builtin/name-rev.c:259
 msgid "git name-rev [<options>] --stdin"
 msgstr "git name-rev [<опции>] --stdin"
 
-#: builtin/name-rev.c:312
+#: builtin/name-rev.c:311
 msgid "print only names (no SHA-1)"
 msgstr "выводить только имена (без SHA-1)"
 
-#: builtin/name-rev.c:313
+#: builtin/name-rev.c:312
 msgid "only use tags to name the commits"
 msgstr "использовать только метки для именования коммитов"
 
-#: builtin/name-rev.c:315
+#: builtin/name-rev.c:314
 msgid "only use refs matching <pattern>"
 msgstr "использовать только ссылки, соответствующие <шаблону> "
 
-#: builtin/name-rev.c:317
+#: builtin/name-rev.c:316
 msgid "list all commits reachable from all refs"
 msgstr "вывести список всех коммитов, достижимых со всех ссылок"
 
-#: builtin/name-rev.c:318
+#: builtin/name-rev.c:317
 msgid "read from stdin"
 msgstr "прочитать из стандартного ввода"
 
-#: builtin/name-rev.c:319
+#: builtin/name-rev.c:318
 msgid "allow to print `undefined` names (default)"
 msgstr "разрешить вывод «undefined», если не найдено (по умолчанию)"
 
-#: builtin/name-rev.c:325
+#: builtin/name-rev.c:324
 msgid "dereference tags in the input (internal use)"
 msgstr "разыменовывать введенные метки (для внутреннего использования)"
 
@@ -8779,8 +9371,8 @@ msgid "failed to finish 'show' for object '%s'"
 msgstr "не удалось завершить «show» для объекта «%s»"
 
 #: builtin/notes.c:194
-msgid "Please supply the note contents using either -m or -F option"
-msgstr "Ð\9fожалуйста, укажите содержимое заметки, используя опцию -m или -F"
+msgid "please supply the note contents using either -m or -F option"
+msgstr "пожалуйста, укажите содержимое заметки, используя опцию -m или -F"
 
 #: builtin/notes.c:203
 msgid "unable to write note object"
@@ -8788,8 +9380,8 @@ msgstr "не удалось записать объект заметки"
 
 #: builtin/notes.c:205
 #, c-format
-msgid "The note contents have been left in %s"
-msgstr "Содержимое заметки осталось в %s"
+msgid "the note contents have been left in %s"
+msgstr "содержимое заметки осталось в %s"
 
 #: builtin/notes.c:233 builtin/tag.c:439
 #, c-format
@@ -8801,158 +9393,214 @@ msgstr "не удалось прочитать «%s»"
 msgid "could not open or read '%s'"
 msgstr "не удалось открыть или прочитать «%s»"
 
+#: builtin/notes.c:254 builtin/notes.c:305 builtin/notes.c:307
+#: builtin/notes.c:372 builtin/notes.c:427 builtin/notes.c:513
+#: builtin/notes.c:518 builtin/notes.c:596 builtin/notes.c:659
+#, c-format
+msgid "failed to resolve '%s' as a valid ref."
+msgstr "не удалось разрешить «%s» как ссылку."
+
 #: builtin/notes.c:257
 #, c-format
-msgid "Failed to read object '%s'."
-msgstr "Ð\9dе удалось прочитать объект «%s»."
+msgid "failed to read object '%s'."
+msgstr "не удалось прочитать объект «%s»."
 
 #: builtin/notes.c:261
 #, c-format
-msgid "Cannot read note data from non-blob object '%s'."
-msgstr "Не удалось прочитать данные заметки из недвоичного объекта «%s»."
+msgid "cannot read note data from non-blob object '%s'."
+msgstr "не удалось прочитать данные заметки из недвоичного объекта «%s»."
+
+#: builtin/notes.c:301
+#, c-format
+msgid "malformed input line: '%s'."
+msgstr "неправильная введенная строка: «%s»."
+
+#: builtin/notes.c:316
+#, c-format
+msgid "failed to copy notes from '%s' to '%s'"
+msgstr "не удалось скопировать заметку из «%s» в «%s»"
+
+#. TRANSLATORS: the first %s will be replaced by a
+#. git notes command: 'add', 'merge', 'remove', etc.
+#: builtin/notes.c:345
+#, c-format
+msgid "refusing to %s notes in %s (outside of refs/notes/)"
+msgstr "отказ в перезаписи %s заметок в %s (за пределами refs/notes/)"
 
-#: builtin/notes.c:363 builtin/notes.c:418 builtin/notes.c:494
-#: builtin/notes.c:506 builtin/notes.c:582 builtin/notes.c:650
-#: builtin/notes.c:800 builtin/notes.c:947 builtin/notes.c:968
+#: builtin/notes.c:365 builtin/notes.c:420 builtin/notes.c:496
+#: builtin/notes.c:508 builtin/notes.c:584 builtin/notes.c:652
+#: builtin/notes.c:802 builtin/notes.c:949 builtin/notes.c:970
 msgid "too many parameters"
 msgstr "передано слишком много параметров"
 
-#: builtin/notes.c:376 builtin/notes.c:663
+#: builtin/notes.c:378 builtin/notes.c:665
 #, c-format
-msgid "No note found for object %s."
-msgstr "Ð\9dе найдена заметка для объекта %s."
+msgid "no note found for object %s."
+msgstr "не найдена заметка для объекта %s."
 
-#: builtin/notes.c:397 builtin/notes.c:560
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents as a string"
 msgstr "текстовое содержимое заметки"
 
-#: builtin/notes.c:400 builtin/notes.c:563
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "note contents in a file"
 msgstr "содержимое заметки в файле"
 
-#: builtin/notes.c:403 builtin/notes.c:566
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse and edit specified note object"
 msgstr "использовать и отредактировать указанный объект заметки"
 
-#: builtin/notes.c:406 builtin/notes.c:569
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "reuse specified note object"
 msgstr "использовать указанный объект заметки"
 
-#: builtin/notes.c:409 builtin/notes.c:572
+#: builtin/notes.c:411 builtin/notes.c:574
 msgid "allow storing empty note"
 msgstr "разрешить сохранение пустой заметки"
 
-#: builtin/notes.c:410 builtin/notes.c:481
+#: builtin/notes.c:412 builtin/notes.c:483
 msgid "replace existing notes"
 msgstr "заменить существующие заметки"
 
-#: builtin/notes.c:435
+#: builtin/notes.c:437
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr "Не удалось добавить заметку. Найдена существующая заметка у объекта %s. Используйте параметр «-f» для перезаписи существующих заметок."
 
-#: builtin/notes.c:450 builtin/notes.c:529
+#: builtin/notes.c:452 builtin/notes.c:531
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Перезапись существующих заметок у объекта %s\n"
 
-#: builtin/notes.c:461 builtin/notes.c:622 builtin/notes.c:887
+#: builtin/notes.c:463 builtin/notes.c:624 builtin/notes.c:889
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Удаление заметки у объекта %s\n"
 
-#: builtin/notes.c:482
+#: builtin/notes.c:484
 msgid "read objects from stdin"
 msgstr "прочитать объекты из стандартного ввода"
 
-#: builtin/notes.c:484
+#: builtin/notes.c:486
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "загрузить настройки перезаписи для команды <команда> (включает в себя --stdin)"
 
-#: builtin/notes.c:502
+#: builtin/notes.c:504
 msgid "too few parameters"
 msgstr "передано слишком мало параметров"
 
-#: builtin/notes.c:523
+#: builtin/notes.c:525
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite"
 " existing notes"
 msgstr "Не удалось скопировать заметку. Найдена существующая заметка у объекта %s. Используйте параметр «-f» для перезаписи существующих заметок."
 
-#: builtin/notes.c:535
+#: builtin/notes.c:537
 #, c-format
-msgid "Missing notes on source object %s. Cannot copy."
-msgstr "Ð\9dет заметок у исходного объекта %s. Нельзя скопировать."
+msgid "missing notes on source object %s. Cannot copy."
+msgstr "нет заметок у исходного объекта %s. Нельзя скопировать."
 
-#: builtin/notes.c:587
+#: builtin/notes.c:589
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
 "Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
 msgstr "Опции -m/-F/-c/-C для подкоманды «edit» устарели.\nИспользуйте вместо них «git notes add -f -m/-F/-c/-C».\n"
 
-#: builtin/notes.c:753
+#: builtin/notes.c:685
+msgid "failed to delete ref NOTES_MERGE_PARTIAL"
+msgstr "не удалось удалить ссылку NOTES_MERGE_PARTIAL"
+
+#: builtin/notes.c:687
+msgid "failed to delete ref NOTES_MERGE_REF"
+msgstr "не удалось удалить ссылку NOTES_MERGE_REF"
+
+#: builtin/notes.c:689
+msgid "failed to remove 'git notes merge' worktree"
+msgstr "не удалось удалить рабочий каталог «git notes merge»"
+
+#: builtin/notes.c:709
+msgid "failed to read ref NOTES_MERGE_PARTIAL"
+msgstr "не удалось прочитать ссылку NOTES_MERGE_PARTIAL"
+
+#: builtin/notes.c:711
+msgid "could not find commit from NOTES_MERGE_PARTIAL."
+msgstr "не удалось найти коммит из NOTES_MERGE_PARTIAL."
+
+#: builtin/notes.c:713
+msgid "could not parse commit from NOTES_MERGE_PARTIAL."
+msgstr "не удалось разобрать коммит из NOTES_MERGE_PARTIAL."
+
+#: builtin/notes.c:726
+msgid "failed to resolve NOTES_MERGE_REF"
+msgstr "не удалось разрешить NOTES_MERGE_REF"
+
+#: builtin/notes.c:729
+msgid "failed to finalize notes merge"
+msgstr "не удалось завершить слиние заметок"
+
+#: builtin/notes.c:755
 #, c-format
 msgid "unknown notes merge strategy %s"
 msgstr "неизвестная стратегия слияния заметок %s"
 
-#: builtin/notes.c:769
+#: builtin/notes.c:771
 msgid "General options"
 msgstr "Общие опции"
 
-#: builtin/notes.c:771
+#: builtin/notes.c:773
 msgid "Merge options"
 msgstr "Опции слияния"
 
-#: builtin/notes.c:773
+#: builtin/notes.c:775
 msgid ""
 "resolve notes conflicts using the given strategy "
 "(manual/ours/theirs/union/cat_sort_uniq)"
 msgstr "разрешить конфликты заметок с помощью указанной стратегии (manual/ours/theirs/union/cat_sort_uniq)"
 
-#: builtin/notes.c:775
+#: builtin/notes.c:777
 msgid "Committing unmerged notes"
 msgstr "Коммит не слитых заметок"
 
-#: builtin/notes.c:777
+#: builtin/notes.c:779
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "завершить слияние заметок коммитом не слитых заметок"
 
-#: builtin/notes.c:779
+#: builtin/notes.c:781
 msgid "Aborting notes merge resolution"
 msgstr "Отмена разрешения слияния заметок"
 
-#: builtin/notes.c:781
+#: builtin/notes.c:783
 msgid "abort notes merge"
 msgstr "отменить слияние заметок"
 
-#: builtin/notes.c:792
+#: builtin/notes.c:794
 msgid "cannot mix --commit, --abort or -s/--strategy"
 msgstr "нельзя использовать одновременно --commit, --abort и -s/--strategy"
 
-#: builtin/notes.c:797
-msgid "Must specify a notes ref to merge"
-msgstr "Ð\92ы должны указать ссылку заметки для слияния"
+#: builtin/notes.c:799
+msgid "must specify a notes ref to merge"
+msgstr "вы должны указать ссылку заметки для слияния"
 
-#: builtin/notes.c:821
+#: builtin/notes.c:823
 #, c-format
-msgid "Unknown -s/--strategy: %s"
-msgstr "Ð\9dеизвестный параметр для -s/--strategy: %s"
+msgid "unknown -s/--strategy: %s"
+msgstr "неизвестный параметр для -s/--strategy: %s"
 
-#: builtin/notes.c:858
+#: builtin/notes.c:860
 #, c-format
-msgid "A notes merge into %s is already in-progress at %s"
-msgstr "Слияние заметок в %s уже выполняется на %s"
+msgid "a notes merge into %s is already in-progress at %s"
+msgstr "слияние заметок в %s уже выполняется на %s"
 
-#: builtin/notes.c:861
+#: builtin/notes.c:863
 #, c-format
-msgid "Failed to store link to current notes ref (%s)"
-msgstr "Ð\9dе удалось сохранить адрес текущей ссылки на заметку (%s)"
+msgid "failed to store link to current notes ref (%s)"
+msgstr "не удалось сохранить адрес текущей ссылки на заметку (%s)"
 
-#: builtin/notes.c:863
+#: builtin/notes.c:865
 #, c-format
 msgid ""
 "Automatic notes merge failed. Fix conflicts in %s and commit the result with"
@@ -8960,222 +9608,218 @@ msgid ""
 "--abort'.\n"
 msgstr "Не удалось автоматически слить заметки. Исправьте конфликты в %s и закоммитьте результат с помощью «git notes merge --commit», или прервите процесс слияния с помощью «git notes merge --abort».\n"
 
-#: builtin/notes.c:885
+#: builtin/notes.c:887
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "У объекта %s нет заметки\n"
 
-#: builtin/notes.c:897
+#: builtin/notes.c:899
 msgid "attempt to remove non-existent note is not an error"
 msgstr "попытка удаления несуществующей заметки не является ошибкой"
 
-#: builtin/notes.c:900
+#: builtin/notes.c:902
 msgid "read object names from the standard input"
 msgstr "прочитать имена объектов из стандартного ввода"
 
-#: builtin/notes.c:938 builtin/prune.c:105 builtin/worktree.c:127
+#: builtin/notes.c:940 builtin/prune.c:105 builtin/worktree.c:127
 msgid "do not remove, show only"
 msgstr "не удалять, только показать список"
 
-#: builtin/notes.c:939
+#: builtin/notes.c:941
 msgid "report pruned notes"
 msgstr "вывести список удаленных заметок"
 
-#: builtin/notes.c:981
+#: builtin/notes.c:983
 msgid "notes-ref"
 msgstr "ссылка-на-заметку"
 
-#: builtin/notes.c:982
+#: builtin/notes.c:984
 msgid "use notes from <notes-ref>"
 msgstr "использовать заметку из <ссылка-на-заметку>"
 
-#: builtin/notes.c:1017 builtin/remote.c:1623
+#: builtin/notes.c:1019
 #, c-format
-msgid "Unknown subcommand: %s"
-msgstr "Ð\9dеизвестная подкоманда: %s"
+msgid "unknown subcommand: %s"
+msgstr "неизвестная подкоманда: %s"
 
-#: builtin/pack-objects.c:28
+#: builtin/pack-objects.c:29
 msgid ""
 "git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
 msgstr "git pack-objects --stdout [<опции>…] [< <список-ссылок> | < <список-объектов>]"
 
-#: builtin/pack-objects.c:29
+#: builtin/pack-objects.c:30
 msgid ""
 "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
 msgstr "git pack-objects [<опции>…] <имя-базы> [< <список-ссылок> | < <список-объектов>]"
 
-#: builtin/pack-objects.c:177 builtin/pack-objects.c:180
+#: builtin/pack-objects.c:179 builtin/pack-objects.c:182
 #, c-format
 msgid "deflate error (%d)"
 msgstr "ошибка сжатия (%d)"
 
-#: builtin/pack-objects.c:766
+#: builtin/pack-objects.c:768
 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
 msgstr "отключение записи битовых карт, так как карты были разбиты на части из-за pack.packSizeLimit"
 
-#: builtin/pack-objects.c:779
+#: builtin/pack-objects.c:781
 msgid "Writing objects"
 msgstr "Запись объектов"
 
-#: builtin/pack-objects.c:1037
+#: builtin/pack-objects.c:1070
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "отключение записи битовых карт, так как некоторые объекты не были упакованы"
 
-#: builtin/pack-objects.c:2197
+#: builtin/pack-objects.c:2346
 msgid "Compressing objects"
 msgstr "Сжатие объектов"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2759
 #, c-format
 msgid "unsupported index version %s"
 msgstr "неподдерживаемая версия индекса %s"
 
-#: builtin/pack-objects.c:2615
+#: builtin/pack-objects.c:2763
 #, c-format
 msgid "bad index version '%s'"
 msgstr "плохая версия индекса «%s»"
 
-#: builtin/pack-objects.c:2645
+#: builtin/pack-objects.c:2793
 msgid "do not show progress meter"
 msgstr "не выводить прогресс выполнения"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2795
 msgid "show progress meter"
 msgstr "показать прогресс выполнения"
 
-#: builtin/pack-objects.c:2649
+#: builtin/pack-objects.c:2797
 msgid "show progress meter during object writing phase"
 msgstr "показать прогресс выполнения во время записи объектов"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2800
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "похоже на --all-progress при включенном прогрессе выполнения"
 
-#: builtin/pack-objects.c:2653
+#: builtin/pack-objects.c:2801
 msgid "version[,offset]"
 msgstr "версия[,смещение]"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2802
 msgid "write the pack index file in the specified idx format version"
 msgstr "записать файл индекса пакета в указанной версии формата"
 
-#: builtin/pack-objects.c:2657
+#: builtin/pack-objects.c:2805
 msgid "maximum size of each output pack file"
 msgstr "максимальный размер каждого выходного файла пакета"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2807
 msgid "ignore borrowed objects from alternate object store"
 msgstr "игнорировать чужие объекты, взятые из альтернативного хранилища объектов"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2809
 msgid "ignore packed objects"
 msgstr "игнорировать упакованные объекты"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2811
 msgid "limit pack window by objects"
 msgstr "ограничить окно пакета по количеству объектов"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2813
 msgid "limit pack window by memory in addition to object limit"
 msgstr "дополнительно к количеству объектов ограничить окно пакета по памяти"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2815
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "максимальная разрешенная длина цепочки дельт в результирующем пакете"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2817
 msgid "reuse existing deltas"
 msgstr "использовать повторно существующие дельты"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2819
 msgid "reuse existing objects"
 msgstr "использовать повторно существующие объекты"
 
-#: builtin/pack-objects.c:2673
+#: builtin/pack-objects.c:2821
 msgid "use OFS_DELTA objects"
 msgstr "использовать объекты OFS_DELTA"
 
-#: builtin/pack-objects.c:2675
+#: builtin/pack-objects.c:2823
 msgid "use threads when searching for best delta matches"
 msgstr "использовать многопоточность при поиске лучших совпадений дельт"
 
-#: builtin/pack-objects.c:2677
+#: builtin/pack-objects.c:2825
 msgid "do not create an empty pack output"
 msgstr "не создавать пустые выходные пакеты"
 
-#: builtin/pack-objects.c:2679
+#: builtin/pack-objects.c:2827
 msgid "read revision arguments from standard input"
 msgstr "прочитать аргументы редакций из стандартного ввода"
 
-#: builtin/pack-objects.c:2681
+#: builtin/pack-objects.c:2829
 msgid "limit the objects to those that are not yet packed"
 msgstr "ограничиться объектами, которые еще не упакованы"
 
-#: builtin/pack-objects.c:2684
+#: builtin/pack-objects.c:2832
 msgid "include objects reachable from any reference"
 msgstr "включить объекты, которые достижимы по любой из ссылок"
 
-#: builtin/pack-objects.c:2687
+#: builtin/pack-objects.c:2835
 msgid "include objects referred by reflog entries"
 msgstr "включить объекты, на которые ссылаются записи журнала ссылок"
 
-#: builtin/pack-objects.c:2690
+#: builtin/pack-objects.c:2838
 msgid "include objects referred to by the index"
 msgstr "включить объекты, на которые ссылается индекс"
 
-#: builtin/pack-objects.c:2693
+#: builtin/pack-objects.c:2841
 msgid "output pack to stdout"
 msgstr "вывести пакет на  стандартный вывод"
 
-#: builtin/pack-objects.c:2695
+#: builtin/pack-objects.c:2843
 msgid "include tag objects that refer to objects to be packed"
 msgstr "включить объекты меток, которые ссылаются на упаковываемые объекты"
 
-#: builtin/pack-objects.c:2697
+#: builtin/pack-objects.c:2845
 msgid "keep unreachable objects"
 msgstr "сохранять ссылки на недоступные объекты"
 
-#: builtin/pack-objects.c:2699
+#: builtin/pack-objects.c:2847
 msgid "pack loose unreachable objects"
 msgstr "паковать недостижимые объекты"
 
-#: builtin/pack-objects.c:2700 parse-options.h:142
-msgid "time"
-msgstr "время"
-
-#: builtin/pack-objects.c:2701
+#: builtin/pack-objects.c:2849
 msgid "unpack unreachable objects newer than <time>"
 msgstr "распаковать недоступные объекты, которые новее, чем <время>"
 
-#: builtin/pack-objects.c:2704
+#: builtin/pack-objects.c:2852
 msgid "create thin packs"
 msgstr "создавать тонкие пакеты"
 
-#: builtin/pack-objects.c:2706
+#: builtin/pack-objects.c:2854
 msgid "create packs suitable for shallow fetches"
 msgstr "создавать пакеты, подходящие для частичных извлечений"
 
-#: builtin/pack-objects.c:2708
+#: builtin/pack-objects.c:2856
 msgid "ignore packs that have companion .keep file"
 msgstr "игнорировать пакеты, рядом с которыми лежит .keep файл"
 
-#: builtin/pack-objects.c:2710
+#: builtin/pack-objects.c:2858
 msgid "pack compression level"
 msgstr "уровень сжатия пакета"
 
-#: builtin/pack-objects.c:2712
+#: builtin/pack-objects.c:2860
 msgid "do not hide commits by grafts"
 msgstr "не скрывать коммиты сращениями"
 
-#: builtin/pack-objects.c:2714
+#: builtin/pack-objects.c:2862
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "по возможности использовать индекс в битовых картах, для ускорения подсчета объектов"
 
-#: builtin/pack-objects.c:2716
+#: builtin/pack-objects.c:2864
 msgid "write a bitmap index together with the pack index"
 msgstr "запись индекса в битовых картах вместе с индексом пакета"
 
-#: builtin/pack-objects.c:2829
+#: builtin/pack-objects.c:2993
 msgid "Counting objects"
 msgstr "Подсчет объектов"
 
@@ -9215,69 +9859,62 @@ msgstr "удалить объекты старее чем <дата-оконча
 msgid "cannot prune in a precious-objects repo"
 msgstr "нельзя почистить неиспользуемые объекты в precious-objects репозитории"
 
-#: builtin/pull.c:72
+#: builtin/pull.c:51 builtin/pull.c:53
+#, c-format
+msgid "Invalid value for %s: %s"
+msgstr "Неправильное значение %s: %s"
+
+#: builtin/pull.c:73
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<опции>] [<репозиторий> [<спецификация-ссылки>…]]"
 
-#: builtin/pull.c:120
+#: builtin/pull.c:121
 msgid "Options related to merging"
 msgstr "Опции, связанные со слиянием"
 
-#: builtin/pull.c:123
+#: builtin/pull.c:124
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "забрать изменения с помощью перебазирования, а не слияния"
 
-#: builtin/pull.c:147 builtin/revert.c:101
+#: builtin/pull.c:148 builtin/revert.c:101
 msgid "allow fast-forward"
 msgstr "разрешить перемотку вперед"
 
-#: builtin/pull.c:156
+#: builtin/pull.c:157
 msgid "automatically stash/stash pop before and after rebase"
 msgstr "автоматически выполнять stash/stash pop до и после перемещения"
 
-#: builtin/pull.c:172
+#: builtin/pull.c:173
 msgid "Options related to fetching"
 msgstr "Опции, связанные с извлечением изменений"
 
-#: builtin/pull.c:194
+#: builtin/pull.c:195
 msgid "number of submodules pulled in parallel"
 msgstr "количество подмодулей, которые будут получены парралельно"
 
-#: builtin/pull.c:283
+#: builtin/pull.c:284
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Неправильное значение для pull.ff: %s"
 
-#: builtin/pull.c:379 git-sh-setup.sh:226
-msgid "Cannot pull with rebase: You have unstaged changes."
-msgstr "Не удалось получить с перемещением: У вас есть непроиндексированные изменения."
-
-#: builtin/pull.c:385 git-sh-setup.sh:252
-msgid "Additionally, your index contains uncommitted changes."
-msgstr "К тому же, в вашем индексе есть незакоммиченные изменения."
-
-#: builtin/pull.c:387 git-sh-setup.sh:245
-msgid "Cannot pull with rebase: Your index contains uncommitted changes."
-msgstr "Не удалось получить с перемещением: В вашем индексе есть незакоммиченные изменения."
-
-#: builtin/pull.c:463
+#: builtin/pull.c:397
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr "Нет претендентов для перемещения среди ссылок, которые вы только что получили."
 
-#: builtin/pull.c:465
+#: builtin/pull.c:399
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr "Нет претендентов для слияния среди ссылок, которые вы только что получили."
 
-#: builtin/pull.c:466
+#: builtin/pull.c:400
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
 msgstr "Обычно это означает, что вы передали спецификацию ссылки с помощью шаблона и этот шаблон ни с чем не совпал на внешнем репозитории."
 
-#: builtin/pull.c:469
+#: builtin/pull.c:403
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -9285,61 +9922,69 @@ msgid ""
 "for your current branch, you must specify a branch on the command line."
 msgstr "Вы попросили получить изменения со внешнего репозитория «%s», но не указали ветку. Так как это не репозиторий по умолчанию для  вашей текущей ветки, вы должны указать ветку в командной строке."
 
-#: builtin/pull.c:474 git-parse-remote.sh:73
+#: builtin/pull.c:408 git-parse-remote.sh:73
 msgid "You are not currently on a branch."
 msgstr "Вы сейчас ни на одной из веток."
 
-#: builtin/pull.c:476 builtin/pull.c:491 git-parse-remote.sh:79
+#: builtin/pull.c:410 builtin/pull.c:425 git-parse-remote.sh:79
 msgid "Please specify which branch you want to rebase against."
 msgstr "Пожалуйста, укажите на какую ветку вы хотите переместить изменения."
 
-#: builtin/pull.c:478 builtin/pull.c:493 git-parse-remote.sh:82
+#: builtin/pull.c:412 builtin/pull.c:427 git-parse-remote.sh:82
 msgid "Please specify which branch you want to merge with."
 msgstr "Пожалуйста, укажите с какой веткой вы хотите слить изменения."
 
-#: builtin/pull.c:479 builtin/pull.c:494
+#: builtin/pull.c:413 builtin/pull.c:428
 msgid "See git-pull(1) for details."
 msgstr "Для дополнительной информации, смотрите git-pull(1)."
 
-#: builtin/pull.c:481 builtin/pull.c:487 builtin/pull.c:496
+#: builtin/pull.c:415 builtin/pull.c:421 builtin/pull.c:430
 #: git-parse-remote.sh:64
 msgid "<remote>"
 msgstr "<внешний-репозиторий>"
 
-#: builtin/pull.c:481 builtin/pull.c:496 builtin/pull.c:501 git-rebase.sh:451
+#: builtin/pull.c:415 builtin/pull.c:430 builtin/pull.c:435 git-rebase.sh:451
 #: git-parse-remote.sh:65
 msgid "<branch>"
 msgstr "<ветка>"
 
-#: builtin/pull.c:489 git-parse-remote.sh:75
+#: builtin/pull.c:423 git-parse-remote.sh:75
 msgid "There is no tracking information for the current branch."
 msgstr "У текущей ветки нет информации об отслеживании."
 
-#: builtin/pull.c:498 git-parse-remote.sh:95
+#: builtin/pull.c:432 git-parse-remote.sh:95
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:"
 msgstr "Если вы хотите указать информацию о отслеживаемой ветке, выполните:"
 
-#: builtin/pull.c:503
+#: builtin/pull.c:437
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
 "from the remote, but no such ref was fetched."
 msgstr "Ваша конфигурация указывает, что нужно слить изменения со ссылкой\n«%s» из внешнего репозитория, но такая ссылка не была получена."
 
-#: builtin/pull.c:820
+#: builtin/pull.c:754
 msgid "ignoring --verify-signatures for rebase"
 msgstr "игнорирование --verify-signatures при перемещении"
 
-#: builtin/pull.c:867
+#: builtin/pull.c:801
 msgid "--[no-]autostash option is only valid with --rebase."
 msgstr "--[no-]autostash можно использовать только вместе с --rebase."
 
-#: builtin/pull.c:875
+#: builtin/pull.c:809
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "Обновление еще не начавшейся ветки с изменениями, добавленными в индекс."
 
-#: builtin/pull.c:903
+#: builtin/pull.c:812
+msgid "pull with rebase"
+msgstr "получение с перемещением"
+
+#: builtin/pull.c:813
+msgid "please commit or stash them."
+msgstr "сделайте коммит или спрячьте их."
+
+#: builtin/pull.c:838
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -9347,7 +9992,7 @@ msgid ""
 "commit %s."
 msgstr "извлечение обновило указатель на вашу текущую ветку.\nперемотка вашего рабочего каталога\nс коммита %s."
 
-#: builtin/pull.c:908
+#: builtin/pull.c:843
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -9358,11 +10003,11 @@ msgid ""
 "to recover."
 msgstr "Не удалось перемотать вперёд изменения в вашем рабочем каталоге.\nПосле того, как вы убедитесь, что вы сохранили всё необходимое из вывода\n$ git diff %s\n, запустите\n$ git reset --hard\nдля восстановления исходного состояния."
 
-#: builtin/pull.c:923
+#: builtin/pull.c:858
 msgid "Cannot merge multiple branches into empty head."
 msgstr "Нельзя слить несколько веток в пустой указатель на ветку."
 
-#: builtin/pull.c:927
+#: builtin/pull.c:862
 msgid "Cannot rebase onto multiple branches."
 msgstr "Невозможно переместить над несколькими ветками."
 
@@ -9679,15 +10324,44 @@ msgstr "пропустить применение фильтра частичн
 msgid "debug unpack-trees"
 msgstr "отладка unpack-trees"
 
-#: builtin/receive-pack.c:25
+#: builtin/receive-pack.c:26
 msgid "git receive-pack <git-dir>"
 msgstr "git receive-pack <каталог-git>"
 
-#: builtin/receive-pack.c:1843
+#: builtin/receive-pack.c:793
+msgid ""
+"By default, updating the current branch in a non-bare repository\n"
+"is denied, because it will make the index and work tree inconsistent\n"
+"with what you pushed, and will require 'git reset --hard' to match\n"
+"the work tree to HEAD.\n"
+"\n"
+"You can set 'receive.denyCurrentBranch' configuration variable to\n"
+"'ignore' or 'warn' in the remote repository to allow pushing into\n"
+"its current branch; however, this is not recommended unless you\n"
+"arranged to update its work tree to match what you pushed in some\n"
+"other way.\n"
+"\n"
+"To squelch this message and still keep the default behaviour, set\n"
+"'receive.denyCurrentBranch' configuration variable to 'refuse'."
+msgstr "По умолчанию, обновлять текущую ветку в репозитории с рабочей\nкопией (не голом) запрещено, так как это сделает состояние индекса\nи рабочего каталога противоречивым, и вам прийдется выполнить\n«git reset --hard», чтобы состояние рабочего каталога снова\nсоответствовало HEAD.\n\nВы можете установить значение опции «receive.denyCurrentBranch»\nв «ignore» или «warn» во внешнем репозитории, чтобы разрешить\nотправку в его текущую ветку; но это не рекомендуется, если только\nвы не намерены обновить его рабочий каталог способом подобным\nвышеописанному.\n\nЧтобы пропустить это сообщение и все равно оставить поведение\nпо умолчанию, установите значение опции «receive.denyCurrentBranch»\nв «refuse»."
+
+#: builtin/receive-pack.c:813
+msgid ""
+"By default, deleting the current branch is denied, because the next\n"
+"'git clone' won't result in any file checked out, causing confusion.\n"
+"\n"
+"You can set 'receive.denyDeleteCurrent' configuration variable to\n"
+"'warn' or 'ignore' in the remote repository to allow deleting the\n"
+"current branch, with or without a warning message.\n"
+"\n"
+"To squelch this message, you can set it to 'refuse'."
+msgstr "По умолчанию, удаление текущей ветки запрещено, так как последующий\n«git clone» не сможет получить никаких файлов, что приведет к путанице.\n\nВы можете установить значение опции «receive.denyDeleteCurrent»\nв «warn» или «ignore», во внешнем репозитории,  чтобы разрешить\nудаление текущей ветки с или без предупреждающего сообщения.\n\nЧтобы пропустить это сообщение, вы можете установить значение опции\nв «refuse»."
+
+#: builtin/receive-pack.c:1883
 msgid "quiet"
 msgstr "тихий режим"
 
-#: builtin/receive-pack.c:1857
+#: builtin/receive-pack.c:1897
 msgid "You must specify a directory."
 msgstr "Вы должны указать каталог."
 
@@ -10006,7 +10680,7 @@ msgstr "* внешний репозиторий %s"
 msgid "  Fetch URL: %s"
 msgstr "  URL для извлечения: %s"
 
-#: builtin/remote.c:1143 builtin/remote.c:1156 builtin/remote.c:1296
+#: builtin/remote.c:1143 builtin/remote.c:1156 builtin/remote.c:1295
 msgid "(no URL)"
 msgstr "(нет URL)"
 
@@ -10044,7 +10718,7 @@ msgstr[1] "  Внешние ветки:%s"
 msgstr[2] "  Внешние ветки:%s"
 msgstr[3] "  Внешние ветки:%s"
 
-#: builtin/remote.c:1179 builtin/remote.c:1206
+#: builtin/remote.c:1179 builtin/remote.c:1205
 msgid " (status not queried)"
 msgstr " (статус не запрашивался)"
 
@@ -10060,7 +10734,7 @@ msgstr[3] "  Локальные ветки, настроенные для «git
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr " Локальные ссылки, зеркалируемые с помощью «git push»"
 
-#: builtin/remote.c:1203
+#: builtin/remote.c:1202
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
@@ -10069,131 +10743,136 @@ msgstr[1] "  Локальные ссылки, настроенные для «gi
 msgstr[2] "  Локальные ссылки, настроенные для «git push»%s:"
 msgstr[3] "  Локальные ссылки, настроенные для «git push»%s:"
 
-#: builtin/remote.c:1224
+#: builtin/remote.c:1223
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "установить refs/remotes/<имя>/HEAD в зависимости от внешнего репозитория"
 
-#: builtin/remote.c:1226
+#: builtin/remote.c:1225
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "удалить refs/remotes/<имя>/HEAD"
 
-#: builtin/remote.c:1241
+#: builtin/remote.c:1240
 msgid "Cannot determine remote HEAD"
 msgstr "Не удалось определить внешний HEAD"
 
-#: builtin/remote.c:1243
+#: builtin/remote.c:1242
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr "Несколько внешних HEAD веток. Укажите явно одну из них:"
 
-#: builtin/remote.c:1253
+#: builtin/remote.c:1252
 #, c-format
 msgid "Could not delete %s"
 msgstr "Не удалось удалить %s"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1260
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "Недопустимая ссылка: %s"
 
-#: builtin/remote.c:1263
+#: builtin/remote.c:1262
 #, c-format
 msgid "Could not setup %s"
 msgstr "Не удалось настроить %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1280
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s будет висящей веткой!"
 
-#: builtin/remote.c:1282
+#: builtin/remote.c:1281
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s стала висящей веткой!"
 
-#: builtin/remote.c:1292
+#: builtin/remote.c:1291
 #, c-format
 msgid "Pruning %s"
 msgstr "Очистка %s"
 
-#: builtin/remote.c:1293
+#: builtin/remote.c:1292
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1309
+#: builtin/remote.c:1308
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [будет удалена] %s"
 
-#: builtin/remote.c:1312
+#: builtin/remote.c:1311
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [удалена] %s"
 
-#: builtin/remote.c:1357
+#: builtin/remote.c:1356
 msgid "prune remotes after fetching"
 msgstr "почистить внешние репозитории после извлечения"
 
-#: builtin/remote.c:1420 builtin/remote.c:1474 builtin/remote.c:1542
+#: builtin/remote.c:1419 builtin/remote.c:1473 builtin/remote.c:1541
 #, c-format
 msgid "No such remote '%s'"
 msgstr "Нет такого внешнего репозитория «%s»"
 
-#: builtin/remote.c:1436
+#: builtin/remote.c:1435
 msgid "add branch"
 msgstr "добавить ветку"
 
-#: builtin/remote.c:1443
+#: builtin/remote.c:1442
 msgid "no remote specified"
 msgstr "не указан внешний репозиторий"
 
-#: builtin/remote.c:1460
+#: builtin/remote.c:1459
 msgid "query push URLs rather than fetch URLs"
 msgstr "запросить URL отправки, вместо URL извлечения"
 
-#: builtin/remote.c:1462
+#: builtin/remote.c:1461
 msgid "return all URLs"
 msgstr "вернуть все URL"
 
-#: builtin/remote.c:1490
+#: builtin/remote.c:1489
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "URL не настроены для внешнего репозитория «%s»"
 
-#: builtin/remote.c:1516
+#: builtin/remote.c:1515
 msgid "manipulate push URLs"
 msgstr "управление URL отправки"
 
-#: builtin/remote.c:1518
+#: builtin/remote.c:1517
 msgid "add URL"
 msgstr "добавить URL"
 
-#: builtin/remote.c:1520
+#: builtin/remote.c:1519
 msgid "delete URLs"
 msgstr "удалить URL"
 
-#: builtin/remote.c:1527
+#: builtin/remote.c:1526
 msgid "--add --delete doesn't make sense"
 msgstr "--add нельзя использовать одновременно с --delete"
 
-#: builtin/remote.c:1568
+#: builtin/remote.c:1567
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Неправильный шаблон старого URL: %s"
 
-#: builtin/remote.c:1576
+#: builtin/remote.c:1575
 #, c-format
 msgid "No such URL found: %s"
 msgstr "Не найдены совпадения URL: %s"
 
-#: builtin/remote.c:1578
+#: builtin/remote.c:1577
 msgid "Will not delete all non-push URLs"
 msgstr "Нельзя удалить все URL не-отправки"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1591
 msgid "be verbose; must be placed before a subcommand"
 msgstr "быть многословнее; должно стоять перед подкомандой"
 
+#: builtin/remote.c:1622
+#, c-format
+msgid "Unknown subcommand: %s"
+msgstr "Неизвестная подкоманда: %s"
+
 #: builtin/repack.c:17
 msgid "git repack [<options>]"
 msgstr "git repack [<опции>]"
@@ -10377,8 +11056,8 @@ msgid ""
 msgstr "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<коммит>]"
 
 #: builtin/reset.c:27
-msgid "git reset [-q] <tree-ish> [--] <paths>..."
-msgstr "git reset [-q] <указатель-дерева> [--] <пути>…"
+msgid "git reset [-q] [<tree-ish>] [--] <paths>..."
+msgstr "git reset [-q] [<указатель-дерева>] [--] <пути>…"
 
 #: builtin/reset.c:28
 msgid "git reset --patch [<tree-ish>] [--] [<paths>...]"
@@ -10496,27 +11175,27 @@ msgstr "Не удалось сбросить файл индекса на ред
 msgid "Could not write new index file."
 msgstr "Не удалось записать новый файл индекса."
 
-#: builtin/rev-list.c:362
+#: builtin/rev-list.c:354
 msgid "rev-list does not support display of notes"
 msgstr "rev-list не поддерживает отображение заметок"
 
-#: builtin/rev-parse.c:358
+#: builtin/rev-parse.c:386
 msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
 msgstr "git rev-parse --parseopt [<опции>] -- [<аргументы>…]"
 
-#: builtin/rev-parse.c:363
+#: builtin/rev-parse.c:391
 msgid "keep the `--` passed as an arg"
 msgstr "передавать далее «--» как аргумент"
 
-#: builtin/rev-parse.c:365
+#: builtin/rev-parse.c:393
 msgid "stop parsing after the first non-option argument"
 msgstr "остановить разбор после первого аргумента не являющегося опцией"
 
-#: builtin/rev-parse.c:368
+#: builtin/rev-parse.c:396
 msgid "output in stuck long form"
 msgstr "выводить аргументы в длинном формате"
 
-#: builtin/rev-parse.c:499
+#: builtin/rev-parse.c:527
 msgid ""
 "git rev-parse --parseopt [<options>] -- [<args>...]\n"
 "   or: git rev-parse --sq-quote [<arg>...]\n"
@@ -10602,7 +11281,7 @@ msgstr "оставить избыточные, пустые коммиты"
 msgid "revert failed"
 msgstr "сбой обращения изменений коммита"
 
-#: builtin/revert.c:207
+#: builtin/revert.c:205
 msgid "cherry-pick failed"
 msgstr "сбой при копировании коммита"
 
@@ -10756,70 +11435,131 @@ msgstr "git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-ord
 msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
 msgstr "git show-branch (-g | --reflog)[=<n>[,<база>]] [--list] [<ссылка>]"
 
-#: builtin/show-branch.c:640
+#: builtin/show-branch.c:375
+#, c-format
+msgid "ignoring %s; cannot handle more than %d ref"
+msgid_plural "ignoring %s; cannot handle more than %d refs"
+msgstr[0] "игнорирование %s; невозможно обработать больше %d ссылки"
+msgstr[1] "игнорирование %s; невозможно обработать больше %d ссылок"
+msgstr[2] "игнорирование %s; невозможно обработать больше %d ссылок"
+msgstr[3] "игнорирование %s; невозможно обработать больше %d ссылки"
+
+#: builtin/show-branch.c:541
+#, c-format
+msgid "no matching refs with %s"
+msgstr "нет совпадающих записей с %s"
+
+#: builtin/show-branch.c:639
 msgid "show remote-tracking and local branches"
 msgstr "показать список и отслеживаемых внешних и локальных веток"
 
-#: builtin/show-branch.c:642
+#: builtin/show-branch.c:641
 msgid "show remote-tracking branches"
 msgstr "показать список отслеживаемых внешних веток"
 
-#: builtin/show-branch.c:644
+#: builtin/show-branch.c:643
 msgid "color '*!+-' corresponding to the branch"
 msgstr "окрашивать «*!+-» в соответствии с веткой"
 
-#: builtin/show-branch.c:646
+#: builtin/show-branch.c:645
 msgid "show <n> more commits after the common ancestor"
 msgstr "показать <n> коммитов после общего предка"
 
-#: builtin/show-branch.c:648
+#: builtin/show-branch.c:647
 msgid "synonym to more=-1"
 msgstr "синоним для more=-1"
 
-#: builtin/show-branch.c:649
+#: builtin/show-branch.c:648
 msgid "suppress naming strings"
 msgstr "не выводить именованные строки"
 
-#: builtin/show-branch.c:651
+#: builtin/show-branch.c:650
 msgid "include the current branch"
 msgstr "включить в вывод текущую ветку"
 
-#: builtin/show-branch.c:653
+#: builtin/show-branch.c:652
 msgid "name commits with their object names"
 msgstr "именовать коммиты их именами объектов"
 
-#: builtin/show-branch.c:655
+#: builtin/show-branch.c:654
 msgid "show possible merge bases"
 msgstr "вывести возможные базы слияния"
 
-#: builtin/show-branch.c:657
+#: builtin/show-branch.c:656
 msgid "show refs unreachable from any other ref"
 msgstr "вывести ссылки, недоступные из любых других ссылок"
 
-#: builtin/show-branch.c:659
+#: builtin/show-branch.c:658
 msgid "show commits in topological order"
 msgstr "вывести коммиты в топологическом порядке"
 
-#: builtin/show-branch.c:662
+#: builtin/show-branch.c:661
 msgid "show only commits not on the first branch"
 msgstr "вывести только коммиты, отсутствующие в первой ветке"
 
-#: builtin/show-branch.c:664
+#: builtin/show-branch.c:663
 msgid "show merges reachable from only one tip"
 msgstr "вывести слияния, достижимые только из одной из верхушек"
 
-#: builtin/show-branch.c:666
+#: builtin/show-branch.c:665
 msgid "topologically sort, maintaining date order where possible"
 msgstr "топологическая сортировка, с сохранением порядка дат, если возможно"
 
-#: builtin/show-branch.c:669
+#: builtin/show-branch.c:668
 msgid "<n>[,<base>]"
 msgstr "<n>[,<база>]"
 
-#: builtin/show-branch.c:670
+#: builtin/show-branch.c:669
 msgid "show <n> most recent ref-log entries starting at base"
 msgstr "показать <n> последних записей в журнале ссылок, начиная с базы"
 
+#: builtin/show-branch.c:703
+msgid ""
+"--reflog is incompatible with --all, --remotes, --independent or --merge-"
+"base"
+msgstr "--reflog несовместимо с --all, --remotes, --independent и --merge-base"
+
+#: builtin/show-branch.c:727
+msgid "no branches given, and HEAD is not valid"
+msgstr "не указаны ветки и HEAD не действительный"
+
+#: builtin/show-branch.c:730
+msgid "--reflog option needs one branch name"
+msgstr "параметр --reflog требует указания имени одной ветки"
+
+#: builtin/show-branch.c:733
+#, c-format
+msgid "only %d entry can be shown at one time."
+msgid_plural "only %d entries can be shown at one time."
+msgstr[0] "только %d запись может быть показана одновременно."
+msgstr[1] "только %d записи могут быть показаны одновременно."
+msgstr[2] "только %d записей могут быть показаны одновременно."
+msgstr[3] "только %d записи могут быть показаны одновременно."
+
+#: builtin/show-branch.c:737
+#, c-format
+msgid "no such ref %s"
+msgstr "нет такой ссылки %s"
+
+#: builtin/show-branch.c:829
+#, c-format
+msgid "cannot handle more than %d rev."
+msgid_plural "cannot handle more than %d revs."
+msgstr[0] "невозможно обработать больше %d редакции."
+msgstr[1] "невозможно обработать больше %d редакций."
+msgstr[2] "невозможно обработать больше %d редакций."
+msgstr[3] "невозможно обработать больше %d редакции."
+
+#: builtin/show-branch.c:833
+#, c-format
+msgid "'%s' is not a valid ref."
+msgstr "«%s» не является допустимой ссылкой на коммит."
+
+#: builtin/show-branch.c:836
+#, c-format
+msgid "cannot find commit %s (%s)"
+msgstr "не удалось найти коммит %s (%s)"
+
 #: builtin/show-ref.c:10
 msgid ""
 "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | "
@@ -10878,12 +11618,12 @@ msgstr "пропустить и удалить все строки, начина
 msgid "prepend comment character and space to each line"
 msgstr "добавить перед каждой строкой символ комметария и пробел"
 
-#: builtin/submodule--helper.c:24 builtin/submodule--helper.c:923
+#: builtin/submodule--helper.c:24 builtin/submodule--helper.c:1046
 #, c-format
 msgid "No such ref: %s"
 msgstr "Нет такой ссылки: %s"
 
-#: builtin/submodule--helper.c:31 builtin/submodule--helper.c:932
+#: builtin/submodule--helper.c:31 builtin/submodule--helper.c:1055
 #, c-format
 msgid "Expecting a full ref name, got %s"
 msgstr "Ожидалось полное имя ссылки, а получено %s"
@@ -10893,181 +11633,200 @@ msgstr "Ожидалось полное имя ссылки, а получено
 msgid "cannot strip one component off url '%s'"
 msgstr "не удалось обрезать один компонент url «%s»"
 
-#: builtin/submodule--helper.c:278 builtin/submodule--helper.c:403
-#: builtin/submodule--helper.c:483
+#: builtin/submodule--helper.c:282 builtin/submodule--helper.c:408
+#: builtin/submodule--helper.c:590
 msgid "alternative anchor for relative paths"
 msgstr "альтернативный символ для относительных путей"
 
-#: builtin/submodule--helper.c:283
+#: builtin/submodule--helper.c:287
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<путь>] [<путь>…]"
 
-#: builtin/submodule--helper.c:324 builtin/submodule--helper.c:338
+#: builtin/submodule--helper.c:329 builtin/submodule--helper.c:343
 #, c-format
 msgid "No url found for submodule path '%s' in .gitmodules"
 msgstr "URL для подмодуля по пути «%s» не найден в .gitmodules"
 
-#: builtin/submodule--helper.c:364
+#: builtin/submodule--helper.c:369
 #, c-format
 msgid "Failed to register url for submodule path '%s'"
 msgstr "Сбой регистрации адреса для пути подмодуля «%s»"
 
-#: builtin/submodule--helper.c:368
+#: builtin/submodule--helper.c:373
 #, c-format
 msgid "Submodule '%s' (%s) registered for path '%s'\n"
 msgstr "Подмодуль «%s» (%s) зарегистрирован по пути «%s»\n"
 
-#: builtin/submodule--helper.c:378
+#: builtin/submodule--helper.c:383
 #, c-format
 msgid "warning: command update mode suggested for submodule '%s'\n"
 msgstr "внимание: предполагаемый режим обновления для подмодуля «%s»\n"
 
-#: builtin/submodule--helper.c:385
+#: builtin/submodule--helper.c:390
 #, c-format
 msgid "Failed to register update mode for submodule path '%s'"
 msgstr "Сбой регистрации режима обновления для пути подмодуля «%s»"
 
-#: builtin/submodule--helper.c:404
+#: builtin/submodule--helper.c:409
 msgid "Suppress output for initializing a submodule"
 msgstr "Не выводить информацию о инициализации подмодуля"
 
-#: builtin/submodule--helper.c:409
+#: builtin/submodule--helper.c:414
 msgid "git submodule--helper init [<path>]"
 msgstr "git submodule--helper init [<путь>]"
 
-#: builtin/submodule--helper.c:430
+#: builtin/submodule--helper.c:435
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <путь>"
 
-#: builtin/submodule--helper.c:436
+#: builtin/submodule--helper.c:441
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "не найдено соответствие подмодулей в .gitmodules для пути «%s»"
 
-#: builtin/submodule--helper.c:486
+#: builtin/submodule--helper.c:524 builtin/submodule--helper.c:527
+#, c-format
+msgid "submodule '%s' cannot add alternate: %s"
+msgstr "подмодулю «%s» не удалось добавить альтернативу: %s"
+
+#: builtin/submodule--helper.c:563
+#, c-format
+msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
+msgstr "Значение «%s» для параметра submodule.alternateErrorStrategy не рапознано"
+
+#: builtin/submodule--helper.c:570
+#, c-format
+msgid "Value '%s' for submodule.alternateLocation is not recognized"
+msgstr "Значение «%s» для параметра submodule.alternateLocation не рапознано"
+
+#: builtin/submodule--helper.c:593
 msgid "where the new submodule will be cloned to"
 msgstr "куда должен быть склонирован новый подмодуль"
 
-#: builtin/submodule--helper.c:489
+#: builtin/submodule--helper.c:596
 msgid "name of the new submodule"
 msgstr "имя нового подмодуля"
 
-#: builtin/submodule--helper.c:492
+#: builtin/submodule--helper.c:599
 msgid "url where to clone the submodule from"
 msgstr "url откуда должен был склонирован новый подмодуль"
 
-#: builtin/submodule--helper.c:498
+#: builtin/submodule--helper.c:605
 msgid "depth for shallow clones"
 msgstr "глубина для частичного клона"
 
-#: builtin/submodule--helper.c:504
+#: builtin/submodule--helper.c:608 builtin/submodule--helper.c:964
+msgid "force cloning progress"
+msgstr "принудительно выводить прогресс клонирования"
+
+#: builtin/submodule--helper.c:613
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--depth <depth>] --url <url> --path <path>"
 msgstr "git submodule--helper clone [--prefix=<путь>] [--quiet] [--reference <репозиторий>] [--name <имя>] [--depth <глубина>] --url <url> --path <путь>"
 
-#: builtin/submodule--helper.c:529 builtin/submodule--helper.c:535
+#: builtin/submodule--helper.c:638 builtin/submodule--helper.c:648
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "не удалось создать каталог «%s»"
 
-#: builtin/submodule--helper.c:531
+#: builtin/submodule--helper.c:644
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "не удалось клонировать «%s» в подмодуль по пути «%s»"
 
-#: builtin/submodule--helper.c:547
+#: builtin/submodule--helper.c:660
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "не удалось открыть файл «%s»"
 
-#: builtin/submodule--helper.c:552
+#: builtin/submodule--helper.c:665
 #, c-format
 msgid "could not close file %s"
 msgstr "не удалось закрыть файл %s"
 
-#: builtin/submodule--helper.c:559
+#: builtin/submodule--helper.c:672
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "не удалось получить каталог для подмодуля «%s»"
 
-#: builtin/submodule--helper.c:611
+#: builtin/submodule--helper.c:726
 #, c-format
 msgid "Submodule path '%s' not initialized"
 msgstr "Подмодуль по пути «%s» не инициализирован"
 
-#: builtin/submodule--helper.c:615
+#: builtin/submodule--helper.c:730
 msgid "Maybe you want to use 'update --init'?"
 msgstr "Возможно, вы хотели использовать «update --init»?"
 
-#: builtin/submodule--helper.c:641
+#: builtin/submodule--helper.c:756
 #, c-format
 msgid "Skipping unmerged submodule %s"
 msgstr "Пропуск не слитого подмодуля %s"
 
-#: builtin/submodule--helper.c:662
+#: builtin/submodule--helper.c:777
 #, c-format
 msgid "Skipping submodule '%s'"
 msgstr "Пропуск подмодуля «%s»"
 
-#: builtin/submodule--helper.c:792
+#: builtin/submodule--helper.c:913
 #, c-format
 msgid "Failed to clone '%s'. Retry scheduled"
 msgstr "Не удалось клонировать «%s». Запланирована повторная попытка"
 
-#: builtin/submodule--helper.c:803
+#: builtin/submodule--helper.c:924
 #, c-format
 msgid "Failed to clone '%s' a second time, aborting"
 msgstr "Не удалось клонировать «%s» со второй попытки, отмена"
 
-#: builtin/submodule--helper.c:824
+#: builtin/submodule--helper.c:945
 msgid "path into the working tree"
 msgstr "путь в рабочем каталоге"
 
-#: builtin/submodule--helper.c:827
+#: builtin/submodule--helper.c:948
 msgid "path into the working tree, across nested submodule boundaries"
 msgstr "путь в рабочем каталоге, в пределах границ подмодуля"
 
-#: builtin/submodule--helper.c:831
+#: builtin/submodule--helper.c:952
 msgid "rebase, merge, checkout or none"
 msgstr "rebase, merge, checkout или none"
 
-#: builtin/submodule--helper.c:835
+#: builtin/submodule--helper.c:956
 msgid "Create a shallow clone truncated to the specified number of revisions"
 msgstr "Создать частичный клон, ограниченный указанным количеством редакций"
 
-#: builtin/submodule--helper.c:838
+#: builtin/submodule--helper.c:959
 msgid "parallel jobs"
 msgstr "параллельные задачи"
 
-#: builtin/submodule--helper.c:840
+#: builtin/submodule--helper.c:961
 msgid "whether the initial clone should follow the shallow recommendation"
 msgstr "должен ли изначальный процесс клонирования следовать рекомендации о частичности"
 
-#: builtin/submodule--helper.c:841
+#: builtin/submodule--helper.c:962
 msgid "don't print cloning progress"
 msgstr "вы выводить прогресс клонирования"
 
-#: builtin/submodule--helper.c:846
+#: builtin/submodule--helper.c:969
 msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper update_clone [--prefix=<путь>] [<путь>…]"
 
-#: builtin/submodule--helper.c:856
+#: builtin/submodule--helper.c:979
 msgid "bad value for update parameter"
 msgstr "плохое значение для параметра update"
 
-#: builtin/submodule--helper.c:927
+#: builtin/submodule--helper.c:1050
 #, c-format
 msgid ""
 "Submodule (%s) branch configured to inherit branch from superproject, but "
 "the superproject is not on any branch"
 msgstr "Ветка подмодуля (%s) настроена на наследование ветки из родительского проекта, но он не находится ни на одной ветке"
 
-#: builtin/submodule--helper.c:977
+#: builtin/submodule--helper.c:1100
 msgid "submodule--helper subcommand must be called with a subcommand"
 msgstr "подкоманда submodule--helper должна вызываться с указанием подкоманды"
 
-#: builtin/submodule--helper.c:984
+#: builtin/submodule--helper.c:1107
 #, c-format
 msgid "'%s' is not a valid submodule--helper subcommand"
 msgstr "«%s» не является подкомандой submodule--helper"
@@ -11289,7 +12048,7 @@ msgstr "метка «%s» уже существует"
 msgid "Updated tag '%s' (was %s)\n"
 msgstr "Метка «%s» обновлена (была %s)\n"
 
-#: builtin/unpack-objects.c:490
+#: builtin/unpack-objects.c:493
 msgid "Unpacking objects"
 msgstr "Распаковка объектов"
 
@@ -11351,131 +12110,143 @@ msgstr "информация статистики каталога не изме
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:575
+#: builtin/update-index.c:564
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<опции>] [--] [<файл>…]"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:919
 msgid "continue refresh even when index needs update"
 msgstr "продолжить обновление, даже если индекс требует обновления"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:922
 msgid "refresh: ignore submodules"
 msgstr "обновление: игнорировать подмодули"
 
-#: builtin/update-index.c:936
+#: builtin/update-index.c:925
 msgid "do not ignore new files"
 msgstr "не игнорировать новые файлы"
 
-#: builtin/update-index.c:938
+#: builtin/update-index.c:927
 msgid "let files replace directories and vice-versa"
 msgstr "разрешить файлам заменять каталоги и наоборот"
 
-#: builtin/update-index.c:940
+#: builtin/update-index.c:929
 msgid "notice files missing from worktree"
 msgstr "замечать файлы отсутствующие в рабочем каталоге"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:931
 msgid "refresh even if index contains unmerged entries"
 msgstr "обновить, даже если в индексе имеются не слитые записи"
 
-#: builtin/update-index.c:945
+#: builtin/update-index.c:934
 msgid "refresh stat information"
 msgstr "обновить информацию о статусе файлов"
 
-#: builtin/update-index.c:949
+#: builtin/update-index.c:938
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "как --refresh, но игнорировать настройку assume-unchanged"
 
-#: builtin/update-index.c:953
+#: builtin/update-index.c:942
 msgid "<mode>,<object>,<path>"
 msgstr "<режим доступа>,<объект>,<путь>"
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:943
 msgid "add the specified entry to the index"
 msgstr "добавить указанную запись в индекс"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:952
 msgid "mark files as \"not changing\""
 msgstr "пометить файлы как «не измененные»"
 
-#: builtin/update-index.c:966
+#: builtin/update-index.c:955
 msgid "clear assumed-unchanged bit"
 msgstr "убрать пометку assumed-unchanged"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:958
 msgid "mark files as \"index-only\""
 msgstr "пометить файлы как «только в индексе»"
 
-#: builtin/update-index.c:972
+#: builtin/update-index.c:961
 msgid "clear skip-worktree bit"
 msgstr "убрать пометку skip-worktree"
 
-#: builtin/update-index.c:975
+#: builtin/update-index.c:964
 msgid "add to index only; do not add content to object database"
 msgstr "только добавить в индекс; не добавлять содержимое в базу данных объектов"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:966
 msgid "remove named paths even if present in worktree"
 msgstr "удалить указанные пути, даже если они существуют в рабочем каталоге"
 
-#: builtin/update-index.c:979
+#: builtin/update-index.c:968
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "с опцией --stdin: строки на вводе отделяются НУЛЕВЫМ байтом"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:970
 msgid "read list of paths to be updated from standard input"
 msgstr "прочитать список обновляемых путей из стандартного ввода"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:974
 msgid "add entries from standard input to the index"
 msgstr "добавить записи из стандартного ввода в индекс"
 
-#: builtin/update-index.c:989
+#: builtin/update-index.c:978
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "заново заполнить индекс #2 и #3 для указанных путей"
 
-#: builtin/update-index.c:993
+#: builtin/update-index.c:982
 msgid "only update entries that differ from HEAD"
 msgstr "обновить только записи, которые отличаются от HEAD"
 
-#: builtin/update-index.c:997
+#: builtin/update-index.c:986
 msgid "ignore files missing from worktree"
 msgstr "игнорировать файлы, отсутствующие в рабочем каталоге"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:989
 msgid "report actions to standard output"
 msgstr "вывести выполняемые действия на стандартный вывод"
 
-#: builtin/update-index.c:1002
+#: builtin/update-index.c:991
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(для машинной обработки) забыть сохраненные неразрешенные конфликты"
 
-#: builtin/update-index.c:1006
+#: builtin/update-index.c:995
 msgid "write index in this format"
 msgstr "записать индекс в указанном формате"
 
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:997
 msgid "enable or disable split index"
 msgstr "разрешить или запретить раздельный индекс"
 
-#: builtin/update-index.c:1010
+#: builtin/update-index.c:999
 msgid "enable/disable untracked cache"
 msgstr "включить/отключить кэш неотслеживаемых файлов"
 
-#: builtin/update-index.c:1012
+#: builtin/update-index.c:1001
 msgid "test if the filesystem supports untracked cache"
 msgstr "проверить, что файловая система поддерживает кэш неотслеживаемых файлов"
 
-#: builtin/update-index.c:1014
+#: builtin/update-index.c:1003
 msgid "enable untracked cache without testing the filesystem"
 msgstr "включить кэш неотслеживаемых файлов без проверки файловой системы"
 
-#: builtin/update-index.c:1134
+#: builtin/update-index.c:1119
+msgid ""
+"core.untrackedCache is set to true; remove or change it, if you really want "
+"to disable the untracked cache"
+msgstr "параметр core.untrackedCache установлен true; удалите или измените его, если вы действительно хотите удалить кэш неотслеживаемых файлов"
+
+#: builtin/update-index.c:1123
 msgid "Untracked cache disabled"
 msgstr "Кэш неотслеживаемых файлов отключен"
 
-#: builtin/update-index.c:1146
+#: builtin/update-index.c:1131
+msgid ""
+"core.untrackedCache is set to false; remove or change it, if you really want"
+" to enable the untracked cache"
+msgstr "параметр core.untrackedCache установлен false; удалите или измените его, если вы действительно хотите включить кэш неотслеживаемых файлов"
+
+#: builtin/update-index.c:1135
 #, c-format
 msgid "Untracked cache enabled for '%s'"
 msgstr "Кэш неотслеживаемых файлов включен для «%s»"
@@ -11672,26 +12443,35 @@ msgstr "вывести объект дерева для подкаталога 
 msgid "only useful for debugging"
 msgstr "используется только при отладке"
 
-#: upload-pack.c:20
+#: upload-pack.c:22
 msgid "git upload-pack [<options>] <dir>"
 msgstr "git upload-pack [<опции>] <каталог>"
 
-#: upload-pack.c:837
+#: upload-pack.c:1028
 msgid "quit after a single request/response exchange"
 msgstr "выход после обмена одним запросом/ответом"
 
-#: upload-pack.c:839
+#: upload-pack.c:1030
 msgid "exit immediately after initial ref advertisement"
 msgstr "выходить сразу после начального объявления списка ссылок"
 
-#: upload-pack.c:841
+#: upload-pack.c:1032
 msgid "do not try <directory>/.git/ if <directory> is no Git directory"
 msgstr "не проверять <каталог>/.git/ если <каталог> не является каталогом Git"
 
-#: upload-pack.c:843
+#: upload-pack.c:1034
 msgid "interrupt transfer after <n> seconds of inactivity"
 msgstr "прервать передачу после <кол> секунд простоя"
 
+#: credential-cache--daemon.c:223
+#, c-format
+msgid ""
+"The permissions on your socket directory are too loose; other\n"
+"users may be able to read your cached credentials. Consider running:\n"
+"\n"
+"\tchmod 0700 %s"
+msgstr "Права доступа к вашему каталогу сокетов слишком свободны; друге пользователи могуи читать ваши закэшированные пароли доступа. Обдумайте запуск команды:\n\n\tchmod 0700 %s"
+
 #: credential-cache--daemon.c:271
 msgid "print debugging messages to stderr"
 msgstr "вывод отладочных сообщений на stderr"
@@ -11703,7 +12483,11 @@ msgid ""
 "to read about a specific subcommand or concept."
 msgstr "«git help -а» и «git help -g» выводит список доступных подкоманд и\nнекоторые руководства по темам. Запустите «git help <команда>» или\n«git help <термин>», чтобы прочесть о конкретных подкоманде или теме."
 
-#: http.c:323
+#: http.c:342
+msgid "Delegation control is not supported with cURL < 7.22.0"
+msgstr "Делегация проверки полномочий не поддерживается с cURL < 7.22.0"
+
+#: http.c:351
 msgid "Public key pinning not supported with cURL < 7.44.0"
 msgstr "Public key pinning не поддерживается с cURL < 7.44.0"
 
@@ -11819,15 +12603,15 @@ msgstr "дата-окончания"
 msgid "no-op (backward compatibility)"
 msgstr "ничего не делает (оставлено для обратной совместимости)"
 
-#: parse-options.h:237
+#: parse-options.h:238
 msgid "be more verbose"
 msgstr "быть многословнее"
 
-#: parse-options.h:239
+#: parse-options.h:240
 msgid "be more quiet"
 msgstr "тихий режим"
 
-#: parse-options.h:245
+#: parse-options.h:246
 msgid "use <n> digits to display SHA-1s"
 msgstr "использовать <n> цифр для вывода SHA-1"
 
@@ -12028,7 +12812,7 @@ msgid "Automated merge did not work."
 msgstr "Не удалось автоматически слить изменения."
 
 #: git-merge-octopus.sh:62
-msgid "Should not be doing an Octopus."
+msgid "Should not be doing an octopus."
 msgstr "Должно быть octopus не подходит."
 
 #: git-merge-octopus.sh:73
@@ -12196,6 +12980,10 @@ msgstr "У вас еще нет начального коммита"
 msgid "Cannot save the current index state"
 msgstr "Не удалось сохранить текущее состояние индекса"
 
+#: git-stash.sh:103
+msgid "Cannot save the untracked files"
+msgstr "Невозможно сохранить неотслеживаемые файлы"
+
 #: git-stash.sh:123 git-stash.sh:136
 msgid "Cannot save the current worktree state"
 msgstr "Не удалось сохранить текущее состояние рабочего каталога"
@@ -12233,6 +13021,10 @@ msgid ""
 "       To provide a message, use git stash save -- '$option'"
 msgstr "ошибка: неизвестная опция для «stash save»: $option\n        Для предоставления сообщения, используйте git stash save -- «$option»"
 
+#: git-stash.sh:251
+msgid "Can't use --patch and --include-untracked or --all at the same time"
+msgstr "Нельзя использовать --patch и --include-untracked или --all одновременно"
+
 #: git-stash.sh:259
 msgid "No local changes to save"
 msgstr "Нет локальных изменений для сохранения"
@@ -12254,96 +13046,100 @@ msgstr "Рабочий каталог и состояние индекса со
 msgid "Cannot remove worktree changes"
 msgstr "Не удалось удалить изменения рабочего каталога"
 
-#: git-stash.sh:404
+#: git-stash.sh:403
 #, sh-format
 msgid "unknown option: $opt"
 msgstr "неизвестная опция: $opt"
 
-#: git-stash.sh:414
+#: git-stash.sh:416
 msgid "No stash found."
 msgstr "Не найдены спрятанные изменения."
 
-#: git-stash.sh:421
+#: git-stash.sh:423
 #, sh-format
 msgid "Too many revisions specified: $REV"
 msgstr "Передано слишком много редакций: $REV"
 
-#: git-stash.sh:427
+#: git-stash.sh:438
 #, sh-format
 msgid "$reference is not a valid reference"
 msgstr "$reference не является действительной ссылкой"
 
-#: git-stash.sh:455
+#: git-stash.sh:466
 #, sh-format
 msgid "'$args' is not a stash-like commit"
 msgstr "«$args» не похоже на коммит со спрятанными изменениями"
 
-#: git-stash.sh:466
+#: git-stash.sh:477
 #, sh-format
 msgid "'$args' is not a stash reference"
 msgstr "«$args» не является ссылкой на спрятанные изменения"
 
-#: git-stash.sh:474
+#: git-stash.sh:485
 msgid "unable to refresh index"
 msgstr "не удалось обновить индекс"
 
-#: git-stash.sh:478
+#: git-stash.sh:489
 msgid "Cannot apply a stash in the middle of a merge"
 msgstr "Нельзя применить спрятанные изменения во время выполнения слияния"
 
-#: git-stash.sh:486
+#: git-stash.sh:497
 msgid "Conflicts in index. Try without --index."
 msgstr "Конфликты в индексе. Попробуйте без --index."
 
-#: git-stash.sh:488
+#: git-stash.sh:499
 msgid "Could not save index tree"
 msgstr "Не удалось сохранить дерево индекса"
 
-#: git-stash.sh:522
+#: git-stash.sh:508
+msgid "Could not restore untracked files from stash"
+msgstr "Невозможно восстановить неотслеживаемые файлы из спятанных файлов"
+
+#: git-stash.sh:533
 msgid "Cannot unstage modified files"
 msgstr "Невозможно убрать из индекса измененные файлы"
 
-#: git-stash.sh:537
+#: git-stash.sh:548
 msgid "Index was not unstashed."
 msgstr "Индекс не был извлечён из спрятанных изменений."
 
-#: git-stash.sh:551
+#: git-stash.sh:562
 msgid "The stash is kept in case you need it again."
 msgstr "Спрятанные изменения сохранены, на случай если они снова вам понадобятся."
 
-#: git-stash.sh:560
+#: git-stash.sh:571
 #, sh-format
 msgid "Dropped ${REV} ($s)"
 msgstr "Отброшено ${REV} ($s)"
 
-#: git-stash.sh:561
+#: git-stash.sh:572
 #, sh-format
 msgid "${REV}: Could not drop stash entry"
 msgstr "${REV}: Не удалось отбросить запись из спрятанных изменений"
 
-#: git-stash.sh:569
+#: git-stash.sh:580
 msgid "No branch name specified"
 msgstr "Не указано имя ветки"
 
-#: git-stash.sh:641
+#: git-stash.sh:652
 msgid "(To restore them type \"git stash apply\")"
 msgstr "(Чтобы восстановить их, наберите «git stash apply»)"
 
-#: git-submodule.sh:183
+#: git-submodule.sh:184
 msgid "Relative path can only be used from the toplevel of the working tree"
 msgstr "Относительный путь можно использовать только находясь на вершине рабочего каталога"
 
-#: git-submodule.sh:193
+#: git-submodule.sh:194
 #, sh-format
 msgid "repo URL: '$repo' must be absolute or begin with ./|../"
 msgstr "URL репозитория: «$repo» должен быть абсолютным или начинаться с ./|../"
 
-#: git-submodule.sh:210
+#: git-submodule.sh:211
 #, sh-format
 msgid "'$sm_path' already exists in the index"
 msgstr "«$sm_path» уже содержится в индексе"
 
-#: git-submodule.sh:214
+#: git-submodule.sh:215
 #, sh-format
 msgid ""
 "The following path is ignored by one of your .gitignore files:\n"
@@ -12351,22 +13147,22 @@ msgid ""
 "Use -f if you really want to add it."
 msgstr "Следующие пути игнорируются одним из ваших файлов .gitignore:\n$sm_path\nИспользуйте опцию -f, если вы действительно хотите его добавить."
 
-#: git-submodule.sh:232
+#: git-submodule.sh:233
 #, sh-format
 msgid "Adding existing repo at '$sm_path' to the index"
 msgstr "Добавляю существующий репозиторий из «$sm_path» в индекс"
 
-#: git-submodule.sh:234
+#: git-submodule.sh:235
 #, sh-format
 msgid "'$sm_path' already exists and is not a valid git repo"
 msgstr "«$sm_path» уже существует и не является действительным репозиторием git"
 
-#: git-submodule.sh:242
+#: git-submodule.sh:243
 #, sh-format
 msgid "A git directory for '$sm_name' is found locally with remote(s):"
 msgstr "Каталог git для «$sm_name» найден локально на внешних репозиториях:"
 
-#: git-submodule.sh:244
+#: git-submodule.sh:245
 #, sh-format
 msgid ""
 "If you want to reuse this local git directory instead of cloning again from\n"
@@ -12375,188 +13171,184 @@ msgid ""
 "or you are unsure what this means choose another name with the '--name' option."
 msgstr "Если вы хотите повторно использовать локальный каталог git вместо повторного клонирования из\n  $realrepo\nто используйте параметр «--force». Если же локальный каталог git не является нужным репозиторием или если вы не уверены, что это значит, то укажите другое имя для подмодуля с помощью параметра «--name»."
 
-#: git-submodule.sh:250
+#: git-submodule.sh:251
 #, sh-format
 msgid "Reactivating local git directory for submodule '$sm_name'."
 msgstr "Восстановление локального каталога git для подмодуля «$sm_name»."
 
-#: git-submodule.sh:262
+#: git-submodule.sh:263
 #, sh-format
 msgid "Unable to checkout submodule '$sm_path'"
 msgstr "Не удалось переключиться на состояние у подмодуля «$sm_path»"
 
-#: git-submodule.sh:267
+#: git-submodule.sh:268
 #, sh-format
 msgid "Failed to add submodule '$sm_path'"
 msgstr "Сбой добавления подмодуля «$sm_path»"
 
-#: git-submodule.sh:276
+#: git-submodule.sh:277
 #, sh-format
 msgid "Failed to register submodule '$sm_path'"
 msgstr "Не удалось зарегистрировать подмодуль «$sm_path»"
 
-#: git-submodule.sh:323
+#: git-submodule.sh:324
 #, sh-format
 msgid "Entering '$displaypath'"
 msgstr "Заходим в «$displaypath»"
 
-#: git-submodule.sh:343
+#: git-submodule.sh:344
 #, sh-format
 msgid "Stopping at '$displaypath'; script returned non-zero status."
 msgstr "Останавливаемся на «$displaypath»; сценарий вернул не нулевой код возврата."
 
-#: git-submodule.sh:414
+#: git-submodule.sh:415
 #, sh-format
 msgid "pathspec and --all are incompatible"
 msgstr "спецификацию пути и --all нельзя использовать одновременно"
 
-#: git-submodule.sh:419
+#: git-submodule.sh:420
 #, sh-format
 msgid "Use '--all' if you really want to deinitialize all submodules"
 msgstr "Используйте «--all», если вы действительно хотите деинициализировать все подмодули"
 
-#: git-submodule.sh:439
+#: git-submodule.sh:440
 #, sh-format
 msgid ""
 "Submodule work tree '$displaypath' contains a .git directory\n"
 "(use 'rm -rf' if you really want to remove it including all of its history)"
 msgstr "Рабочий каталог подмодуля «$displaypath» уже содержит каталог .git\n(используйте «rm -rf», если вы действительно хотите удалить его со всей историей изменений)"
 
-#: git-submodule.sh:447
+#: git-submodule.sh:448
 #, sh-format
 msgid ""
 "Submodule work tree '$displaypath' contains local modifications; use '-f' to"
 " discard them"
 msgstr "Рабочий каталог подмодуля «$displaypath» содержит локальные изменения; используйте «-f», чтобы отменить их"
 
-#: git-submodule.sh:450
+#: git-submodule.sh:451
 #, sh-format
 msgid "Cleared directory '$displaypath'"
 msgstr "Очищен каталог «$displaypath»"
 
-#: git-submodule.sh:451
+#: git-submodule.sh:452
 #, sh-format
 msgid "Could not remove submodule work tree '$displaypath'"
 msgstr "Не удалось удалить рабочий каталог подмодуля «$displaypath»"
 
-#: git-submodule.sh:454
+#: git-submodule.sh:455
 #, sh-format
 msgid "Could not create empty submodule directory '$displaypath'"
 msgstr "Не удалось создать пустой каталог подмодуля «$displaypath»"
 
-#: git-submodule.sh:463
+#: git-submodule.sh:464
 #, sh-format
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr "Подмодуль «$name» ($url) был снят с регистрации по пути «$displaypath»"
 
-#: git-submodule.sh:612
+#: git-submodule.sh:617
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "Не удалось найти текущую редакцию для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:622
+#: git-submodule.sh:627
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "Не удалось выполнить извлечение для подмодуля по пути «$sm_path»"
 
-#: git-submodule.sh:627
+#: git-submodule.sh:632
 #, sh-format
 msgid ""
 "Unable to find current ${remote_name}/${branch} revision in submodule path "
 "'$sm_path'"
 msgstr "Не удалось найти текущую редакцию ${remote_name}/${branch} для подмодуля по пути «$sm_path»"
 
-#: git-submodule.sh:645
+#: git-submodule.sh:650
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "Не удалось выполнить извлечение для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:651
+#: git-submodule.sh:656
 #, sh-format
 msgid ""
 "Fetched in submodule path '$displaypath', but it did not contain $sha1. "
 "Direct fetching of that commit failed."
 msgstr "Получен по пути подмодуля «$displaypath», но не содержит $sha1. Сбой при прямом получении коммита."
 
-#: git-submodule.sh:658
+#: git-submodule.sh:663
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "Не удалось переключиться на состояние «$sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:659
+#: git-submodule.sh:664
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Подмодуль по пути «$displaypath»: забрано состояние «$sha1»"
 
-#: git-submodule.sh:663
+#: git-submodule.sh:668
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "Не удалось переместить «$sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:664
+#: git-submodule.sh:669
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Подмодуль по пути «$displaypath»: перемещен над «$sha1»"
 
-#: git-submodule.sh:669
+#: git-submodule.sh:674
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "Не удалось выполнить слияние с «$sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:670
+#: git-submodule.sh:675
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Подмодуль по пути «$displaypath»: слито с «$sha1»"
 
-#: git-submodule.sh:675
+#: git-submodule.sh:680
 #, sh-format
 msgid "Execution of '$command $sha1' failed in submodule path '$displaypath'"
 msgstr "Сбой выполнения «$command $sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:676
+#: git-submodule.sh:681
 #, sh-format
 msgid "Submodule path '$displaypath': '$command $sha1'"
 msgstr "Подмодуль по пути «$displaypath»: «$command $sha1»"
 
-#: git-submodule.sh:707
+#: git-submodule.sh:712
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Не удалось выполнить рекурсивно для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:815
+#: git-submodule.sh:820
 msgid "The --cached option cannot be used with the --files option"
 msgstr "Опцию --cached нельзя использовать одновременно с опцией --files"
 
-#: git-submodule.sh:867
+#: git-submodule.sh:872
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "неизвестный режим $mod_dst"
 
-#: git-submodule.sh:887
+#: git-submodule.sh:892
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Предупреждение: $display_name не содержит коммит $sha1_src"
 
-#: git-submodule.sh:890
+#: git-submodule.sh:895
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Предупреждение: $display_name не содержит коммит $sha1_dst"
 
-#: git-submodule.sh:893
+#: git-submodule.sh:898
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr "  Предупреждение: $display_name не содержит коммиты $sha1_src и $sha1_dst"
 
-#: git-submodule.sh:918
-msgid "blob"
-msgstr "двоичный объект"
-
-#: git-submodule.sh:1040
+#: git-submodule.sh:1045
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "Не удалось выполнить рекурсивно для подмодуля по пути «$sm_path»"
 
-#: git-submodule.sh:1107
+#: git-submodule.sh:1112
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Синхронизация url для подмодуля «$displaypath»"
@@ -12566,12 +13358,12 @@ msgstr "Синхронизация url для подмодуля «$displaypath
 msgid "See git-${cmd}(1) for details."
 msgstr "Для дополнительной информации, смотрите git-${cmd}(1)."
 
-#: git-rebase--interactive.sh:131
+#: git-rebase--interactive.sh:140
 #, sh-format
 msgid "Rebasing ($new_count/$total)"
 msgstr "Перемещение ($new_count/$total)"
 
-#: git-rebase--interactive.sh:147
+#: git-rebase--interactive.sh:156
 msgid ""
 "\n"
 "Commands:\n"
@@ -12586,19 +13378,19 @@ msgid ""
 "These lines can be re-ordered; they are executed from top to bottom.\n"
 msgstr "\nКоманды:\n p, pick = использовать коммит\n r, reword = использовать коммит, но изменить сообщение коммита\n e, edit = использовать коммит, но остановиться для внесения правок\n s, squash = использовать коммит, но объединить его с предыдущим коммитом\n f, fixup = как «squash», но отбросить сообщение этого коммита\n x, exec = выполнить команду (остаток строки) с помощью командной оболочки\n d, drop = удалить коммит\n\nЭти строки могут быть перемещены; выполняются по очереди сверху вниз.\n"
 
-#: git-rebase--interactive.sh:162
+#: git-rebase--interactive.sh:171
 msgid ""
 "\n"
 "Do not remove any line. Use 'drop' explicitly to remove a commit.\n"
 msgstr "\nНе удаляйте строки. Используйте «drop», чтобы явно удалить коммит.\n"
 
-#: git-rebase--interactive.sh:166
+#: git-rebase--interactive.sh:175
 msgid ""
 "\n"
 "If you remove a line here THAT COMMIT WILL BE LOST.\n"
 msgstr "\nЕсли вы удалите строку здесь, то УКАЗАННЫЙ КОММИТ БУДЕТ УТЕРЯН.\n"
 
-#: git-rebase--interactive.sh:202
+#: git-rebase--interactive.sh:211
 #, sh-format
 msgid ""
 "You can amend the commit now, with\n"
@@ -12610,61 +13402,61 @@ msgid ""
 "\tgit rebase --continue"
 msgstr "Теперь вы можете исправить коммит с помощью\n\n\tgit commit --amend $gpg_sign_opt_quoted\n\nКак только вы будете довольны результатом, запустите\n\n\tgit rebase --continue"
 
-#: git-rebase--interactive.sh:227
+#: git-rebase--interactive.sh:236
 #, sh-format
 msgid "$sha1: not a commit that can be picked"
 msgstr "$sha1: не является коммитом, который можно взять"
 
-#: git-rebase--interactive.sh:266
+#: git-rebase--interactive.sh:275
 #, sh-format
 msgid "Invalid commit name: $sha1"
 msgstr "Недопустимое имя коммита: $sha1"
 
-#: git-rebase--interactive.sh:308
+#: git-rebase--interactive.sh:317
 msgid "Cannot write current commit's replacement sha1"
 msgstr "Не удалось записать замену sha1 текущего коммита"
 
-#: git-rebase--interactive.sh:360
+#: git-rebase--interactive.sh:369
 #, sh-format
 msgid "Fast-forward to $sha1"
 msgstr "Перемотка вперед до $sha1"
 
-#: git-rebase--interactive.sh:362
+#: git-rebase--interactive.sh:371
 #, sh-format
 msgid "Cannot fast-forward to $sha1"
 msgstr "Не удалось перемотать вперед до $sha1"
 
-#: git-rebase--interactive.sh:371
+#: git-rebase--interactive.sh:380
 #, sh-format
 msgid "Cannot move HEAD to $first_parent"
 msgstr "Не удалось переместить HEAD на $first_parent"
 
-#: git-rebase--interactive.sh:376
+#: git-rebase--interactive.sh:385
 #, sh-format
 msgid "Refusing to squash a merge: $sha1"
 msgstr "Нельзя уплотнить слияние: $sha1"
 
-#: git-rebase--interactive.sh:390
+#: git-rebase--interactive.sh:399
 #, sh-format
 msgid "Error redoing merge $sha1"
 msgstr "Ошибка при повторении слияния $sha1"
 
-#: git-rebase--interactive.sh:398
+#: git-rebase--interactive.sh:407
 #, sh-format
 msgid "Could not pick $sha1"
 msgstr "Не удалось взять $sha1"
 
-#: git-rebase--interactive.sh:407
+#: git-rebase--interactive.sh:416
 #, sh-format
 msgid "This is the commit message #${n}:"
 msgstr "Это сообщение коммита номер #${n}:"
 
-#: git-rebase--interactive.sh:412
+#: git-rebase--interactive.sh:421
 #, sh-format
 msgid "The commit message #${n} will be skipped:"
 msgstr "Сообщение коммита номер #${n} будет пропущено:"
 
-#: git-rebase--interactive.sh:423
+#: git-rebase--interactive.sh:432
 #, sh-format
 msgid "This is a combination of $count commit."
 msgid_plural "This is a combination of $count commits."
@@ -12673,26 +13465,26 @@ msgstr[1] "Это объединение $count коммитов"
 msgstr[2] "Это объединение $count коммитов"
 msgstr[3] "Это объединение $count коммитов"
 
-#: git-rebase--interactive.sh:431
+#: git-rebase--interactive.sh:440
 #, sh-format
 msgid "Cannot write $fixup_msg"
 msgstr "Не удалось записать $fixup_msg"
 
-#: git-rebase--interactive.sh:434
+#: git-rebase--interactive.sh:443
 msgid "This is a combination of 2 commits."
 msgstr "Это объединение 2 коммитов"
 
-#: git-rebase--interactive.sh:435
+#: git-rebase--interactive.sh:444
 msgid "This is the 1st commit message:"
 msgstr "Это 1-е сообщение коммита:"
 
-#: git-rebase--interactive.sh:475 git-rebase--interactive.sh:518
-#: git-rebase--interactive.sh:521
+#: git-rebase--interactive.sh:484 git-rebase--interactive.sh:527
+#: git-rebase--interactive.sh:530
 #, sh-format
 msgid "Could not apply $sha1... $rest"
 msgstr "Не удалось применить $sha1… $rest"
 
-#: git-rebase--interactive.sh:549
+#: git-rebase--interactive.sh:558
 #, sh-format
 msgid ""
 "Could not amend commit after successfully picking $sha1... $rest\n"
@@ -12701,31 +13493,31 @@ msgid ""
 "you are able to reword the commit."
 msgstr "Не удолось исправить коммит после успешного перехода на $sha1… $rest\nЭто произошло, скорее всего, из-за пустого сообщения коммита или из-за перехватчика перед коммитом. Если же это произошло из-за перехватчика перед коммитом, то вам нужно решить с ним проблему и повторить попытку снова."
 
-#: git-rebase--interactive.sh:564
+#: git-rebase--interactive.sh:573
 #, sh-format
 msgid "Stopped at $sha1_abbrev... $rest"
 msgstr "Остановлено на $sha1_abbrev… $rest"
 
-#: git-rebase--interactive.sh:579
+#: git-rebase--interactive.sh:588
 #, sh-format
 msgid "Cannot '$squash_style' without a previous commit"
 msgstr "Нельзя сделать «$squash_style» без указания предыдущего коммита"
 
-#: git-rebase--interactive.sh:621
+#: git-rebase--interactive.sh:630
 #, sh-format
 msgid "Executing: $rest"
 msgstr "Выполнение: $rest"
 
-#: git-rebase--interactive.sh:629
+#: git-rebase--interactive.sh:638
 #, sh-format
 msgid "Execution failed: $rest"
 msgstr "Не удалось выполнить: $rest"
 
-#: git-rebase--interactive.sh:631
+#: git-rebase--interactive.sh:640
 msgid "and made changes to the index and/or the working tree"
 msgstr "и были сделаны изменения в индексе и/или в рабочем каталоге"
 
-#: git-rebase--interactive.sh:633
+#: git-rebase--interactive.sh:642
 msgid ""
 "You can fix the problem, and then run\n"
 "\n"
@@ -12733,7 +13525,7 @@ msgid ""
 msgstr "Вы можете исправить ошибку, а затем запустить\n\n\tgit rebase --continue"
 
 #. TRANSLATORS: after these lines is a command to be issued by the user
-#: git-rebase--interactive.sh:646
+#: git-rebase--interactive.sh:655
 #, sh-format
 msgid ""
 "Execution succeeded: $rest\n"
@@ -12743,49 +13535,49 @@ msgid ""
 "\tgit rebase --continue"
 msgstr "Успешное выполнение: $rest\nно остались изменения в индексе и/или в рабочем каталоге\nСделайте коммит или спрячьте ваши изменения, а затем выполните\n\n\tgit rebase --continue"
 
-#: git-rebase--interactive.sh:657
+#: git-rebase--interactive.sh:666
 #, sh-format
 msgid "Unknown command: $command $sha1 $rest"
 msgstr "Неопознанная команда: $command $sha1 $rest"
 
-#: git-rebase--interactive.sh:658
+#: git-rebase--interactive.sh:667
 msgid "Please fix this using 'git rebase --edit-todo'."
 msgstr "Пожалуйста исправьте это с помощью «git rebase --edit-todo»."
 
-#: git-rebase--interactive.sh:693
+#: git-rebase--interactive.sh:702
 #, sh-format
 msgid "Successfully rebased and updated $head_name."
 msgstr "Успешно перебазирован и обновлён $head_name."
 
-#: git-rebase--interactive.sh:740
+#: git-rebase--interactive.sh:749
 msgid "Could not skip unnecessary pick commands"
 msgstr "Не удалось пропустить ненужные команды отбора (pick)"
 
-#: git-rebase--interactive.sh:898
+#: git-rebase--interactive.sh:907
 #, sh-format
 msgid ""
 "Warning: the SHA-1 is missing or isn't a commit in the following line:\n"
 " - $line"
 msgstr "Внимание: не найден SHA-1 или он не указывает на коммит. На строке:\n - $line"
 
-#: git-rebase--interactive.sh:931
+#: git-rebase--interactive.sh:940
 #, sh-format
 msgid ""
 "Warning: the command isn't recognized in the following line:\n"
 " - $line"
 msgstr "Внимание: команда не распознана на строке:\n - $line"
 
-#: git-rebase--interactive.sh:970
+#: git-rebase--interactive.sh:979
 msgid "could not detach HEAD"
 msgstr "не удалось отделить HEAD"
 
-#: git-rebase--interactive.sh:1008
+#: git-rebase--interactive.sh:1017
 msgid ""
 "Warning: some commits may have been dropped accidentally.\n"
 "Dropped commits (newer to older):"
 msgstr "Внимание: некоторые коммиты могли быть отброшены по ошибке.\nОтброшенные коммиты (от новых к старым):"
 
-#: git-rebase--interactive.sh:1016
+#: git-rebase--interactive.sh:1025
 msgid ""
 "To avoid this message, use \"drop\" to explicitly remove a commit.\n"
 "\n"
@@ -12793,26 +13585,28 @@ msgid ""
 "The possible behaviours are: ignore, warn, error."
 msgstr "Для избежания этого сообщения, используйте «drop» чтобы явно удалить коммит.\n\nИспользуйте опцию «git config rebase.missingCommitsCheck» для изменения количества предупреждений.\nВозможные значения: ignore, warn, error."
 
-#: git-rebase--interactive.sh:1027
+#: git-rebase--interactive.sh:1036
 #, sh-format
 msgid ""
 "Unrecognized setting $check_level for option rebase.missingCommitsCheck. "
 "Ignoring."
 msgstr "Нераспознанная настройка $check_level для опции rebase.missingCommitsCheck. Игнорирую."
 
-#: git-rebase--interactive.sh:1044
-msgid "You can fix this with 'git rebase --edit-todo'."
-msgstr "Вы можете исправить это с помощью «git rebase --edit-todo»."
+#: git-rebase--interactive.sh:1053
+msgid ""
+"You can fix this with 'git rebase --edit-todo' and then run 'git rebase "
+"--continue'."
+msgstr "Вы можете исправить это с помощью «git rebase --edit-todo», а потом запустив «git rebase --continue»."
 
-#: git-rebase--interactive.sh:1045
+#: git-rebase--interactive.sh:1054
 msgid "Or you can abort the rebase with 'git rebase --abort'."
 msgstr "Или вы можете отменить процесс перебазирования с помощью «git rebase --abort»."
 
-#: git-rebase--interactive.sh:1069
+#: git-rebase--interactive.sh:1078
 msgid "Could not remove CHERRY_PICK_HEAD"
 msgstr "Не удалось удалить CHERRY_PICK_HEAD"
 
-#: git-rebase--interactive.sh:1074
+#: git-rebase--interactive.sh:1083
 #, sh-format
 msgid ""
 "You have staged changes in your working tree.\n"
@@ -12825,26 +13619,26 @@ msgid ""
 "\n"
 "  git commit $gpg_sign_opt_quoted\n"
 "\n"
-"In both case, once you're done, continue with:\n"
+"In both cases, once you're done, continue with:\n"
 "\n"
 "  git rebase --continue\n"
 msgstr "У вас имеются проиндексированные изменения в рабочем каталоге.\nЕсли эти изменения должны быть объеденены с предыдущим коммитом, то запустите:\n\n  git commit --amend $gpg_sign_opt_quoted\n\nЕсли же они должны быть помещены в новый коммит, то запустите:\n\n  git commit $gpg_sign_opt_quoted\n\nВ любом случае, после того как вы закончите, продолжить перемещение можно выполнив:\n\n  git rebase --continue\n"
 
-#: git-rebase--interactive.sh:1091
+#: git-rebase--interactive.sh:1100
 msgid "Error trying to find the author identity to amend commit"
 msgstr "Произошла ошибка при поиске автора для исправления коммита"
 
-#: git-rebase--interactive.sh:1096
+#: git-rebase--interactive.sh:1105
 msgid ""
 "You have uncommitted changes in your working tree. Please commit them\n"
 "first and then run 'git rebase --continue' again."
 msgstr "У вас имеются незакоммиченные изменения в рабочем каталоге. Сделайте коммит, а затем запустите «git rebase --continue» снова."
 
-#: git-rebase--interactive.sh:1101 git-rebase--interactive.sh:1105
+#: git-rebase--interactive.sh:1110 git-rebase--interactive.sh:1114
 msgid "Could not commit staged changes."
 msgstr "Не удалось закоммитить проиндексированные изменения."
 
-#: git-rebase--interactive.sh:1129
+#: git-rebase--interactive.sh:1138
 msgid ""
 "\n"
 "You are editing the todo file of an ongoing interactive rebase.\n"
@@ -12853,37 +13647,33 @@ msgid ""
 "\n"
 msgstr "\nВы сейчас редактируете файл со списком дел для интерактивного перемещения.\nДля продолжения перемещения, после редактирования файла запустите:\n    git rebase --continue\n\n"
 
-#: git-rebase--interactive.sh:1137 git-rebase--interactive.sh:1298
+#: git-rebase--interactive.sh:1146 git-rebase--interactive.sh:1304
 msgid "Could not execute editor"
 msgstr "Не удалось запустить редактор"
 
-#: git-rebase--interactive.sh:1145
-msgid "You need to set your committer info first"
-msgstr "Сначала вам нужно указать вашу информацию коммитера"
-
-#: git-rebase--interactive.sh:1153
+#: git-rebase--interactive.sh:1159
 #, sh-format
 msgid "Could not checkout $switch_to"
 msgstr "Не удалось перейти на версию $switch_to"
 
-#: git-rebase--interactive.sh:1158
+#: git-rebase--interactive.sh:1164
 msgid "No HEAD?"
 msgstr "Нет указателя HEAD?"
 
-#: git-rebase--interactive.sh:1159
+#: git-rebase--interactive.sh:1165
 #, sh-format
 msgid "Could not create temporary $state_dir"
 msgstr "Не удалось создать временный каталог $state_dir"
 
-#: git-rebase--interactive.sh:1161
+#: git-rebase--interactive.sh:1167
 msgid "Could not mark as interactive"
 msgstr "Не удалось пометить как интерактивный"
 
-#: git-rebase--interactive.sh:1171 git-rebase--interactive.sh:1176
+#: git-rebase--interactive.sh:1177 git-rebase--interactive.sh:1182
 msgid "Could not init rewritten commits"
 msgstr "Не удалось инициализировать перезаписанные коммиты"
 
-#: git-rebase--interactive.sh:1276
+#: git-rebase--interactive.sh:1282
 #, sh-format
 msgid "Rebase $shortrevisions onto $shortonto ($todocount command)"
 msgid_plural "Rebase $shortrevisions onto $shortonto ($todocount commands)"
@@ -12892,14 +13682,14 @@ msgstr[1] "Перемещение $shortrevisions над $shortonto ($todocount
 msgstr[2] "Перемещение $shortrevisions над $shortonto ($todocount команд)"
 msgstr[3] "Перемещение $shortrevisions над $shortonto ($todocount команд)"
 
-#: git-rebase--interactive.sh:1281
+#: git-rebase--interactive.sh:1287
 msgid ""
 "\n"
 "However, if you remove everything, the rebase will be aborted.\n"
 "\n"
 msgstr "\nНо если вы удалите все, то процесс перемещения будет будет прерван.\n\n"
 
-#: git-rebase--interactive.sh:1288
+#: git-rebase--interactive.sh:1294
 msgid "Note that empty commits are commented out"
 msgstr "Заметьте, что пустые коммиты закомментированны"
 
@@ -12926,6 +13716,10 @@ msgstr "Не удалось выполнить перемещение комми
 msgid "Cannot rewrite branches: You have unstaged changes."
 msgstr "Не удалось выполнить перезапись веток: У вас есть непроиндексированные изменения."
 
+#: git-sh-setup.sh:226
+msgid "Cannot pull with rebase: You have unstaged changes."
+msgstr "Не удалось получить с перемещением: У вас есть непроиндексированные изменения."
+
 #: git-sh-setup.sh:229
 #, sh-format
 msgid "Cannot $action: You have unstaged changes."
@@ -12935,11 +13729,19 @@ msgstr "Не удалось выполнить $action: У вас есть не
 msgid "Cannot rebase: Your index contains uncommitted changes."
 msgstr "Не удалось выполнить перемещение коммитов: В вашем индексе есть незакоммиченные изменения."
 
+#: git-sh-setup.sh:245
+msgid "Cannot pull with rebase: Your index contains uncommitted changes."
+msgstr "Не удалось получить с перемещением: В вашем индексе есть незакоммиченные изменения."
+
 #: git-sh-setup.sh:248
 #, sh-format
 msgid "Cannot $action: Your index contains uncommitted changes."
 msgstr "Не удалось выполнить $action: В вашем индексе есть незакоммиченные изменения."
 
+#: git-sh-setup.sh:252
+msgid "Additionally, your index contains uncommitted changes."
+msgstr "К тому же, в вашем индексе есть незакоммиченные изменения."
+
 #: git-sh-setup.sh:372
 msgid "You need to run this command from the toplevel of the working tree."
 msgstr "Вам нужно запускать эту команду находясь на вершине рабочего каталога."
index f5f7a70c6d9b8ef36ecfe282167714640cace6b1..bd9801024c9cc95b2846ae5ec221c4e9d18d5e94 100644 (file)
@@ -1231,8 +1231,14 @@ static int commit_contains(struct ref_filter *filter, struct commit *commit)
  * matches a pattern "refs/heads/mas") or a wildcard (e.g. the same ref
  * matches "refs/heads/mas*", too).
  */
-static int match_pattern(const char **patterns, const char *refname)
+static int match_pattern(const struct ref_filter *filter, const char *refname)
 {
+       const char **patterns = filter->name_patterns;
+       unsigned flags = 0;
+
+       if (filter->ignore_case)
+               flags |= WM_CASEFOLD;
+
        /*
         * When no '--format' option is given we need to skip the prefix
         * for matching refs of tags and branches.
@@ -1243,7 +1249,7 @@ static int match_pattern(const char **patterns, const char *refname)
               skip_prefix(refname, "refs/", &refname));
 
        for (; *patterns; patterns++) {
-               if (!wildmatch(*patterns, refname, 0, NULL))
+               if (!wildmatch(*patterns, refname, flags, NULL))
                        return 1;
        }
        return 0;
@@ -1255,9 +1261,15 @@ static int match_pattern(const char **patterns, const char *refname)
  * matches a pattern "refs/heads/" but not "refs/heads/m") or a
  * wildcard (e.g. the same ref matches "refs/heads/m*", too).
  */
-static int match_name_as_path(const char **pattern, const char *refname)
+static int match_name_as_path(const struct ref_filter *filter, const char *refname)
 {
+       const char **pattern = filter->name_patterns;
        int namelen = strlen(refname);
+       unsigned flags = WM_PATHNAME;
+
+       if (filter->ignore_case)
+               flags |= WM_CASEFOLD;
+
        for (; *pattern; pattern++) {
                const char *p = *pattern;
                int plen = strlen(p);
@@ -1280,8 +1292,8 @@ static int filter_pattern_match(struct ref_filter *filter, const char *refname)
        if (!*filter->name_patterns)
                return 1; /* No pattern always matches */
        if (filter->match_as_path)
-               return match_name_as_path(filter->name_patterns, refname);
-       return match_pattern(filter->name_patterns, refname);
+               return match_name_as_path(filter, refname);
+       return match_pattern(filter, refname);
 }
 
 /*
@@ -1536,18 +1548,20 @@ static int cmp_ref_sorting(struct ref_sorting *s, struct ref_array_item *a, stru
        struct atom_value *va, *vb;
        int cmp;
        cmp_type cmp_type = used_atom[s->atom].type;
+       int (*cmp_fn)(const char *, const char *);
 
        get_ref_atom_value(a, s->atom, &va);
        get_ref_atom_value(b, s->atom, &vb);
+       cmp_fn = s->ignore_case ? strcasecmp : strcmp;
        if (s->version)
                cmp = versioncmp(va->s, vb->s);
        else if (cmp_type == FIELD_STR)
-               cmp = strcmp(va->s, vb->s);
+               cmp = cmp_fn(va->s, vb->s);
        else {
                if (va->ul < vb->ul)
                        cmp = -1;
                else if (va->ul == vb->ul)
-                       cmp = strcmp(a->refname, b->refname);
+                       cmp = cmp_fn(a->refname, b->refname);
                else
                        cmp = 1;
        }
index 14d435e2ccf0204312d1f72555f1c2c36fabd215..fc55fa3574620bfdc76b2997afc56909528e2275 100644 (file)
@@ -29,6 +29,7 @@ struct ref_sorting {
        struct ref_sorting *next;
        int atom; /* index into used_atom array (internal) */
        unsigned reverse : 1,
+               ignore_case : 1,
                version : 1;
 };
 
@@ -62,6 +63,7 @@ struct ref_filter {
 
        unsigned int with_commit_tag_algo : 1,
                match_as_path : 1,
+               ignore_case : 1,
                detached : 1;
        unsigned int kind,
                lines;
index f14c41f4c0d6d6c9bbfd18d6417d16f0e6068c1d..28d9d1063880b9b7e6ec18ea18c18f77fb99ef32 100644 (file)
@@ -274,7 +274,7 @@ static struct discovery *discover_refs(const char *service, int for_push)
        struct strbuf effective_url = STRBUF_INIT;
        struct discovery *last = last_discovery;
        int http_ret, maybe_smart = 0;
-       struct http_get_options options;
+       struct http_get_options http_options;
 
        if (last && !strcmp(service, last->service))
                return last;
@@ -291,15 +291,16 @@ static struct discovery *discover_refs(const char *service, int for_push)
                strbuf_addf(&refs_url, "service=%s", service);
        }
 
-       memset(&options, 0, sizeof(options));
-       options.content_type = &type;
-       options.charset = &charset;
-       options.effective_url = &effective_url;
-       options.base_url = &url;
-       options.no_cache = 1;
-       options.keep_error = 1;
+       memset(&http_options, 0, sizeof(http_options));
+       http_options.content_type = &type;
+       http_options.charset = &charset;
+       http_options.effective_url = &effective_url;
+       http_options.base_url = &url;
+       http_options.initial_request = 1;
+       http_options.no_cache = 1;
+       http_options.keep_error = 1;
 
-       http_ret = http_get_strbuf(refs_url.buf, &buffer, &options);
+       http_ret = http_get_strbuf(refs_url.buf, &buffer, &http_options);
        switch (http_ret) {
        case HTTP_OK:
                break;
@@ -314,6 +315,9 @@ static struct discovery *discover_refs(const char *service, int for_push)
                die("unable to access '%s': %s", url.buf, curl_errorstr);
        }
 
+       if (options.verbosity && !starts_with(refs_url.buf, url.buf))
+               warning(_("redirecting to %s"), url.buf);
+
        last= xcalloc(1, sizeof(*last_discovery));
        last->service = service;
        last->buf_alloc = strbuf_detach(&buffer, &last->len);
index 30b10ba143959bf2618872427f730a9f0e30d369..050e28bbc3d136509e8b7d909b27e9d954fa7754 100644 (file)
@@ -16,6 +16,7 @@
 #include "refs.h"
 #include "argv-array.h"
 #include "quote.h"
+#include "trailer.h"
 
 #define GIT_REFLOG_ACTION "GIT_REFLOG_ACTION"
 
@@ -56,30 +57,6 @@ static const char *get_todo_path(const struct replay_opts *opts)
        return git_path_todo_file();
 }
 
-static int is_rfc2822_line(const char *buf, int len)
-{
-       int i;
-
-       for (i = 0; i < len; i++) {
-               int ch = buf[i];
-               if (ch == ':')
-                       return 1;
-               if (!isalnum(ch) && ch != '-')
-                       break;
-       }
-
-       return 0;
-}
-
-static int is_cherry_picked_from_line(const char *buf, int len)
-{
-       /*
-        * We only care that it looks roughly like (cherry picked from ...)
-        */
-       return len > strlen(cherry_picked_prefix) + 1 &&
-               starts_with(buf, cherry_picked_prefix) && buf[len - 1] == ')';
-}
-
 /*
  * Returns 0 for non-conforming footer
  * Returns 1 for conforming footer
@@ -89,49 +66,25 @@ static int is_cherry_picked_from_line(const char *buf, int len)
 static int has_conforming_footer(struct strbuf *sb, struct strbuf *sob,
        int ignore_footer)
 {
-       char prev;
-       int i, k;
-       int len = sb->len - ignore_footer;
-       const char *buf = sb->buf;
-       int found_sob = 0;
-
-       /* footer must end with newline */
-       if (!len || buf[len - 1] != '\n')
-               return 0;
+       struct trailer_info info;
+       int i;
+       int found_sob = 0, found_sob_last = 0;
 
-       prev = '\0';
-       for (i = len - 1; i > 0; i--) {
-               char ch = buf[i];
-               if (prev == '\n' && ch == '\n') /* paragraph break */
-                       break;
-               prev = ch;
-       }
+       trailer_info_get(&info, sb->buf);
 
-       /* require at least one blank line */
-       if (prev != '\n' || buf[i] != '\n')
+       if (info.trailer_start == info.trailer_end)
                return 0;
 
-       /* advance to start of last paragraph */
-       while (i < len - 1 && buf[i] == '\n')
-               i++;
-
-       for (; i < len; i = k) {
-               int found_rfc2822;
-
-               for (k = i; k < len && buf[k] != '\n'; k++)
-                       ; /* do nothing */
-               k++;
+       for (i = 0; i < info.trailer_nr; i++)
+               if (sob && !strncmp(info.trailers[i], sob->buf, sob->len)) {
+                       found_sob = 1;
+                       if (i == info.trailer_nr - 1)
+                               found_sob_last = 1;
+               }
 
-               found_rfc2822 = is_rfc2822_line(buf + i, k - i - 1);
-               if (found_rfc2822 && sob &&
-                   !strncmp(buf + i, sob->buf, sob->len))
-                       found_sob = k;
+       trailer_info_release(&info);
 
-               if (!(found_rfc2822 ||
-                     is_cherry_picked_from_line(buf + i, k - i - 1)))
-                       return 0;
-       }
-       if (found_sob == i)
+       if (found_sob_last)
                return 3;
        if (found_sob)
                return 2;
index 6f7d883de950af8ba6427537d09e021a4bed36bd..ece17315d671cf182f21c261d879c58f193cde09 100644 (file)
@@ -500,27 +500,67 @@ static int has_remote(const char *refname, const struct object_id *oid,
        return 1;
 }
 
-static int submodule_needs_pushing(const char *path, const unsigned char sha1[20])
+static int append_sha1_to_argv(const unsigned char sha1[20], void *data)
 {
-       if (add_submodule_odb(path) || !lookup_commit_reference(sha1))
+       struct argv_array *argv = data;
+       argv_array_push(argv, sha1_to_hex(sha1));
+       return 0;
+}
+
+static int check_has_commit(const unsigned char sha1[20], void *data)
+{
+       int *has_commit = data;
+
+       if (!lookup_commit_reference(sha1))
+               *has_commit = 0;
+
+       return 0;
+}
+
+static int submodule_has_commits(const char *path, struct sha1_array *commits)
+{
+       int has_commit = 1;
+
+       if (add_submodule_odb(path))
+               return 0;
+
+       sha1_array_for_each_unique(commits, check_has_commit, &has_commit);
+       return has_commit;
+}
+
+static int submodule_needs_pushing(const char *path, struct sha1_array *commits)
+{
+       if (!submodule_has_commits(path, commits))
+               /*
+                * NOTE: We do consider it safe to return "no" here. The
+                * correct answer would be "We do not know" instead of
+                * "No push needed", but it is quite hard to change
+                * the submodule pointer without having the submodule
+                * around. If a user did however change the submodules
+                * without having the submodule around, this indicates
+                * an expert who knows what they are doing or a
+                * maintainer integrating work from other people. In
+                * both cases it should be safe to skip this check.
+                */
                return 0;
 
        if (for_each_remote_ref_submodule(path, has_remote, NULL) > 0) {
                struct child_process cp = CHILD_PROCESS_INIT;
-               const char *argv[] = {"rev-list", NULL, "--not", "--remotes", "-n", "1" , NULL};
                struct strbuf buf = STRBUF_INIT;
                int needs_pushing = 0;
 
-               argv[1] = sha1_to_hex(sha1);
-               cp.argv = argv;
+               argv_array_push(&cp.args, "rev-list");
+               sha1_array_for_each_unique(commits, append_sha1_to_argv, &cp.args);
+               argv_array_pushl(&cp.args, "--not", "--remotes", "-n", "1" , NULL);
+
                prepare_submodule_repo_env(&cp.env_array);
                cp.git_cmd = 1;
                cp.no_stdin = 1;
                cp.out = -1;
                cp.dir = path;
                if (start_command(&cp))
-                       die("Could not run 'git rev-list %s --not --remotes -n 1' command in submodule %s",
-                               sha1_to_hex(sha1), path);
+                       die("Could not run 'git rev-list <commits> --not --remotes -n 1' command in submodule %s",
+                                       path);
                if (strbuf_read(&buf, cp.out, 41))
                        needs_pushing = 1;
                finish_command(&cp);
@@ -532,19 +572,34 @@ static int submodule_needs_pushing(const char *path, const unsigned char sha1[20
        return 0;
 }
 
+static struct sha1_array *submodule_commits(struct string_list *submodules,
+                                           const char *path)
+{
+       struct string_list_item *item;
+
+       item = string_list_insert(submodules, path);
+       if (item->util)
+               return (struct sha1_array *) item->util;
+
+       /* NEEDSWORK: should we have sha1_array_init()? */
+       item->util = xcalloc(1, sizeof(struct sha1_array));
+       return (struct sha1_array *) item->util;
+}
+
 static void collect_submodules_from_diff(struct diff_queue_struct *q,
                                         struct diff_options *options,
                                         void *data)
 {
        int i;
-       struct string_list *needs_pushing = data;
+       struct string_list *submodules = data;
 
        for (i = 0; i < q->nr; i++) {
                struct diff_filepair *p = q->queue[i];
+               struct sha1_array *commits;
                if (!S_ISGITLINK(p->two->mode))
                        continue;
-               if (submodule_needs_pushing(p->two->path, p->two->oid.hash))
-                       string_list_insert(needs_pushing, p->two->path);
+               commits = submodule_commits(submodules, p->two->path);
+               sha1_array_append(commits, p->two->oid.hash);
        }
 }
 
@@ -560,46 +615,63 @@ static void find_unpushed_submodule_commits(struct commit *commit,
        diff_tree_combined_merge(commit, 1, &rev);
 }
 
-int find_unpushed_submodules(unsigned char new_sha1[20],
+static void free_submodules_sha1s(struct string_list *submodules)
+{
+       struct string_list_item *item;
+       for_each_string_list_item(item, submodules)
+               sha1_array_clear((struct sha1_array *) item->util);
+       string_list_clear(submodules, 1);
+}
+
+int find_unpushed_submodules(struct sha1_array *commits,
                const char *remotes_name, struct string_list *needs_pushing)
 {
        struct rev_info rev;
        struct commit *commit;
-       const char *argv[] = {NULL, NULL, "--not", "NULL", NULL};
-       int argc = ARRAY_SIZE(argv) - 1;
-       char *sha1_copy;
-
-       struct strbuf remotes_arg = STRBUF_INIT;
+       struct string_list submodules = STRING_LIST_INIT_DUP;
+       struct string_list_item *submodule;
+       struct argv_array argv = ARGV_ARRAY_INIT;
 
-       strbuf_addf(&remotes_arg, "--remotes=%s", remotes_name);
        init_revisions(&rev, NULL);
-       sha1_copy = xstrdup(sha1_to_hex(new_sha1));
-       argv[1] = sha1_copy;
-       argv[3] = remotes_arg.buf;
-       setup_revisions(argc, argv, &rev, NULL);
+
+       /* argv.argv[0] will be ignored by setup_revisions */
+       argv_array_push(&argv, "find_unpushed_submodules");
+       sha1_array_for_each_unique(commits, append_sha1_to_argv, &argv);
+       argv_array_push(&argv, "--not");
+       argv_array_pushf(&argv, "--remotes=%s", remotes_name);
+
+       setup_revisions(argv.argc, argv.argv, &rev, NULL);
        if (prepare_revision_walk(&rev))
                die("revision walk setup failed");
 
        while ((commit = get_revision(&rev)) != NULL)
-               find_unpushed_submodule_commits(commit, needs_pushing);
+               find_unpushed_submodule_commits(commit, &submodules);
 
        reset_revision_walk();
-       free(sha1_copy);
-       strbuf_release(&remotes_arg);
+       argv_array_clear(&argv);
+
+       for_each_string_list_item(submodule, &submodules) {
+               struct sha1_array *commits = (struct sha1_array *) submodule->util;
+
+               if (submodule_needs_pushing(submodule->string, commits))
+                       string_list_insert(needs_pushing, submodule->string);
+       }
+       free_submodules_sha1s(&submodules);
 
        return needs_pushing->nr;
 }
 
-static int push_submodule(const char *path)
+static int push_submodule(const char *path, int dry_run)
 {
        if (add_submodule_odb(path))
                return 1;
 
        if (for_each_remote_ref_submodule(path, has_remote, NULL) > 0) {
                struct child_process cp = CHILD_PROCESS_INIT;
-               const char *argv[] = {"push", NULL};
+               argv_array_push(&cp.args, "push");
+               if (dry_run)
+                       argv_array_push(&cp.args, "--dry-run");
 
-               cp.argv = argv;
                prepare_submodule_repo_env(&cp.env_array);
                cp.git_cmd = 1;
                cp.no_stdin = 1;
@@ -612,18 +684,20 @@ static int push_submodule(const char *path)
        return 1;
 }
 
-int push_unpushed_submodules(unsigned char new_sha1[20], const char *remotes_name)
+int push_unpushed_submodules(struct sha1_array *commits,
+                            const char *remotes_name,
+                            int dry_run)
 {
        int i, ret = 1;
        struct string_list needs_pushing = STRING_LIST_INIT_DUP;
 
-       if (!find_unpushed_submodules(new_sha1, remotes_name, &needs_pushing))
+       if (!find_unpushed_submodules(commits, remotes_name, &needs_pushing))
                return 1;
 
        for (i = 0; i < needs_pushing.nr; i++) {
                const char *path = needs_pushing.items[i].string;
                fprintf(stderr, "Pushing submodule '%s'\n", path);
-               if (!push_submodule(path)) {
+               if (!push_submodule(path, dry_run)) {
                        fprintf(stderr, "Unable to push submodule '%s'\n", path);
                        ret = 0;
                }
index d9e197a948fdab44b7a5df4161a5df9c3a2938ff..23d76682b1ea123d040a29f6f9613c3e1794f87d 100644 (file)
@@ -3,6 +3,7 @@
 
 struct diff_options;
 struct argv_array;
+struct sha1_array;
 
 enum {
        RECURSE_SUBMODULES_CHECK = -4,
@@ -62,9 +63,11 @@ int submodule_uses_gitfile(const char *path);
 int ok_to_remove_submodule(const char *path);
 int merge_submodule(unsigned char result[20], const char *path, const unsigned char base[20],
                    const unsigned char a[20], const unsigned char b[20], int search);
-int find_unpushed_submodules(unsigned char new_sha1[20], const char *remotes_name,
+int find_unpushed_submodules(struct sha1_array *commits, const char *remotes_name,
                struct string_list *needs_pushing);
-int push_unpushed_submodules(unsigned char new_sha1[20], const char *remotes_name);
+extern int push_unpushed_submodules(struct sha1_array *commits,
+                                   const char *remotes_name,
+                                   int dry_run);
 void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir);
 int parallel_submodules(void);
 
index c3e631394f4a47f32e62e266431607861929f328..69174c6e3110d5e214c048aceccf07232b813ce7 100644 (file)
@@ -123,6 +123,7 @@ ScriptAlias /error/ error.sh/
 </Files>
 
 RewriteEngine on
+RewriteRule ^/dumb-redir/(.*)$ /dumb/$1 [R=301]
 RewriteRule ^/smart-redir-perm/(.*)$ /smart/$1 [R=301]
 RewriteRule ^/smart-redir-temp/(.*)$ /smart/$1 [R=302]
 RewriteRule ^/smart-redir-auth/(.*)$ /auth/smart/$1 [R=301]
@@ -132,6 +133,19 @@ RewriteRule ^/ftp-redir/(.*)$ ftp://localhost:1000/$1 [R=302]
 RewriteRule ^/loop-redir/x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-(.*) /$1 [R=302]
 RewriteRule ^/loop-redir/(.*)$ /loop-redir/x-$1 [R=302]
 
+# The first rule issues a client-side redirect to something
+# that _doesn't_ look like a git repo. The second rule is a
+# server-side rewrite, so that it turns out the odd-looking
+# thing _is_ a git repo. The "[PT]" tells Apache to match
+# the usual ScriptAlias rules for /smart.
+RewriteRule ^/insane-redir/(.*)$ /intern-redir/$1/foo [R=301]
+RewriteRule ^/intern-redir/(.*)/foo$ /smart/$1 [PT]
+
+# Serve info/refs internally without redirecting, but
+# issue a redirect for any object requests.
+RewriteRule ^/redir-objects/(.*/info/refs)$ /dumb/$1 [PT]
+RewriteRule ^/redir-objects/(.*/objects/.*)$ /dumb/$1 [R=301]
+
 # Apache 2.2 does not understand <RequireAll>, so we use RewriteCond.
 # And as RewriteCond does not allow testing for non-matches, we match
 # the desired case first (one has abra, two has cadabra), and let it
index 4ea534e9fa70ea302d4a88a8bc922c100f896873..34891c4b1ad1c53ebc78b18484c7c146659ce68d 100755 (executable)
@@ -350,10 +350,9 @@ test_expect_success PERL 'required process filter should filter data' '
                cd repo &&
                git init &&
 
-               echo "git-stderr.log" >.gitignore &&
                echo "*.r filter=protocol" >.gitattributes &&
                git add . &&
-               git commit -m "test commit 1" &&
+               git commit -m "test commit 1" &&
                git branch empty-branch &&
 
                cp "$TEST_ROOT/test.o" test.r &&
@@ -378,7 +377,7 @@ test_expect_success PERL 'required process filter should filter data' '
                EOF
                test_cmp_count expected.log rot13-filter.log &&
 
-               filter_git commit -m "test commit 2" &&
+               filter_git commit -m "test commit 2" &&
                cat >expected.log <<-EOF &&
                        START
                        init handshake complete
index 1b1b65a6b0fc7ace4e18e8642a6c47631d7e6a43..465eeeacd3de1971c7256c84583377b3b47d520b 100755 (executable)
@@ -96,4 +96,44 @@ test_expect_success 'bare repo cleanup' '
        rm -rf bare1
 '
 
+test_expect_success 'broken main worktree still at the top' '
+       git init broken-main &&
+       (
+               cd broken-main &&
+               test_commit new &&
+               git worktree add linked &&
+               cat >expected <<-EOF &&
+               worktree $(pwd)
+               HEAD $_z40
+
+               EOF
+               cd linked &&
+               echo "worktree $(pwd)" >expected &&
+               echo "ref: .broken" >../.git/HEAD &&
+               git worktree list --porcelain | head -n 3 >actual &&
+               test_cmp ../expected actual &&
+               git worktree list | head -n 1 >actual.2 &&
+               grep -F "(error)" actual.2
+       )
+'
+
+test_expect_success 'linked worktrees are sorted' '
+       mkdir sorted &&
+       git init sorted/main &&
+       (
+               cd sorted/main &&
+               test_tick &&
+               test_commit new &&
+               git worktree add ../first &&
+               git worktree add ../second &&
+               git worktree list --porcelain | grep ^worktree >actual
+       ) &&
+       cat >expected <<-EOF &&
+       worktree $(pwd)/sorted/main
+       worktree $(pwd)/sorted/first
+       worktree $(pwd)/sorted/second
+       EOF
+       test_cmp expected sorted/main/actual
+'
+
 test_done
index 470f33466ca561484da080a522add72bed51ad6e..9a893b5fe746f03521454972199ecb2d243d79ab 100755 (executable)
@@ -575,13 +575,13 @@ test_expect_success 'merge removes empty directories' '
        test_must_fail test -d d
 '
 
-test_expect_failure 'merge-recursive simple w/submodule' '
+test_expect_success 'merge-recursive simple w/submodule' '
 
        git checkout submod &&
        git merge remove
 '
 
-test_expect_failure 'merge-recursive simple w/submodule result' '
+test_expect_success 'merge-recursive simple w/submodule result' '
 
        git ls-files -s >actual &&
        (
index c6a3ccba1b992cff7412bcf8139da7557981de94..52283dfc8cdafabba485fa6896279d600230abf9 100755 (executable)
@@ -89,6 +89,11 @@ test_expect_success 'git branch --list -v pattern shows branch summaries' '
        awk "{print \$NF}" <tmp >actual &&
        test_cmp expect actual
 '
+test_expect_success 'git branch --ignore-case --list -v pattern shows branch summaries' '
+       git branch --list --ignore-case -v BRANCH* >tmp &&
+       awk "{print \$NF}" <tmp >actual &&
+       test_cmp expect actual
+'
 
 test_expect_success 'git branch -v pattern does not show branch summaries' '
        test_must_fail git branch -v branch*
@@ -196,4 +201,28 @@ test_expect_success 'local-branch symrefs shortened properly' '
        test_cmp expect actual
 '
 
+test_expect_success 'sort branches, ignore case' '
+       (
+               git init sort-icase &&
+               cd sort-icase &&
+               test_commit initial &&
+               git branch branch-one &&
+               git branch BRANCH-two &&
+               git branch --list | awk "{print \$NF}" >actual &&
+               cat >expected <<-\EOF &&
+               BRANCH-two
+               branch-one
+               master
+               EOF
+               test_cmp expected actual &&
+               git branch --list -i | awk "{print \$NF}" >actual &&
+               cat >expected <<-\EOF &&
+               branch-one
+               BRANCH-two
+               master
+               EOF
+               test_cmp expected actual
+       )
+'
+
 test_done
index d5b896d4459e82cdc7eb363af77d8eef28871229..ebf4f5e4b2c1c1cc20a49888df14cedd14b49a8b 100755 (executable)
@@ -38,9 +38,6 @@ git_rebase_interactive () {
        git rebase -i "$1"
 }
 
-KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1
-# The real reason "replace directory with submodule" fails is because a
-# directory "sub1" exists, but we reuse the suppression added for merge here
 test_submodule_switch "git_rebase_interactive"
 
 test_done
index 394f0005a195c1fbc713226c97ecee5cf4600007..4f2a263b63e14348032959059c15b160fecba39c 100755 (executable)
@@ -141,4 +141,16 @@ test_expect_success 'cherry-pick "-" works with arguments' '
        test_cmp expect actual
 '
 
+test_expect_success 'cherry-pick works with dirty renamed file' '
+       test_commit to-rename &&
+       git checkout -b unrelated &&
+       test_commit unrelated &&
+       git checkout @{-1} &&
+       git mv to-rename.t renamed &&
+       test_tick &&
+       git commit -m renamed &&
+       echo modified >renamed &&
+       git cherry-pick refs/heads/unrelated
+'
+
 test_done
index 9cce5ae8815a11e3453f5669b0592f7f7659009b..bf0a5c9887235afb5e336a34815d6bb3d64875d8 100755 (executable)
@@ -25,9 +25,8 @@ Signed-off-by: B.U. Thor <buthor@example.com>"
 
 mesg_broken_footer="$mesg_no_footer
 
-The signed-off-by string should begin with the words Signed-off-by followed
-by a colon and space, and then the signers name and email address. e.g.
-Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
+This is not recognized as a footer because Myfooter is not a recognized token.
+Myfooter: A.U. Thor <author@example.com>"
 
 mesg_with_footer_sob="$mesg_with_footer
 Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
@@ -112,6 +111,17 @@ test_expect_success 'cherry-pick -s inserts blank line after non-conforming foot
        test_cmp expect actual
 '
 
+test_expect_success 'cherry-pick -s recognizes trailer config' '
+       pristine_detach initial &&
+       git -c "trailer.Myfooter.ifexists=add" cherry-pick -s mesg-broken-footer &&
+       cat <<-EOF >expect &&
+               $mesg_broken_footer
+               Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>
+       EOF
+       git log -1 --pretty=format:%B >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'cherry-pick -x inserts blank line when conforming footer not found' '
        pristine_detach initial &&
        sha1=$(git rev-parse mesg-no-footer^0) &&
index e1a6ccc00c5988cfa8808bccc49a5e21703166b6..2de3e18ce68a94111c8dfcca858b8515ea8919c1 100755 (executable)
@@ -766,4 +766,13 @@ test_expect_success 'stash list --cc shows combined diff' '
        test_cmp expect actual
 '
 
+test_expect_success 'stash is not confused by partial renames' '
+       mv file renamed &&
+       git add renamed &&
+       git stash &&
+       git stash apply &&
+       test_path_is_file renamed &&
+       test_path_is_missing file
+'
+
 test_done
index ba4902df2b605f89ec2abcac50abefc2f23fc9bf..482112ca339f05fc31e6f9c2c6168971a1121e87 100755 (executable)
@@ -1294,8 +1294,7 @@ EOF
 4:Subject: [PATCH] subject
 8:
 10:Signed-off-by: example happens to be wrapped here.
-11:
-12:Signed-off-by: C O Mitter <committer@example.com>
+11:Signed-off-by: C O Mitter <committer@example.com>
 EOF
        test_cmp expected actual
 '
@@ -1368,7 +1367,7 @@ EOF
        test_cmp expected actual
 '
 
-test_expect_success 'signoff: detect garbage in non-conforming footer' '
+test_expect_success 'signoff: tolerate garbage in conforming footer' '
        append_signoff <<\EOF >actual &&
 subject
 
@@ -1383,8 +1382,36 @@ EOF
 8:
 10:
 13:Signed-off-by: C O Mitter <committer@example.com>
-14:
-15:Signed-off-by: C O Mitter <committer@example.com>
+EOF
+       test_cmp expected actual
+'
+
+test_expect_success 'signoff: respect trailer config' '
+       append_signoff <<\EOF >actual &&
+subject
+
+Myfooter: x
+Some Trash
+EOF
+       cat >expected <<\EOF &&
+4:Subject: [PATCH] subject
+8:
+11:
+12:Signed-off-by: C O Mitter <committer@example.com>
+EOF
+       test_cmp expected actual &&
+
+       test_config trailer.Myfooter.ifexists add &&
+       append_signoff <<\EOF >actual &&
+subject
+
+Myfooter: x
+Some Trash
+EOF
+       cat >expected <<\EOF &&
+4:Subject: [PATCH] subject
+8:
+11:Signed-off-by: C O Mitter <committer@example.com>
 EOF
        test_cmp expected actual
 '
index 198ce8475416be494fc023de3835828332da424d..1524ff5ba692d9c962ec51ef0c7948aca6ddf240 100755 (executable)
@@ -427,7 +427,31 @@ test_expect_success 'push unpushable submodule recursively fails' '
                cd submodule.git &&
                git rev-parse master >../actual
        ) &&
+       test_when_finished git -C work reset --hard master^ &&
        test_cmp expected actual
 '
 
+test_expect_success 'push --dry-run does not recursively update submodules' '
+       (
+               cd work/gar/bage &&
+               git checkout master &&
+               git rev-parse master >../../../expected_submodule &&
+               > junk9 &&
+               git add junk9 &&
+               git commit -m "Ninth junk" &&
+
+               # Go up to 'work' directory
+               cd ../.. &&
+               git checkout master &&
+               git rev-parse master >../expected_pub &&
+               git add gar/bage &&
+               git commit -m "Ninth commit for gar/bage" &&
+               git push --dry-run --recurse-submodules=on-demand ../pub.git master
+       ) &&
+       git -C submodule.git rev-parse master >actual_submodule &&
+       git -C pub.git rev-parse master >actual_pub &&
+       test_cmp expected_pub actual_pub &&
+       test_cmp expected_submodule actual_submodule
+'
+
 test_done
index 7641417b4a3848fa9d065572e5a8248fea5c7574..264a1ab8b0ea794ce398d9d5c3a40adb31bd0ff9 100755 (executable)
@@ -307,5 +307,66 @@ test_expect_success 'remote-http complains cleanly about malformed urls' '
        test_must_fail git remote-http http::/example.com/repo.git
 '
 
+test_expect_success 'redirects can be forbidden/allowed' '
+       test_must_fail git -c http.followRedirects=false \
+               clone $HTTPD_URL/dumb-redir/repo.git dumb-redir &&
+       git -c http.followRedirects=true \
+               clone $HTTPD_URL/dumb-redir/repo.git dumb-redir 2>stderr
+'
+
+test_expect_success 'redirects are reported to stderr' '
+       # just look for a snippet of the redirected-to URL
+       test_i18ngrep /dumb/ stderr
+'
+
+test_expect_success 'non-initial redirects can be forbidden' '
+       test_must_fail git -c http.followRedirects=initial \
+               clone $HTTPD_URL/redir-objects/repo.git redir-objects &&
+       git -c http.followRedirects=true \
+               clone $HTTPD_URL/redir-objects/repo.git redir-objects
+'
+
+test_expect_success 'http.followRedirects defaults to "initial"' '
+       test_must_fail git clone $HTTPD_URL/redir-objects/repo.git default
+'
+
+# The goal is for a clone of the "evil" repository, which has no objects
+# itself, to cause the client to fetch objects from the "victim" repository.
+test_expect_success 'set up evil alternates scheme' '
+       victim=$HTTPD_DOCUMENT_ROOT_PATH/victim.git &&
+       git init --bare "$victim" &&
+       git -C "$victim" --work-tree=. commit --allow-empty -m secret &&
+       git -C "$victim" repack -ad &&
+       git -C "$victim" update-server-info &&
+       sha1=$(git -C "$victim" rev-parse HEAD) &&
+
+       evil=$HTTPD_DOCUMENT_ROOT_PATH/evil.git &&
+       git init --bare "$evil" &&
+       # do this by hand to avoid object existence check
+       printf "%s\\t%s\\n" $sha1 refs/heads/master >"$evil/info/refs"
+'
+
+# Here we'll just redirect via HTTP. In a real-world attack these would be on
+# different servers, but we should reject it either way.
+test_expect_success 'http-alternates is a non-initial redirect' '
+       echo "$HTTPD_URL/dumb/victim.git/objects" \
+               >"$evil/objects/info/http-alternates" &&
+       test_must_fail git -c http.followRedirects=initial \
+               clone $HTTPD_URL/dumb/evil.git evil-initial &&
+       git -c http.followRedirects=true \
+               clone $HTTPD_URL/dumb/evil.git evil-initial
+'
+
+# Curl supports a lot of protocols that we'd prefer not to allow
+# http-alternates to use, but it's hard to test whether curl has
+# accessed, say, the SMTP protocol, because we are not running an SMTP server.
+# But we can check that it does not allow access to file://, which would
+# otherwise allow this clone to complete.
+test_expect_success 'http-alternates cannot point at funny protocols' '
+       echo "file://$victim/objects" >"$evil/objects/info/http-alternates" &&
+       test_must_fail git -c http.followRedirects=true \
+               clone "$HTTPD_URL/dumb/evil.git" evil-file
+'
+
 stop_httpd
 test_done
index 1ec5b2747a2100d3ae043cde5a2436eed2d52aec..6e5b9e42fb6d3f8c25c1a08388c4eb5ec3284500 100755 (executable)
@@ -119,6 +119,10 @@ test_expect_success 'redirects re-root further requests' '
        git clone $HTTPD_URL/smart-redir-limited/repo.git repo-redir-limited
 '
 
+test_expect_success 're-rooting dies on insane schemes' '
+       test_must_fail git clone $HTTPD_URL/insane-redir/repo.git insane
+'
+
 test_expect_success 'clone from password-protected repository' '
        echo two >expect &&
        set_askpass user@host pass@host &&
index 0d105d54174e061b20707de808b284314f730667..044cc152f83b05e090a65268c8818d56adb4422b 100755 (executable)
@@ -18,6 +18,7 @@ test_proto "smart http" http "$HTTPD_URL/smart/repo.git"
 
 test_expect_success 'curl redirects respect whitelist' '
        test_must_fail env GIT_ALLOW_PROTOCOL=http:https \
+                          GIT_SMART_HTTP=0 \
                git clone "$HTTPD_URL/ftp-redir/repo.git" 2>stderr &&
        {
                test_i18ngrep "ftp.*disabled" stderr ||
index 64a9850e3197dc2cbff00593f04a5fa196dbd632..8c617981a3a06c1ff49f03a2914bfdc31c0e293c 100755 (executable)
@@ -83,12 +83,24 @@ test_expect_success 'final^1^@ = final^1^1 final^1^2' '
        test_cmp expect actual
 '
 
+test_expect_success 'symbolic final^1^@ = final^1^1 final^1^2' '
+       git rev-parse --symbolic final^1^1 final^1^2 >expect &&
+       git rev-parse --symbolic final^1^@ >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'final^1^! = final^1 ^final^1^1 ^final^1^2' '
        git rev-parse final^1 ^final^1^1 ^final^1^2 >expect &&
        git rev-parse final^1^! >actual &&
        test_cmp expect actual
 '
 
+test_expect_success 'symbolic final^1^! = final^1 ^final^1^1 ^final^1^2' '
+       git rev-parse --symbolic final^1 ^final^1^1 ^final^1^2 >expect &&
+       git rev-parse --symbolic final^1^! >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'large graft octopus' '
        test_cmp_rev_output b31 "git rev-parse --verify b1^30"
 '
@@ -143,6 +155,12 @@ test_expect_success 'rev-parse merge^-2 = merge^2..merge' '
        test_cmp expect actual
 '
 
+test_expect_success 'symbolic merge^-1 = merge^1..merge' '
+       git rev-parse --symbolic merge^1..merge >expect &&
+       git rev-parse --symbolic merge^-1 >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'rev-parse merge^-0 (invalid parent)' '
        test_must_fail git rev-parse merge^-0
 '
index 8b0f71a2ac15d65f977b0daa2a53ad47b64a043a..07869b0c09da1313dd5564c2318dc5d44818f3a9 100755 (executable)
@@ -27,6 +27,30 @@ test_expect_success 'listing all tags in an empty tree should output nothing' '
        test $(git tag | wc -l) -eq 0
 '
 
+test_expect_success 'sort tags, ignore case' '
+       (
+               git init sort &&
+               cd sort &&
+               test_commit initial &&
+               git tag tag-one &&
+               git tag TAG-two &&
+               git tag -l >actual &&
+               cat >expected <<-\EOF &&
+               TAG-two
+               initial
+               tag-one
+               EOF
+               test_cmp expected actual &&
+               git tag -l -i >actual &&
+               cat >expected <<-\EOF &&
+               initial
+               tag-one
+               TAG-two
+               EOF
+               test_cmp expected actual
+       )
+'
+
 test_expect_success 'looking for a tag in an empty tree should fail' \
        '! (tag_exists mytag)'
 
@@ -81,6 +105,9 @@ test_expect_success 'listing all tags if one exists should output that tag' '
 test_expect_success 'listing a tag using a matching pattern should succeed' \
        'git tag -l mytag'
 
+test_expect_success 'listing a tag with --ignore-case' \
+       'test $(git tag -l --ignore-case MYTAG) = mytag'
+
 test_expect_success \
        'listing a tag using a matching pattern should output that tag' \
        'test $(git tag -l mytag) = mytag'
index d84897a67a3c365e280f88b36f43fc49e1ac9d7b..4003a27e6aa117e30446bca2d91f230f144ae8a9 100755 (executable)
@@ -460,6 +460,42 @@ $alt" &&
        test_cmp expected actual
 '
 
+test_expect_success 'signoff respects trailer config' '
+
+       echo 5 >positive &&
+       git add positive &&
+       git commit -s -m "subject
+
+non-trailer line
+Myfooter: x" &&
+       git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
+       (
+               echo subject
+               echo
+               echo non-trailer line
+               echo Myfooter: x
+               echo
+               echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
+       ) >expected &&
+       test_cmp expected actual &&
+
+       echo 6 >positive &&
+       git add positive &&
+       git -c "trailer.Myfooter.ifexists=add" commit -s -m "subject
+
+non-trailer line
+Myfooter: x" &&
+       git cat-file commit HEAD | sed -e "1,/^\$/d" > actual &&
+       (
+               echo subject
+               echo
+               echo non-trailer line
+               echo Myfooter: x
+               echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
+       ) >expected &&
+       test_cmp expected actual
+'
+
 test_expect_success 'multiple -m' '
 
        >negative &&
index f80bdb81e1f12124e32d5cd2c5c0ecdcd82dc782..e90413204ee32cafc3380244a5cf013eadcd72c1 100755 (executable)
@@ -105,7 +105,7 @@ test_expect_success 'not uptodate file porcelain checkout error' '
 '
 
 cat >expect <<\EOF
-error: Updating the following directories would lose untracked files in it:
+error: Updating the following directories would lose untracked files in them:
        rep
        rep2
 
index 6d9f21511fe1062565d8d08f60c385cffd94cac6..63d36fb28e44426708a743979c4bc341bdac714e 100755 (executable)
@@ -591,7 +591,8 @@ test_expect_success 'filenames seen by tools start with ./' '
 
 test_lazy_prereq MKTEMP '
        tempdir=$(mktemp -d -t foo.XXXXXX) &&
-       test -d "$tempdir"
+       test -d "$tempdir" &&
+       rmdir "$tempdir"
 '
 
 test_expect_success MKTEMP 'temporary filenames are used with mergetool.writeToTemp' '
index 593152817dadaf1804f4a851c51b8bf1cbf52db9..e37239e657964e948e51e5ac186f5fdf4fab6003 100755 (executable)
@@ -413,6 +413,75 @@ test_expect_success 'submit --prepare-p4-only' '
        )
 '
 
+test_expect_success 'submit --shelve' '
+       test_when_finished cleanup_git &&
+       git p4 clone --dest="$git" //depot &&
+       (
+               cd "$cli" &&
+               p4 revert ... &&
+               cd "$git" &&
+               git config git-p4.skipSubmitEdit true &&
+               test_commit "shelveme1" &&
+               git p4 submit --origin=HEAD^ &&
+
+               echo 654321 >shelveme2.t &&
+               echo 123456 >>shelveme1.t &&
+               git add shelveme* &&
+               git commit -m"shelvetest" &&
+               git p4 submit --shelve --origin=HEAD^ &&
+
+               test_path_is_file shelveme1.t &&
+               test_path_is_file shelveme2.t
+       ) &&
+       (
+               cd "$cli" &&
+               change=$(p4 -G changes -s shelved -m 1 //depot/... | \
+                        marshal_dump change) &&
+               p4 describe -S $change | grep shelveme2 &&
+               p4 describe -S $change | grep 123456 &&
+               test_path_is_file shelveme1.t &&
+               test_path_is_missing shelveme2.t
+       )
+'
+
+# Update an existing shelved changelist
+
+test_expect_success 'submit --update-shelve' '
+       test_when_finished cleanup_git &&
+       git p4 clone --dest="$git" //depot &&
+       (
+               cd "$cli" &&
+               p4 revert ... &&
+               cd "$git" &&
+               git config git-p4.skipSubmitEdit true &&
+               test_commit "test-update-shelved-change" &&
+               git p4 submit --origin=HEAD^ --shelve &&
+
+               shelf_cl=$(p4 -G changes -s shelved -m 1 |\
+                       marshal_dump change) &&
+               test -n $shelf_cl &&
+               echo "updating shelved change list $shelf_cl" &&
+
+               echo "updated-line" >>shelf.t &&
+               echo added-file.t >added-file.t &&
+               git add shelf.t added-file.t &&
+               git rm -f test-update-shelved-change.t &&
+               git commit --amend -C HEAD &&
+               git show --stat HEAD &&
+               git p4 submit -v --origin HEAD^ --update-shelve $shelf_cl &&
+               echo "done git p4 submit"
+       ) &&
+       (
+               cd "$cli" &&
+               change=$(p4 -G changes -s shelved -m 1 //depot/... | \
+                        marshal_dump change) &&
+               p4 unshelve -c $change -s $change &&
+               grep -q updated-line shelf.t &&
+               p4 describe -S $change | grep added-file.t &&
+               test_path_is_missing test-update-shelved-change.t
+       )
+'
+
 test_expect_success 'kill p4d' '
        kill_p4d
 '
index 110a7e792475fcf19ef782fae1d265ae81653853..734b8db4cbd557cf8e703cc4e2b085185634baba 100755 (executable)
@@ -42,6 +42,8 @@ test_expect_success 'Create repo with binary files' '
        (
                cd "$cli" &&
 
+               >file0.dat &&
+               p4 add file0.dat &&
                echo "content 1 txt 23 bytes" >file1.txt &&
                p4 add file1.txt &&
                echo "content 2-3 bin 25 bytes" >file2.dat &&
index f0ecde2d2f8b35c565ab176c76882a5fee8d8fb2..11f0b9fb40bcedbfcd3111fa8076ce0d9e1eb20f 100644 (file)
--- a/trailer.c
+++ b/trailer.c
@@ -46,6 +46,8 @@ static LIST_HEAD(conf_head);
 
 static char *separators = ":";
 
+static int configured;
+
 #define TRAILER_ARG_STRING "$ARG"
 
 static const char *git_generated_prefixes[] = {
@@ -102,12 +104,12 @@ static int same_trailer(struct trailer_item *a, struct arg_item *b)
        return same_token(a, b) && same_value(a, b);
 }
 
-static inline int contains_only_spaces(const char *str)
+static inline int is_blank_line(const char *str)
 {
        const char *s = str;
-       while (*s && isspace(*s))
+       while (*s && *s != '\n' && isspace(*s))
                s++;
-       return !*s;
+       return !*s || *s == '\n';
 }
 
 static inline void strbuf_replace(struct strbuf *sb, const char *a, const char *b)
@@ -546,6 +548,17 @@ static int git_trailer_config(const char *conf_key, const char *value, void *cb)
        return 0;
 }
 
+static void ensure_configured(void)
+{
+       if (configured)
+               return;
+
+       /* Default config must be setup first */
+       git_config(git_trailer_default_config, NULL);
+       git_config(git_trailer_config, NULL);
+       configured = 1;
+}
+
 static const char *token_from_item(struct arg_item *item, char *tok)
 {
        if (item->conf.key)
@@ -563,15 +576,32 @@ static int token_matches_item(const char *tok, struct arg_item *item, int tok_le
 }
 
 /*
- * Return the location of the first separator in line, or -1 if there is no
- * separator.
+ * If the given line is of the form
+ * "<token><optional whitespace><separator>..." or "<separator>...", return the
+ * location of the separator. Otherwise, return -1.  The optional whitespace
+ * is allowed there primarily to allow things like "Bug #43" where <token> is
+ * "Bug" and <separator> is "#".
+ *
+ * The separator-starts-line case (in which this function returns 0) is
+ * distinguished from the non-well-formed-line case (in which this function
+ * returns -1) because some callers of this function need such a distinction.
  */
 static int find_separator(const char *line, const char *separators)
 {
-       int loc = strcspn(line, separators);
-       if (!line[loc])
-               return -1;
-       return loc;
+       int whitespace_found = 0;
+       const char *c;
+       for (c = line; *c; c++) {
+               if (strchr(separators, *c))
+                       return c - line;
+               if (!whitespace_found && (isalnum(*c) || *c == '-'))
+                       continue;
+               if (c != line && (*c == ' ' || *c == '\t')) {
+                       whitespace_found = 1;
+                       continue;
+               }
+               break;
+       }
+       return -1;
 }
 
 /*
@@ -685,51 +715,71 @@ static void process_command_line_args(struct list_head *arg_head,
        free(cl_separators);
 }
 
-static struct strbuf **read_input_file(const char *file)
+static void read_input_file(struct strbuf *sb, const char *file)
 {
-       struct strbuf **lines;
-       struct strbuf sb = STRBUF_INIT;
-
        if (file) {
-               if (strbuf_read_file(&sb, file, 0) < 0)
+               if (strbuf_read_file(sb, file, 0) < 0)
                        die_errno(_("could not read input file '%s'"), file);
        } else {
-               if (strbuf_read(&sb, fileno(stdin), 0) < 0)
+               if (strbuf_read(sb, fileno(stdin), 0) < 0)
                        die_errno(_("could not read from stdin"));
        }
+}
 
-       lines = strbuf_split(&sb, '\n');
+static const char *next_line(const char *str)
+{
+       const char *nl = strchrnul(str, '\n');
+       return nl + !!*nl;
+}
 
-       strbuf_release(&sb);
+/*
+ * Return the position of the start of the last line. If len is 0, return -1.
+ */
+static int last_line(const char *buf, size_t len)
+{
+       int i;
+       if (len == 0)
+               return -1;
+       if (len == 1)
+               return 0;
+       /*
+        * Skip the last character (in addition to the null terminator),
+        * because if the last character is a newline, it is considered as part
+        * of the last line anyway.
+        */
+       i = len - 2;
 
-       return lines;
+       for (; i >= 0; i--) {
+               if (buf[i] == '\n')
+                       return i + 1;
+       }
+       return 0;
 }
 
 /*
- * Return the (0 based) index of the start of the patch or the line
- * count if there is no patch in the message.
+ * Return the position of the start of the patch or the length of str if there
+ * is no patch in the message.
  */
-static int find_patch_start(struct strbuf **lines, int count)
+static int find_patch_start(const char *str)
 {
-       int i;
+       const char *s;
 
-       /* Get the start of the patch part if any */
-       for (i = 0; i < count; i++) {
-               if (starts_with(lines[i]->buf, "---"))
-                       return i;
+       for (s = str; *s; s = next_line(s)) {
+               if (starts_with(s, "---"))
+                       return s - str;
        }
 
-       return count;
+       return s - str;
 }
 
 /*
- * Return the (0 based) index of the first trailer line or count if
- * there are no trailers. Trailers are searched only in the lines from
- * index (count - 1) down to index 0.
+ * Return the position of the first trailer line or len if there are no
+ * trailers.
  */
-static int find_trailer_start(struct strbuf **lines, int count)
+static int find_trailer_start(const char *buf, size_t len)
 {
-       int start, end_of_title, only_spaces = 1;
+       const char *s;
+       int end_of_title, l, only_spaces = 1;
        int recognized_prefix = 0, trailer_lines = 0, non_trailer_lines = 0;
        /*
         * Number of possible continuation lines encountered. This will be
@@ -741,13 +791,13 @@ static int find_trailer_start(struct strbuf **lines, int count)
        int possible_continuation_lines = 0;
 
        /* The first paragraph is the title and cannot be trailers */
-       for (start = 0; start < count; start++) {
-               if (lines[start]->buf[0] == comment_line_char)
+       for (s = buf; s < buf + len; s = next_line(s)) {
+               if (s[0] == comment_line_char)
                        continue;
-               if (contains_only_spaces(lines[start]->buf))
+               if (is_blank_line(s))
                        break;
        }
-       end_of_title = start;
+       end_of_title = s - buf;
 
        /*
         * Get the start of the trailers by looking starting from the end for a
@@ -755,30 +805,33 @@ static int find_trailer_start(struct strbuf **lines, int count)
         * trailers, or (ii) contains at least one Git-generated trailer and
         * consists of at least 25% trailers.
         */
-       for (start = count - 1; start >= end_of_title; start--) {
+       for (l = last_line(buf, len);
+            l >= end_of_title;
+            l = last_line(buf, l)) {
+               const char *bol = buf + l;
                const char **p;
                int separator_pos;
 
-               if (lines[start]->buf[0] == comment_line_char) {
+               if (bol[0] == comment_line_char) {
                        non_trailer_lines += possible_continuation_lines;
                        possible_continuation_lines = 0;
                        continue;
                }
-               if (contains_only_spaces(lines[start]->buf)) {
+               if (is_blank_line(bol)) {
                        if (only_spaces)
                                continue;
                        non_trailer_lines += possible_continuation_lines;
                        if (recognized_prefix &&
                            trailer_lines * 3 >= non_trailer_lines)
-                               return start + 1;
-                       if (trailer_lines && !non_trailer_lines)
-                               return start + 1;
-                       return count;
+                               return next_line(bol) - buf;
+                       else if (trailer_lines && !non_trailer_lines)
+                               return next_line(bol) - buf;
+                       return len;
                }
                only_spaces = 0;
 
                for (p = git_generated_prefixes; *p; p++) {
-                       if (starts_with(lines[start]->buf, *p)) {
+                       if (starts_with(bol, *p)) {
                                trailer_lines++;
                                possible_continuation_lines = 0;
                                recognized_prefix = 1;
@@ -786,8 +839,8 @@ static int find_trailer_start(struct strbuf **lines, int count)
                        }
                }
 
-               separator_pos = find_separator(lines[start]->buf, separators);
-               if (separator_pos >= 1 && !isspace(lines[start]->buf[0])) {
+               separator_pos = find_separator(bol, separators);
+               if (separator_pos >= 1 && !isspace(bol[0])) {
                        struct list_head *pos;
 
                        trailer_lines++;
@@ -797,13 +850,13 @@ static int find_trailer_start(struct strbuf **lines, int count)
                        list_for_each(pos, &conf_head) {
                                struct arg_item *item;
                                item = list_entry(pos, struct arg_item, list);
-                               if (token_matches_item(lines[start]->buf, item,
+                               if (token_matches_item(bol, item,
                                                       separator_pos)) {
                                        recognized_prefix = 1;
                                        break;
                                }
                        }
-               } else if (isspace(lines[start]->buf[0]))
+               } else if (isspace(bol[0]))
                        possible_continuation_lines++;
                else {
                        non_trailer_lines++;
@@ -814,97 +867,64 @@ static int find_trailer_start(struct strbuf **lines, int count)
                ;
        }
 
-       return count;
-}
-
-/* Get the index of the end of the trailers */
-static int find_trailer_end(struct strbuf **lines, int patch_start)
-{
-       struct strbuf sb = STRBUF_INIT;
-       int i, ignore_bytes;
-
-       for (i = 0; i < patch_start; i++)
-               strbuf_addbuf(&sb, lines[i]);
-       ignore_bytes = ignore_non_trailer(&sb);
-       strbuf_release(&sb);
-       for (i = patch_start - 1; i >= 0 && ignore_bytes > 0; i--)
-               ignore_bytes -= lines[i]->len;
-
-       return i + 1;
+       return len;
 }
 
-static int has_blank_line_before(struct strbuf **lines, int start)
+/* Return the position of the end of the trailers. */
+static int find_trailer_end(const char *buf, size_t len)
 {
-       for (;start >= 0; start--) {
-               if (lines[start]->buf[0] == comment_line_char)
-                       continue;
-               return contains_only_spaces(lines[start]->buf);
-       }
-       return 0;
+       return len - ignore_non_trailer(buf, len);
 }
 
-static void print_lines(FILE *outfile, struct strbuf **lines, int start, int end)
+static int ends_with_blank_line(const char *buf, size_t len)
 {
-       int i;
-       for (i = start; lines[i] && i < end; i++)
-               fprintf(outfile, "%s", lines[i]->buf);
+       int ll = last_line(buf, len);
+       if (ll < 0)
+               return 0;
+       return is_blank_line(buf + ll);
 }
 
 static int process_input_file(FILE *outfile,
-                             struct strbuf **lines,
+                             const char *str,
                              struct list_head *head)
 {
-       int count = 0;
-       int patch_start, trailer_start, trailer_end, i;
+       struct trailer_info info;
        struct strbuf tok = STRBUF_INIT;
        struct strbuf val = STRBUF_INIT;
-       struct trailer_item *last = NULL;
-
-       /* Get the line count */
-       while (lines[count])
-               count++;
+       int i;
 
-       patch_start = find_patch_start(lines, count);
-       trailer_end = find_trailer_end(lines, patch_start);
-       trailer_start = find_trailer_start(lines, trailer_end);
+       trailer_info_get(&info, str);
 
        /* Print lines before the trailers as is */
-       print_lines(outfile, lines, 0, trailer_start);
+       fwrite(str, 1, info.trailer_start - str, outfile);
 
-       if (!has_blank_line_before(lines, trailer_start - 1))
+       if (!info.blank_line_before_trailer)
                fprintf(outfile, "\n");
 
-       /* Parse trailer lines */
-       for (i = trailer_start; i < trailer_end; i++) {
+       for (i = 0; i < info.trailer_nr; i++) {
                int separator_pos;
-               if (lines[i]->buf[0] == comment_line_char)
+               char *trailer = info.trailers[i];
+               if (trailer[0] == comment_line_char)
                        continue;
-               if (last && isspace(lines[i]->buf[0])) {
-                       struct strbuf sb = STRBUF_INIT;
-                       strbuf_addf(&sb, "%s\n%s", last->value, lines[i]->buf);
-                       strbuf_strip_suffix(&sb, "\n");
-                       free(last->value);
-                       last->value = strbuf_detach(&sb, NULL);
-                       continue;
-               }
-               separator_pos = find_separator(lines[i]->buf, separators);
+               separator_pos = find_separator(trailer, separators);
                if (separator_pos >= 1) {
-                       parse_trailer(&tok, &val, NULL, lines[i]->buf,
+                       parse_trailer(&tok, &val, NULL, trailer,
                                      separator_pos);
-                       last = add_trailer_item(head,
-                                               strbuf_detach(&tok, NULL),
-                                               strbuf_detach(&val, NULL));
+                       add_trailer_item(head,
+                                        strbuf_detach(&tok, NULL),
+                                        strbuf_detach(&val, NULL));
                } else {
-                       strbuf_addbuf(&val, lines[i]);
+                       strbuf_addstr(&val, trailer);
                        strbuf_strip_suffix(&val, "\n");
                        add_trailer_item(head,
                                         NULL,
                                         strbuf_detach(&val, NULL));
-                       last = NULL;
                }
        }
 
-       return trailer_end;
+       trailer_info_release(&info);
+
+       return info.trailer_end - str;
 }
 
 static void free_all(struct list_head *head)
@@ -951,21 +971,19 @@ void process_trailers(const char *file, int in_place, int trim_empty, struct str
 {
        LIST_HEAD(head);
        LIST_HEAD(arg_head);
-       struct strbuf **lines;
+       struct strbuf sb = STRBUF_INIT;
        int trailer_end;
        FILE *outfile = stdout;
 
-       /* Default config must be setup first */
-       git_config(git_trailer_default_config, NULL);
-       git_config(git_trailer_config, NULL);
+       ensure_configured();
 
-       lines = read_input_file(file);
+       read_input_file(&sb, file);
 
        if (in_place)
                outfile = create_in_place_tempfile(file);
 
        /* Print the lines before the trailers */
-       trailer_end = process_input_file(outfile, lines, &head);
+       trailer_end = process_input_file(outfile, sb.buf, &head);
 
        process_command_line_args(&arg_head, trailers);
 
@@ -976,11 +994,62 @@ void process_trailers(const char *file, int in_place, int trim_empty, struct str
        free_all(&head);
 
        /* Print the lines after the trailers as is */
-       print_lines(outfile, lines, trailer_end, INT_MAX);
+       fwrite(sb.buf + trailer_end, 1, sb.len - trailer_end, outfile);
 
        if (in_place)
                if (rename_tempfile(&trailers_tempfile, file))
                        die_errno(_("could not rename temporary file to %s"), file);
 
-       strbuf_list_free(lines);
+       strbuf_release(&sb);
+}
+
+void trailer_info_get(struct trailer_info *info, const char *str)
+{
+       int patch_start, trailer_end, trailer_start;
+       struct strbuf **trailer_lines, **ptr;
+       char **trailer_strings = NULL;
+       size_t nr = 0, alloc = 0;
+       char **last = NULL;
+
+       ensure_configured();
+
+       patch_start = find_patch_start(str);
+       trailer_end = find_trailer_end(str, patch_start);
+       trailer_start = find_trailer_start(str, trailer_end);
+
+       trailer_lines = strbuf_split_buf(str + trailer_start,
+                                        trailer_end - trailer_start,
+                                        '\n',
+                                        0);
+       for (ptr = trailer_lines; *ptr; ptr++) {
+               if (last && isspace((*ptr)->buf[0])) {
+                       struct strbuf sb = STRBUF_INIT;
+                       strbuf_attach(&sb, *last, strlen(*last), strlen(*last));
+                       strbuf_addbuf(&sb, *ptr);
+                       *last = strbuf_detach(&sb, NULL);
+                       continue;
+               }
+               ALLOC_GROW(trailer_strings, nr + 1, alloc);
+               trailer_strings[nr] = strbuf_detach(*ptr, NULL);
+               last = find_separator(trailer_strings[nr], separators) >= 1
+                       ? &trailer_strings[nr]
+                       : NULL;
+               nr++;
+       }
+       strbuf_list_free(trailer_lines);
+
+       info->blank_line_before_trailer = ends_with_blank_line(str,
+                                                              trailer_start);
+       info->trailer_start = str + trailer_start;
+       info->trailer_end = str + trailer_end;
+       info->trailers = trailer_strings;
+       info->trailer_nr = nr;
+}
+
+void trailer_info_release(struct trailer_info *info)
+{
+       int i;
+       for (i = 0; i < info->trailer_nr; i++)
+               free(info->trailers[i]);
+       free(info->trailers);
 }
index 36b40b81761f95742c9c6fe7e94ba89f19aabfde..65cc5d79c6cecfce5cf3302dd7dcb6323f9f85dc 100644 (file)
--- a/trailer.h
+++ b/trailer.h
@@ -1,7 +1,32 @@
 #ifndef TRAILER_H
 #define TRAILER_H
 
+struct trailer_info {
+       /*
+        * True if there is a blank line before the location pointed to by
+        * trailer_start.
+        */
+       int blank_line_before_trailer;
+
+       /*
+        * Pointers to the start and end of the trailer block found. If there
+        * is no trailer block found, these 2 pointers point to the end of the
+        * input string.
+        */
+       const char *trailer_start, *trailer_end;
+
+       /*
+        * Array of trailers found.
+        */
+       char **trailers;
+       size_t trailer_nr;
+};
+
 void process_trailers(const char *file, int in_place, int trim_empty,
                      struct string_list *trailers);
 
+void trailer_info_get(struct trailer_info *info, const char *str);
+
+void trailer_info_release(struct trailer_info *info);
+
 #endif /* TRAILER_H */
index d57e8dec28d6890ce981a8422e9b8b60b697ecd6..04e5d6623e39014622e0a185d37f8a456fd352e6 100644 (file)
@@ -949,23 +949,39 @@ int transport_push(struct transport *transport,
 
                if ((flags & TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND) && !is_bare_repository()) {
                        struct ref *ref = remote_refs;
+                       struct sha1_array commits = SHA1_ARRAY_INIT;
+
                        for (; ref; ref = ref->next)
-                               if (!is_null_oid(&ref->new_oid) &&
-                                   !push_unpushed_submodules(ref->new_oid.hash,
-                                           transport->remote->name))
-                                   die ("Failed to push all needed submodules!");
+                               if (!is_null_oid(&ref->new_oid))
+                                       sha1_array_append(&commits, ref->new_oid.hash);
+
+                       if (!push_unpushed_submodules(&commits,
+                                                     transport->remote->name,
+                                                     pretend)) {
+                               sha1_array_clear(&commits);
+                               die("Failed to push all needed submodules!");
+                       }
+                       sha1_array_clear(&commits);
                }
 
-               if ((flags & (TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND |
-                             TRANSPORT_RECURSE_SUBMODULES_CHECK)) && !is_bare_repository()) {
+               if (((flags & TRANSPORT_RECURSE_SUBMODULES_CHECK) ||
+                    ((flags & TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND) &&
+                     !pretend)) && !is_bare_repository()) {
                        struct ref *ref = remote_refs;
                        struct string_list needs_pushing = STRING_LIST_INIT_DUP;
+                       struct sha1_array commits = SHA1_ARRAY_INIT;
 
                        for (; ref; ref = ref->next)
-                               if (!is_null_oid(&ref->new_oid) &&
-                                   find_unpushed_submodules(ref->new_oid.hash,
-                                           transport->remote->name, &needs_pushing))
-                                       die_with_unpushed_submodules(&needs_pushing);
+                               if (!is_null_oid(&ref->new_oid))
+                                       sha1_array_append(&commits, ref->new_oid.hash);
+
+                       if (find_unpushed_submodules(&commits, transport->remote->name,
+                                               &needs_pushing)) {
+                               sha1_array_clear(&commits);
+                               die_with_unpushed_submodules(&needs_pushing);
+                       }
+                       string_list_clear(&needs_pushing, 0);
+                       sha1_array_clear(&commits);
                }
 
                push_ret = transport->push_refs(transport, remote_refs, flags);
index ea6bdd20e0491554e88f4b84bd3b6354867021bc..7a6df99d10e1dbabc9f7df74316fd91bd55c1fd5 100644 (file)
@@ -78,7 +78,7 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
                xstrfmt(msg, cmd, cmd);
 
        msgs[ERROR_NOT_UPTODATE_DIR] =
-               _("Updating the following directories would lose untracked files in it:\n%s");
+               _("Updating the following directories would lose untracked files in them:\n%s");
 
        if (!strcmp(cmd, "checkout"))
                msg = advice_commit_before_merge
index f7869f8d6072c98c3e9be3387a9a3c19508e13ea..eb6121263b0d56b6b7ea7c5024e9ceb68256c1c5 100644 (file)
@@ -88,21 +88,13 @@ static struct worktree *get_main_worktree(void)
 
        strbuf_addf(&path, "%s/HEAD", get_git_common_dir());
 
-       if (parse_ref(path.buf, &head_ref, &is_detached) < 0)
-               goto done;
-
-       worktree = xmalloc(sizeof(struct worktree));
+       worktree = xcalloc(1, sizeof(*worktree));
        worktree->path = strbuf_detach(&worktree_path, NULL);
-       worktree->id = NULL;
        worktree->is_bare = is_bare;
-       worktree->head_ref = NULL;
        worktree->is_detached = is_detached;
-       worktree->is_current = 0;
-       add_head_info(&head_ref, worktree);
-       worktree->lock_reason = NULL;
-       worktree->lock_reason_valid = 0;
+       if (!parse_ref(path.buf, &head_ref, &is_detached))
+               add_head_info(&head_ref, worktree);
 
-done:
        strbuf_release(&path);
        strbuf_release(&worktree_path);
        strbuf_release(&head_ref);
@@ -138,16 +130,11 @@ static struct worktree *get_linked_worktree(const char *id)
        if (parse_ref(path.buf, &head_ref, &is_detached) < 0)
                goto done;
 
-       worktree = xmalloc(sizeof(struct worktree));
+       worktree = xcalloc(1, sizeof(*worktree));
        worktree->path = strbuf_detach(&worktree_path, NULL);
        worktree->id = xstrdup(id);
-       worktree->is_bare = 0;
-       worktree->head_ref = NULL;
        worktree->is_detached = is_detached;
-       worktree->is_current = 0;
        add_head_info(&head_ref, worktree);
-       worktree->lock_reason = NULL;
-       worktree->lock_reason_valid = 0;
 
 done:
        strbuf_release(&path);
@@ -173,7 +160,14 @@ static void mark_current_worktree(struct worktree **worktrees)
        free(git_dir);
 }
 
-struct worktree **get_worktrees(void)
+static int compare_worktree(const void *a_, const void *b_)
+{
+       const struct worktree *const *a = a_;
+       const struct worktree *const *b = b_;
+       return fspathcmp((*a)->path, (*b)->path);
+}
+
+struct worktree **get_worktrees(unsigned flags)
 {
        struct worktree **list = NULL;
        struct strbuf path = STRBUF_INIT;
@@ -183,8 +177,7 @@ struct worktree **get_worktrees(void)
 
        list = xmalloc(alloc * sizeof(struct worktree *));
 
-       if ((list[counter] = get_main_worktree()))
-               counter++;
+       list[counter++] = get_main_worktree();
 
        strbuf_addf(&path, "%s/worktrees", get_git_common_dir());
        dir = opendir(path.buf);
@@ -205,6 +198,13 @@ struct worktree **get_worktrees(void)
        ALLOC_GROW(list, counter + 1, alloc);
        list[counter] = NULL;
 
+       if (flags & GWT_SORT_LINKED)
+               /*
+                * don't sort the first item (main worktree), which will
+                * always be the first
+                */
+               QSORT(list + 1, counter - 1, compare_worktree);
+
        mark_current_worktree(list);
        return list;
 }
@@ -341,7 +341,7 @@ const struct worktree *find_shared_symref(const char *symref,
 
        if (worktrees)
                free_worktrees(worktrees);
-       worktrees = get_worktrees();
+       worktrees = get_worktrees(0);
 
        for (i = 0; worktrees[i]; i++) {
                struct worktree *wt = worktrees[i];
index 90e1311fa73fa6bdde5249d68818eacb6dc8edd0..d59ce1fee875800462a1e464592fd9dd01828e17 100644 (file)
@@ -15,6 +15,8 @@ struct worktree {
 
 /* Functions for acting on the information about worktrees. */
 
+#define GWT_SORT_LINKED (1 << 0) /* keeps linked worktrees sorted */
+
 /*
  * Get the worktrees.  The primary worktree will always be the first returned,
  * and linked worktrees will be pointed to by 'next' in each subsequent
@@ -23,7 +25,7 @@ struct worktree {
  * The caller is responsible for freeing the memory from the returned
  * worktree(s).
  */
-extern struct worktree **get_worktrees(void);
+extern struct worktree **get_worktrees(unsigned flags);
 
 /*
  * Return git dir of the worktree. Note that the path may be relative.