summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/RelNotes/2.16.0.txt7
-rw-r--r--Documentation/RelNotes/2.16.1.txt11
-rw-r--r--Documentation/RelNotes/2.17.0.txt84
-rw-r--r--Documentation/config.txt4
-rw-r--r--Documentation/diff-options.txt10
-rw-r--r--Documentation/git-cat-file.txt7
-rw-r--r--Documentation/git-commit.txt2
-rw-r--r--Documentation/git-pack-objects.txt11
-rw-r--r--Documentation/git-read-tree.txt5
-rw-r--r--Documentation/git-status.txt23
-rw-r--r--Documentation/git-submodule.txt16
-rw-r--r--Documentation/gitremote-helpers.txt7
-rw-r--r--Documentation/gitsubmodules.txt100
-rw-r--r--Documentation/rev-list-options.txt11
-rw-r--r--Documentation/technical/pack-protocol.txt8
-rw-r--r--Documentation/technical/protocol-capabilities.txt8
-rw-r--r--Documentation/technical/repository-version.txt12
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--INSTALL17
-rw-r--r--Makefile68
l---------RelNotes2
-rw-r--r--bisect.c36
-rw-r--r--builtin/cat-file.c2
-rw-r--r--builtin/checkout.c13
-rw-r--r--builtin/clone.c53
-rw-r--r--builtin/commit.c10
-rw-r--r--builtin/describe.c7
-rw-r--r--builtin/fetch-pack.c18
-rw-r--r--builtin/fetch.c83
-rw-r--r--builtin/fsck.c26
-rw-r--r--builtin/gc.c3
-rw-r--r--builtin/index-pack.c111
-rw-r--r--builtin/log.c4
-rw-r--r--builtin/pack-objects.c47
-rw-r--r--builtin/prune.c7
-rw-r--r--builtin/repack.c8
-rw-r--r--builtin/rev-list.c71
-rw-r--r--bundle.c35
-rw-r--r--cache.h22
-rw-r--r--combine-diff.c2
-rw-r--r--commit.c19
-rw-r--r--commit.h1
-rw-r--r--config.c5
-rw-r--r--connected.c2
-rwxr-xr-xcontrib/examples/git-difftool.perl2
-rw-r--r--diff.c45
-rw-r--r--diff.h13
-rw-r--r--diffcore-pickaxe.c48
-rw-r--r--environment.c2
-rw-r--r--fetch-object.c45
-rw-r--r--fetch-object.h11
-rw-r--r--fetch-pack.c65
-rw-r--r--fetch-pack.h10
-rwxr-xr-xgit-add--interactive.perl2
-rwxr-xr-xgit-send-email.perl5
-rwxr-xr-xgit-stash.sh5
-rwxr-xr-xgit-svn.perl1
-rw-r--r--list-objects-filter-options.c92
-rw-r--r--list-objects-filter-options.h18
-rw-r--r--list-objects.c29
-rw-r--r--merge-recursive.c17
-rw-r--r--mru.c50
-rw-r--r--mru.h45
-rw-r--r--object.c13
-rw-r--r--object.h5
-rw-r--r--oidmap.c11
-rw-r--r--packfile.c95
-rw-r--r--packfile.h13
-rw-r--r--perl/.gitignore9
-rw-r--r--perl/Git.pm73
-rw-r--r--perl/Git/Error.pm46
-rw-r--r--perl/Git/FromCPAN/Error.pm (renamed from perl/private-Error.pm)0
-rw-r--r--perl/Git/FromCPAN/Mail/Address.pm276
-rw-r--r--perl/Git/I18N.pm2
-rwxr-xr-xperl/Git/Mail/Address.pm24
-rw-r--r--perl/Makefile90
-rw-r--r--perl/Makefile.PL62
-rw-r--r--po/TEAMS5
-rw-r--r--po/bg.po4098
-rw-r--r--po/ca.po384
-rw-r--r--po/de.po4128
-rw-r--r--po/es.po5136
-rw-r--r--po/fr.po4095
-rw-r--r--po/git.pot3967
-rw-r--r--po/ko.po4142
-rw-r--r--po/ru.po4010
-rw-r--r--po/sv.po4082
-rw-r--r--po/vi.po4085
-rw-r--r--po/zh_CN.po4098
-rw-r--r--ref-filter.c3
-rw-r--r--remote-curl.c20
-rw-r--r--repository.c2
-rw-r--r--revision.c43
-rw-r--r--revision.h17
-rw-r--r--setup.c7
-rw-r--r--sha1_file.c33
-rw-r--r--submodule.c4
-rwxr-xr-xt/lib-submodule-update.sh19
-rwxr-xr-xt/perf/aggregate.perl162
-rwxr-xr-xt/perf/p7820-grep-engines.sh52
-rwxr-xr-xt/perf/p7821-grep-engines-fixed.sh55
-rwxr-xr-xt/perf/run31
-rwxr-xr-xt/t0410-partial-clone.sh343
-rwxr-xr-xt/t2203-add-intent.sh72
-rwxr-xr-xt/t3701-add-interactive.sh48
-rwxr-xr-xt/t3903-stash.sh32
-rwxr-xr-xt/t4064-diff-oidfind.sh68
-rwxr-xr-xt/t5500-fetch-pack.sh63
-rwxr-xr-xt/t5600-clone-fail-cleanup.sh100
-rwxr-xr-xt/t5601-clone.sh118
-rwxr-xr-xt/t5616-partial-clone.sh146
-rwxr-xr-xt/t6037-merge-ours-theirs.sh32
-rwxr-xr-xt/t6120-describe.sh6
-rwxr-xr-xt/t7500-commit.sh9
-rwxr-xr-xt/t9000-addresses.sh27
-rwxr-xr-xt/t9000/test.pl67
-rwxr-xr-xt/t9001-send-email.sh36
-rw-r--r--t/test-lib.sh2
-rw-r--r--transport-helper.c5
-rw-r--r--transport.c12
-rw-r--r--transport.h16
-rw-r--r--unpack-trees.c25
-rw-r--r--upload-pack.c31
-rw-r--r--wrap-for-bin.sh2
-rw-r--r--wt-status.c83
-rw-r--r--wt-status.h5
126 files changed, 25273 insertions, 20977 deletions
diff --git a/Documentation/RelNotes/2.16.0.txt b/Documentation/RelNotes/2.16.0.txt
index 919f3eb..0c81c59 100644
--- a/Documentation/RelNotes/2.16.0.txt
+++ b/Documentation/RelNotes/2.16.0.txt
@@ -62,8 +62,11 @@ UI, Workflows & Features
* The SubmittingPatches document has been converted to produce an
HTML version via AsciiDoc/Asciidoctor.
- * We learned to talk to watchman to speed up "git status" and other
- operations that need to see which paths have been modified.
+ * We learned to optionally talk to a file system monitor via new
+ fsmonitor extension to speed up "git status" and other operations
+ that need to see which paths have been modified. Currently we only
+ support "watchman". See File System Monitor section of
+ git-update-index(1) for more detail.
* The "diff" family of commands learned to ignore differences in
carriage return at the end of line.
diff --git a/Documentation/RelNotes/2.16.1.txt b/Documentation/RelNotes/2.16.1.txt
new file mode 100644
index 0000000..66e6436
--- /dev/null
+++ b/Documentation/RelNotes/2.16.1.txt
@@ -0,0 +1,11 @@
+Git v2.16.1 Release Notes
+=========================
+
+Fixes since v2.16
+-----------------
+
+ * "git clone" segfaulted when cloning a project that happens to
+ track two paths that differ only in case on a case insensitive
+ filesystem.
+
+Does not contain any other documentation updates or code clean-ups.
diff --git a/Documentation/RelNotes/2.17.0.txt b/Documentation/RelNotes/2.17.0.txt
new file mode 100644
index 0000000..759e75f
--- /dev/null
+++ b/Documentation/RelNotes/2.17.0.txt
@@ -0,0 +1,84 @@
+Git 2.17 Release Notes
+======================
+
+Updates since v2.16
+-------------------
+
+UI, Workflows & Features
+
+ * "diff" family of commands learned "--find-object=<object-id>" option
+ to limit the findings to changes that involve the named object.
+ (merge 4d8c51aa19 sb/diff-blobfind-pickaxe later to maint).
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * More perf tests for threaded grep
+ (merge 7b31b55db1 ab/perf-grep-threads later to maint).
+
+ * "perf" test output can be sent to codespeed server.
+ (merge 19cf57a92e cc/codespeed later to maint).
+
+
+Also contains various documentation updates and code clean-ups.
+
+
+Fixes since v2.16
+-----------------
+
+ * An old regression in "git describe --all $annotated_tag^0" has been
+ fixed.
+ (merge 1bba00130a dk/describe-all-output-fix later to maint).
+
+ * "git status" after moving a path in the working tree (hence making
+ it appear "removed") and then adding with the -N option (hence
+ making that appear "added") detected it as a rename, but did not
+ report the old and new pathnames correctly.
+ (merge 176ea74793 nd/ita-wt-renames-in-status later to maint).
+
+ * "git svn dcommit" did not take into account the fact that a
+ svn+ssh:// URL with a username@ (typically used for pushing) refers
+ to the same SVN repository without the username@ and failed when
+ svn.pushmergeinfo option is set.
+ (merge 8aaed892fd jm/svn-pushmergeinfo-fix later to maint).
+
+ * API clean-up around revision traversal.
+ (merge 6fcec2f9ae rs/lose-leak-pending later to maint).
+
+ * "git merge -Xours/-Xtheirs" learned to use our/their version when
+ resolving a conflicting updates to a symbolic link.
+ (merge fd48b46474 jc/merge-symlink-ours-theirs later to maint).
+
+ * "git clone $there $here" is allowed even when here directory exists
+ as long as it is an empty directory, but the command incorrectly
+ removed it upon a failure of the operation.
+ (merge d45420c1c8 jk/abort-clone-with-existing-dest later to maint).
+
+ * "git commit --fixup" did not allow "-m<message>" option to be used
+ at the same time; allow it to annotate resulting commit with more
+ text.
+ (merge 30884c9afc ab/commit-m-with-fixup later to maint).
+
+ * When resetting the working tree files recursively, the working tree
+ of submodules are now also reset to match.
+ (merge 7dcc1f4df8 sb/submodule-update-reset-fix later to maint).
+
+ * "git stash -- <pathspec>" incorrectly blew away untracked files in
+ the directory that matched the pathspec, which has been corrected.
+ (merge bba067d2fa tg/stash-with-pathspec-fix later to maint).
+
+ * Instead of maintaining home-grown email address parsing code, ship
+ a copy of reasonably recent Mail::Address to be used as a fallback
+ in 'git send-email' when the platform lacks it.
+ (merge d60be8acab mm/send-email-fallback-to-local-mail-address later to maint).
+
+ * "git add -p" was taught to ignore local changes to submodules as
+ they do not interfere with the partial addition of regular changes
+ anyway.
+ (merge 12434efc1d nd/add-i-ignore-submodules later to maint).
+
+ * Other minor doc, test and build updates and code cleanups.
+ (merge e2a5a028c7 bw/oidmap-autoinit later to maint).
+ (merge f0a6068a9f ys/bisect-object-id-missing-conversion-fix later to maint).
+ (merge 30221a3389 as/read-tree-prefix-doc-fix later to maint).
+ (merge 9bd2ce5432 ab/doc-cat-file-e-still-shows-errors later to maint).
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 0e25b2c..f57e9cf 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -3343,6 +3343,10 @@ uploadpack.packObjectsHook::
was run. I.e., `upload-pack` will feed input intended for
`pack-objects` to the hook, and expects a completed packfile on
stdout.
+
+uploadpack.allowFilter::
+ If this option is set, `upload-pack` will advertise partial
+ clone and partial fetch object filtering.
+
Note that this configuration variable is ignored if it is seen in the
repository-level config (this is a safety measure against fetching from
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index 743af97..c330c01 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -508,6 +508,15 @@ occurrences of that string did not change).
See the 'pickaxe' entry in linkgit:gitdiffcore[7] for more
information.
+--find-object=<object-id>::
+ Look for differences that change the number of occurrences of
+ the specified object. Similar to `-S`, just the argument is different
+ in that it doesn't search for a specific string but for a specific
+ object id.
++
+The object can be a blob or a submodule commit. It implies the `-t` option in
+`git-log` to also find trees.
+
--pickaxe-all::
When `-S` or `-G` finds a change, show all the changes in that
changeset, not just the files that contain the change
@@ -516,6 +525,7 @@ information.
--pickaxe-regex::
Treat the <string> given to `-S` as an extended POSIX regular
expression to match.
+
endif::git-format-patch[]
-O<orderfile>::
diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
index fb09cd6..f90f09b 100644
--- a/Documentation/git-cat-file.txt
+++ b/Documentation/git-cat-file.txt
@@ -42,8 +42,9 @@ OPTIONS
<object>.
-e::
- Suppress all output; instead exit with zero status if <object>
- exists and is a valid object.
+ Exit with zero status if <object> exists and is a valid
+ object. If <object> is of an invalid format exit with non-zero and
+ emits an error on stderr.
-p::
Pretty-print the contents of <object> based on its type.
@@ -168,7 +169,7 @@ If `-t` is specified, one of the <type>.
If `-s` is specified, the size of the <object> in bytes.
-If `-e` is specified, no output.
+If `-e` is specified, no output, unless the <object> is malformed.
If `-p` is specified, the contents of <object> are pretty-printed.
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 8c74a2c..f970a43 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -144,6 +144,8 @@ OPTIONS
Use the given <msg> as the commit message.
If multiple `-m` options are given, their values are
concatenated as separate paragraphs.
++
+The `-m` option is mutually exclusive with `-c`, `-C`, and `-F`.
-t <file>::
--template=<file>::
diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt
index aa403d0..81bc490 100644
--- a/Documentation/git-pack-objects.txt
+++ b/Documentation/git-pack-objects.txt
@@ -255,6 +255,17 @@ a missing object is encountered. This is the default action.
The form '--missing=allow-any' will allow object traversal to continue
if a missing object is encountered. Missing objects will silently be
omitted from the results.
++
+The form '--missing=allow-promisor' is like 'allow-any', but will only
+allow object traversal to continue for EXPECTED promisor missing objects.
+Unexpected missing object will raise an error.
+
+--exclude-promisor-objects::
+ Omit objects that are known to be in the promisor remote. (This
+ option has the purpose of operating only on locally created objects,
+ so that when we repack, we still maintain a distinction between
+ locally created objects [without .promisor] and objects from the
+ promisor remote [with .promisor].) This is used with partial clone.
SEE ALSO
--------
diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index 72bd809..f2a07d5 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -81,12 +81,11 @@ OPTIONS
* when both sides add a path identically. The resolution
is to add that path.
---prefix=<prefix>/::
+--prefix=<prefix>::
Keep the current index contents, and read the contents
of the named tree-ish under the directory at `<prefix>`.
The command will refuse to overwrite entries that already
- existed in the original index file. Note that the `<prefix>/`
- value must end with a slash.
+ existed in the original index file.
--exclude-per-directory=<gitignore>::
When running the command with `-u` and `-m` options, the
diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt
index 81cab9a..72bfb87 100644
--- a/Documentation/git-status.txt
+++ b/Documentation/git-status.txt
@@ -149,14 +149,15 @@ the status.relativePaths config option below.
Short Format
~~~~~~~~~~~~
-In the short-format, the status of each path is shown as
+In the short-format, the status of each path is shown as one of these
+forms
- XY PATH1 -> PATH2
+ XY PATH
+ XY ORIG_PATH -> PATH
-where `PATH1` is the path in the `HEAD`, and the " `-> PATH2`" part is
-shown only when `PATH1` corresponds to a different path in the
-index/worktree (i.e. the file is renamed). The `XY` is a two-letter
-status code.
+where `ORIG_PATH` is where the renamed/copied contents came
+from. `ORIG_PATH` is only shown when the entry is renamed or
+copied. The `XY` is a two-letter status code.
The fields (including the `->`) are separated from each other by a
single space. If a filename contains whitespace or other nonprintable
@@ -192,6 +193,8 @@ in which case `XY` are `!!`.
[MARC] index and work tree matches
[ MARC] M work tree changed since index
[ MARC] D deleted in work tree
+ [ D] R renamed in work tree
+ [ D] C copied in work tree
-------------------------------------------------
D D unmerged, both deleted
A U unmerged, added by us
@@ -309,13 +312,13 @@ Renamed or copied entries have the following format:
of similarity between the source and target of the
move or copy). For example "R100" or "C75".
<path> The pathname. In a renamed/copied entry, this
- is the path in the index and in the working tree.
+ is the target path.
<sep> When the `-z` option is used, the 2 pathnames are separated
with a NUL (ASCII 0x00) byte; otherwise, a tab (ASCII 0x09)
byte separates them.
- <origPath> The pathname in the commit at HEAD. This is only
- present in a renamed/copied entry, and tells
- where the renamed/copied contents came from.
+ <origPath> The pathname in the commit at HEAD or in the index.
+ This is only present in a renamed/copied entry, and
+ tells where the renamed/copied contents came from.
--------------------------------------------------------
Unmerged entries have the following format; the first character is
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index ff61200..71c5618 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -70,8 +70,8 @@ status [--cached] [--recursive] [--] [<path>...]::
Show the status of the submodules. This will print the SHA-1 of the
currently checked out commit for each submodule, along with the
submodule path and the output of 'git describe' for the
- SHA-1. Each SHA-1 will be prefixed with `-` if the submodule is not
- initialized, `+` if the currently checked out submodule commit
+ SHA-1. Each SHA-1 will possibly be prefixed with `-` if the submodule is
+ not initialized, `+` if the currently checked out submodule commit
does not match the SHA-1 found in the index of the containing
repository and `U` if the submodule has merge conflicts.
+
@@ -132,15 +132,15 @@ expects by cloning missing submodules and updating the working tree of
the submodules. The "updating" can be done in several ways depending
on command line options and the value of `submodule.<name>.update`
configuration variable. The command line option takes precedence over
-the configuration variable. if neither is given, a checkout is performed.
-update procedures supported both from the command line as well as setting
-`submodule.<name>.update`:
+the configuration variable. If neither is given, a 'checkout' is performed.
+The 'update' procedures supported both from the command line as well as
+through the `submodule.<name>.update` configuration are:
checkout;; the commit recorded in the superproject will be
checked out in the submodule on a detached HEAD.
+
If `--force` is specified, the submodule will be checked out (using
-`git checkout --force` if appropriate), even if the commit specified
+`git checkout --force`), even if the commit specified
in the index of the containing repository already matches the commit
checked out in the submodule.
@@ -150,8 +150,8 @@ checked out in the submodule.
merge;; the commit recorded in the superproject will be merged
into the current branch in the submodule.
-The following procedures are only available via the `submodule.<name>.update`
-configuration variable:
+The following 'update' procedures are only available via the
+`submodule.<name>.update` configuration variable:
custom command;; arbitrary shell command that takes a single
argument (the sha1 of the commit recorded in the
diff --git a/Documentation/gitremote-helpers.txt b/Documentation/gitremote-helpers.txt
index 4a584f3..4b8c93e 100644
--- a/Documentation/gitremote-helpers.txt
+++ b/Documentation/gitremote-helpers.txt
@@ -466,6 +466,13 @@ set by Git if the remote helper has the 'option' capability.
Transmit <string> as a push option. As the push option
must not contain LF or NUL characters, the string is not encoded.
+'option from-promisor' {'true'|'false'}::
+ Indicate that these objects are being fetched from a promisor.
+
+'option no-dependents' {'true'|'false'}::
+ Indicate that only the objects wanted need to be fetched, not
+ their dependents.
+
SEE ALSO
--------
linkgit:git-remote[1]
diff --git a/Documentation/gitsubmodules.txt b/Documentation/gitsubmodules.txt
index 46cf120..4d6c177 100644
--- a/Documentation/gitsubmodules.txt
+++ b/Documentation/gitsubmodules.txt
@@ -36,8 +36,8 @@ The `gitlink` entry contains the object name of the commit that the
superproject expects the submodule’s working directory to be at.
The section `submodule.foo.*` in the `.gitmodules` file gives additional
-hints to Gits porcelain layer such as where to obtain the submodule via
-the `submodule.foo.url` setting.
+hints to Git's porcelain layer. For example, the `submodule.foo.url`
+setting specifies where to obtain the submodule.
Submodules can be used for at least two different use cases:
@@ -51,18 +51,21 @@ Submodules can be used for at least two different use cases:
2. Splitting a (logically single) project into multiple
repositories and tying them back together. This can be used to
- overcome current limitations of Gits implementation to have
+ overcome current limitations of Git's implementation to have
finer grained access:
- * Size of the git repository:
+ * Size of the Git repository:
In its current form Git scales up poorly for large repositories containing
content that is not compressed by delta computation between trees.
- However you can also use submodules to e.g. hold large binary assets
- and these repositories are then shallowly cloned such that you do not
+ For example, you can use submodules to hold large binary assets
+ and these repositories can be shallowly cloned such that you do not
have a large history locally.
* Transfer size:
In its current form Git requires the whole working tree present. It
does not allow partial trees to be transferred in fetch or clone.
+ If the project you work on consists of multiple repositories tied
+ together as submodules in a superproject, you can avoid fetching the
+ working trees of the repositories you are not interested in.
* Access control:
By restricting user access to submodules, this can be used to implement
read/write policies for different users.
@@ -73,9 +76,10 @@ The configuration of submodules
Submodule operations can be configured using the following mechanisms
(from highest to lowest precedence):
- * The command line for those commands that support taking submodule specs.
- Most commands have a boolean flag '--recurse-submodules' whether to
- recurse into submodules. Examples are `ls-files` or `checkout`.
+ * The command line for those commands that support taking submodules
+ as part of their pathspecs. Most commands have a boolean flag
+ `--recurse-submodules` which specify whether to recurse into submodules.
+ Examples are `grep` and `checkout`.
Some commands take enums, such as `fetch` and `push`, where you can
specify how submodules are affected.
@@ -87,8 +91,8 @@ Submodule operations can be configured using the following mechanisms
For example an effect from the submodule's `.gitignore` file
would be observed when you run `git status --ignore-submodules=none` in
the superproject. This collects information from the submodule's working
-directory by running `status` in the submodule, which does pay attention
-to its `.gitignore` file.
+directory by running `status` in the submodule while paying attention
+to the `.gitignore` file of the submodule.
+
The submodule's `$GIT_DIR/config` file would come into play when running
`git push --recurse-submodules=check` in the superproject, as this would
@@ -97,20 +101,20 @@ remotes are configured in the submodule as usual in the `$GIT_DIR/config`
file.
* The configuration file `$GIT_DIR/config` in the superproject.
- Typical configuration at this place is controlling if a submodule
- is recursed into at all via the `active` flag for example.
+ Git only recurses into active submodules (see "ACTIVE SUBMODULES"
+ section below).
+
If the submodule is not yet initialized, then the configuration
-inside the submodule does not exist yet, so configuration where to
+inside the submodule does not exist yet, so where to
obtain the submodule from is configured here for example.
- * the `.gitmodules` file inside the superproject. Additionally to the
- required mapping between submodule's name and path, a project usually
+ * The `.gitmodules` file inside the superproject. A project usually
uses this file to suggest defaults for the upstream collection
- of repositories.
+ of repositories for the mapping that is required between a
+ submodule's name and its path.
+
-This file mainly serves as the mapping between name and path in
-the superproject, such that the submodule's git directory can be
+This file mainly serves as the mapping between the name and path of submodules
+in the superproject, such that the submodule's Git directory can be
located.
+
If the submodule has never been initialized, this is the only place
@@ -137,8 +141,8 @@ directory is automatically moved to `$GIT_DIR/modules/<name>/`
of the superproject.
* Deinitialized submodule: A `gitlink`, and a `.gitmodules` entry,
-but no submodule working directory. The submodule’s git directory
-may be there as after deinitializing the git directory is kept around.
+but no submodule working directory. The submodule’s Git directory
+may be there as after deinitializing the Git directory is kept around.
The directory which is supposed to be the working directory is empty instead.
+
A submodule can be deinitialized by running `git submodule deinit`.
@@ -160,6 +164,60 @@ from another repository.
To completely remove a submodule, manually delete
`$GIT_DIR/modules/<name>/`.
+ACTIVE SUBMODULES
+-----------------
+
+A submodule is considered active,
+
+ (a) if `submodule.<name>.active` is set to `true`
+ or
+ (b) if the submodule's path matches the pathspec in `submodule.active`
+ or
+ (c) if `submodule.<name>.url` is set.
+
+and these are evaluated in this order.
+
+For example:
+
+ [submodule "foo"]
+ active = false
+ url = https://example.org/foo
+ [submodule "bar"]
+ active = true
+ url = https://example.org/bar
+ [submodule "baz"]
+ url = https://example.org/baz
+
+In the above config only the submodule 'bar' and 'baz' are active,
+'bar' due to (a) and 'baz' due to (c). 'foo' is inactive because
+(a) takes precedence over (c)
+
+Note that (c) is a historical artefact and will be ignored if the
+(a) and (b) specify that the submodule is not active. In other words,
+if we have an `submodule.<name>.active` set to `false` or if the
+submodule's path is excluded in the pathspec in `submodule.active`, the
+url doesn't matter whether it is present or not. This is illustrated in
+the example that follows.
+
+ [submodule "foo"]
+ active = true
+ url = https://example.org/foo
+ [submodule "bar"]
+ url = https://example.org/bar
+ [submodule "baz"]
+ url = https://example.org/baz
+ [submodule "bob"]
+ ignore = true
+ [submodule]
+ active = b*
+ active = :(exclude) baz
+
+In here all submodules except 'baz' (foo, bar, bob) are active.
+'foo' due to its own active flag and all the others due to the
+submodule active pathspec, which specifies that any submodule
+starting with 'b' except 'baz' are also active, regardless of the
+presence of the .url field.
+
Workflow for a third party library
----------------------------------
diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt
index 22f5c9b..7b27363 100644
--- a/Documentation/rev-list-options.txt
+++ b/Documentation/rev-list-options.txt
@@ -750,10 +750,21 @@ The form '--missing=allow-any' will allow object traversal to continue
if a missing object is encountered. Missing objects will silently be
omitted from the results.
+
+The form '--missing=allow-promisor' is like 'allow-any', but will only
+allow object traversal to continue for EXPECTED promisor missing objects.
+Unexpected missing objects will raise an error.
++
The form '--missing=print' is like 'allow-any', but will also print a
list of the missing objects. Object IDs are prefixed with a ``?'' character.
endif::git-rev-list[]
+--exclude-promisor-objects::
+ (For internal use only.) Prefilter object traversal at
+ promisor boundary. This is used with partial clone. This is
+ stronger than `--missing=allow-promisor` because it limits the
+ traversal, rather than just silencing errors about missing
+ objects.
+
--no-walk[=(sorted|unsorted)]::
Only show the given commits, but do not traverse their ancestors.
This has no effect if a range is specified. If the argument
diff --git a/Documentation/technical/pack-protocol.txt b/Documentation/technical/pack-protocol.txt
index cd31edc..7fee6b7 100644
--- a/Documentation/technical/pack-protocol.txt
+++ b/Documentation/technical/pack-protocol.txt
@@ -241,6 +241,7 @@ out of what the server said it could do with the first 'want' line.
upload-request = want-list
*shallow-line
*1depth-request
+ [filter-request]
flush-pkt
want-list = first-want
@@ -256,6 +257,8 @@ out of what the server said it could do with the first 'want' line.
additional-want = PKT-LINE("want" SP obj-id)
depth = 1*DIGIT
+
+ filter-request = PKT-LINE("filter" SP filter-spec)
----
Clients MUST send all the obj-ids it wants from the reference
@@ -278,6 +281,11 @@ complete those commits. Commits whose parents are not received as a
result are defined as shallow and marked as such in the server. This
information is sent back to the client in the next step.
+The client can optionally request that pack-objects omit various
+objects from the packfile using one of several filtering techniques.
+These are intended for use with partial clone and partial fetch
+operations. See `rev-list` for possible "filter-spec" values.
+
Once all the 'want's and 'shallow's (and optional 'deepen') are
transferred, clients MUST send a flush-pkt, to tell the server side
that it is done sending the list.
diff --git a/Documentation/technical/protocol-capabilities.txt b/Documentation/technical/protocol-capabilities.txt
index 26dcc6f..332d209 100644
--- a/Documentation/technical/protocol-capabilities.txt
+++ b/Documentation/technical/protocol-capabilities.txt
@@ -309,3 +309,11 @@ to accept a signed push certificate, and asks the <nonce> to be
included in the push certificate. A send-pack client MUST NOT
send a push-cert packet unless the receive-pack server advertises
this capability.
+
+filter
+------
+
+If the upload-pack server advertises the 'filter' capability,
+fetch-pack may send "filter" commands to request a partial clone
+or partial fetch and request that the server omit various objects
+from the packfile.
diff --git a/Documentation/technical/repository-version.txt b/Documentation/technical/repository-version.txt
index 00ad379..e03eacc 100644
--- a/Documentation/technical/repository-version.txt
+++ b/Documentation/technical/repository-version.txt
@@ -86,3 +86,15 @@ for testing format-1 compatibility.
When the config key `extensions.preciousObjects` is set to `true`,
objects in the repository MUST NOT be deleted (e.g., by `git-prune` or
`git repack -d`).
+
+`partialclone`
+~~~~~~~~~~~~~~
+
+When the config key `extensions.partialclone` is set, it indicates
+that the repo was created with a partial clone (or later performed
+a partial fetch) and that the remote may have omitted sending
+certain unwanted objects. Such a remote is called a "promisor remote"
+and it promises that all such omitted objects can be fetched from it
+in the future.
+
+The value of this key is the name of the promisor remote.
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 258aff3..0c86f1c 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
-DEF_VER=v2.16.0-rc2
+DEF_VER=v2.16.GIT
LF='
'
diff --git a/INSTALL b/INSTALL
index ffb071e..808e07b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -84,9 +84,24 @@ Issues of note:
GIT_EXEC_PATH=`pwd`
PATH=`pwd`:$PATH
- GITPERLLIB=`pwd`/perl/blib/lib
+ GITPERLLIB=`pwd`/perl/build/lib
export GIT_EXEC_PATH PATH GITPERLLIB
+ - By default (unless NO_PERL is provided) Git will ship various perl
+ scripts & libraries it needs. However, for simplicity it doesn't
+ use the ExtUtils::MakeMaker toolchain to decide where to place the
+ perl libraries. Depending on the system this can result in the perl
+ libraries not being where you'd like them if they're expected to be
+ used by things other than Git itself.
+
+ Manually supplying a perllibdir prefix should fix this, if this is
+ a problem you care about, e.g.:
+
+ prefix=/usr perllibdir=/usr/$(/usr/bin/perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}')
+
+ Will result in e.g. perllibdir=/usr/share/perl/5.26.1 on Debian,
+ perllibdir=/usr/share/perl5 (which we'd use by default) on CentOS.
+
- Git is reasonably self-sufficient, but does depend on a few external
programs and libraries. Git can be used without most of them by adding
the approriate "NO_<LIBRARY>=YesPlease" to the make command line or
diff --git a/Makefile b/Makefile
index 1a9b23b..5bcd83d 100644
--- a/Makefile
+++ b/Makefile
@@ -294,9 +294,6 @@ all::
#
# Define PERL_PATH to the path of your Perl binary (usually /usr/bin/perl).
#
-# Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's
-# MakeMaker (e.g. using ActiveState under Cygwin).
-#
# Define NO_PERL if you do not want Perl scripts or libraries at all.
#
# Define PYTHON_PATH to the path of your Python binary (often /usr/bin/python
@@ -479,6 +476,7 @@ gitexecdir = libexec/git-core
mergetoolsdir = $(gitexecdir)/mergetools
sharedir = $(prefix)/share
gitwebdir = $(sharedir)/gitweb
+perllibdir = $(sharedir)/perl5
localedir = $(sharedir)/locale
template_dir = share/git-core/templates
htmldir = $(prefix)/share/doc/git-doc
@@ -492,7 +490,7 @@ mandir_relative = $(patsubst $(prefix)/%,%,$(mandir))
infodir_relative = $(patsubst $(prefix)/%,%,$(infodir))
htmldir_relative = $(patsubst $(prefix)/%,%,$(htmldir))
-export prefix bindir sharedir sysconfdir gitwebdir localedir
+export prefix bindir sharedir sysconfdir gitwebdir perllibdir localedir
CC = cc
AR = ar
@@ -804,6 +802,7 @@ LIB_OBJS += ewah/ewah_bitmap.o
LIB_OBJS += ewah/ewah_io.o
LIB_OBJS += ewah/ewah_rlw.o
LIB_OBJS += exec_cmd.o
+LIB_OBJS += fetch-object.o
LIB_OBJS += fetch-pack.o
LIB_OBJS += fsck.o
LIB_OBJS += fsmonitor.o
@@ -832,7 +831,6 @@ LIB_OBJS += merge.o
LIB_OBJS += merge-blobs.o
LIB_OBJS += merge-recursive.o
LIB_OBJS += mergesort.o
-LIB_OBJS += mru.o
LIB_OBJS += name-hash.o
LIB_OBJS += notes.o
LIB_OBJS += notes-cache.o
@@ -1543,9 +1541,6 @@ ifdef SHA1_MAX_BLOCK_SIZE
LIB_OBJS += compat/sha1-chunked.o
BASIC_CFLAGS += -DSHA1_MAX_BLOCK_SIZE="$(SHA1_MAX_BLOCK_SIZE)"
endif
-ifdef NO_PERL_MAKEMAKER
- export NO_PERL_MAKEMAKER
-endif
ifdef NO_HSTRERROR
COMPAT_CFLAGS += -DNO_HSTRERROR
COMPAT_OBJS += compat/hstrerror.o
@@ -1732,8 +1727,10 @@ ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES))
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
bindir_SQ = $(subst ','\'',$(bindir))
bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
+mandir_SQ = $(subst ','\'',$(mandir))
mandir_relative_SQ = $(subst ','\'',$(mandir_relative))
infodir_relative_SQ = $(subst ','\'',$(infodir_relative))
+perllibdir_SQ = $(subst ','\'',$(perllibdir))
localedir_SQ = $(subst ','\'',$(localedir))
gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
template_dir_SQ = $(subst ','\'',$(template_dir))
@@ -1844,9 +1841,6 @@ ifndef NO_TCLTK
$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) gitexecdir='$(gitexec_instdir_SQ)' all
$(QUIET_SUBDIR0)gitk-git $(QUIET_SUBDIR1) all
endif
-ifndef NO_PERL
- $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' localedir='$(localedir_SQ)' all
-endif
$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1) SHELL_PATH='$(SHELL_PATH_SQ)' PERL_PATH='$(PERL_PATH_SQ)'
please_set_SHELL_PATH_to_a_more_modern_shell:
@@ -1928,7 +1922,8 @@ common-cmds.h: $(wildcard Documentation/git-*.txt)
SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
- $(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP):$(PAGER_ENV)
+ $(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP):$(PAGER_ENV):\
+ $(perllibdir_SQ)
define cmd_munge_script
$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@ -1972,23 +1967,12 @@ git.res: git.rc GIT-VERSION-FILE
$(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS
ifndef NO_PERL
-$(SCRIPT_PERL_GEN): perl/perl.mak
-
-perl/perl.mak: perl/PM.stamp
-
-perl/PM.stamp: FORCE
- @$(FIND) perl -type f -name '*.pm' | sort >$@+ && \
- $(PERL_PATH) -V >>$@+ && \
- { cmp $@+ $@ >/dev/null 2>/dev/null || mv $@+ $@; } && \
- $(RM) $@+
-
-perl/perl.mak: GIT-CFLAGS GIT-PREFIX perl/Makefile perl/Makefile.PL
- $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
+$(SCRIPT_PERL_GEN):
-PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ)
-$(SCRIPT_PERL_GEN): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE
+PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ):$(perllibdir_SQ)
+$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-VERSION-FILE
$(QUIET_GEN)$(RM) $@ $@+ && \
- INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
+ INSTLIBDIR='$(perllibdir_SQ)' && \
INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \
INSTLIBDIR="$$INSTLIBDIR$${INSTLIBDIR_EXTRA:+:$$INSTLIBDIR_EXTRA}" && \
sed -e '1{' \
@@ -2312,6 +2296,21 @@ endif
po/build/locale/%/LC_MESSAGES/git.mo: po/%.po
$(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $<
+LIB_PERL := $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm)
+LIB_PERL_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL))
+
+ifndef NO_PERL
+all:: $(LIB_PERL_GEN)
+endif
+
+perl/build/lib/%.pm: perl/%.pm
+ $(QUIET_GEN)mkdir -p $(dir $@) && \
+ sed -e 's|@@LOCALEDIR@@|$(localedir_SQ)|g' < $< > $@
+
+perl/build/man/man3/Git.3pm: perl/Git.pm
+ $(QUIET_GEN)mkdir -p $(dir $@) && \
+ pod2man $< $@
+
FIND_SOURCE_FILES = ( \
git ls-files \
'*.[hcS]' \
@@ -2572,7 +2571,9 @@ ifndef NO_GETTEXT
(cd '$(DESTDIR_SQ)$(localedir_SQ)' && umask 022 && $(TAR) xof -)
endif
ifndef NO_PERL
- $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perllibdir_SQ)'
+ (cd perl/build/lib && $(TAR) cf - .) | \
+ (cd '$(DESTDIR_SQ)$(perllibdir_SQ)' && umask 022 && $(TAR) xof -)
$(MAKE) -C gitweb install
endif
ifndef NO_TCLTK
@@ -2622,12 +2623,17 @@ endif
install-gitweb:
$(MAKE) -C gitweb install
-install-doc:
+install-doc: install-man-perl
$(MAKE) -C Documentation install
-install-man:
+install-man: install-man-perl
$(MAKE) -C Documentation install-man
+install-man-perl: perl/build/man/man3/Git.3pm
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mandir_SQ)/man3'
+ (cd perl/build/man/man3 && $(TAR) cf - .) | \
+ (cd '$(DESTDIR_SQ)$(mandir_SQ)/man3' && umask 022 && $(TAR) xof -)
+
install-html:
$(MAKE) -C Documentation install-html
@@ -2719,7 +2725,7 @@ clean: profile-clean coverage-clean
$(MAKE) -C Documentation/ clean
ifndef NO_PERL
$(MAKE) -C gitweb clean
- $(MAKE) -C perl clean
+ $(RM) -r perl/build/
endif
$(MAKE) -C templates/ clean
$(MAKE) -C t/ clean
diff --git a/RelNotes b/RelNotes
index bec73d6..7a6dc06 120000
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/2.16.0.txt \ No newline at end of file
+Documentation/RelNotes/2.17.0.txt \ No newline at end of file
diff --git a/bisect.c b/bisect.c
index 2f3008b..f6d05bd 100644
--- a/bisect.c
+++ b/bisect.c
@@ -132,7 +132,7 @@ static void show_list(const char *debug, int counted, int nr,
unsigned flags = commit->object.flags;
enum object_type type;
unsigned long size;
- char *buf = read_sha1_file(commit->object.sha1, &type, &size);
+ char *buf = read_sha1_file(commit->object.oid.hash, &type, &size);
const char *subject_start;
int subject_len;
@@ -144,10 +144,10 @@ static void show_list(const char *debug, int counted, int nr,
fprintf(stderr, "%3d", weight(p));
else
fprintf(stderr, "---");
- fprintf(stderr, " %.*s", 8, sha1_to_hex(commit->object.sha1));
+ fprintf(stderr, " %.*s", 8, sha1_to_hex(commit->object.oid.hash));
for (pp = commit->parents; pp; pp = pp->next)
fprintf(stderr, " %.*s", 8,
- sha1_to_hex(pp->item->object.sha1));
+ sha1_to_hex(pp->item->object.oid.hash));
subject_len = find_commit_subject(buf, &subject_start);
if (subject_len)
@@ -792,11 +792,9 @@ static void handle_skipped_merge_base(const struct object_id *mb)
* - If one is "skipped", we can't know but we should warn.
* - If we don't know, we should check it out and ask the user to test.
*/
-static void check_merge_bases(int no_checkout)
+static void check_merge_bases(int rev_nr, struct commit **rev, int no_checkout)
{
struct commit_list *result;
- int rev_nr;
- struct commit **rev = get_bad_and_good_commits(&rev_nr);
result = get_merge_bases_many(rev[0], rev_nr - 1, rev + 1);
@@ -814,34 +812,21 @@ static void check_merge_bases(int no_checkout)
}
}
- free(rev);
free_commit_list(result);
}
-static int check_ancestors(const char *prefix)
+static int check_ancestors(int rev_nr, struct commit **rev, const char *prefix)
{
struct rev_info revs;
- struct object_array pending_copy;
int res;
bisect_rev_setup(&revs, prefix, "^%s", "%s", 0);
- /* Save pending objects, so they can be cleaned up later. */
- pending_copy = revs.pending;
- revs.leak_pending = 1;
-
- /*
- * bisect_common calls prepare_revision_walk right away, which
- * (together with .leak_pending = 1) makes us the sole owner of
- * the list of pending objects.
- */
bisect_common(&revs);
res = (revs.commits != NULL);
/* Clean up objects used, as they will be reused. */
- clear_commit_marks_for_object_array(&pending_copy, ALL_REV_FLAGS);
-
- object_array_clear(&pending_copy);
+ clear_commit_marks_many(rev_nr, rev, ALL_REV_FLAGS);
return res;
}
@@ -858,7 +843,8 @@ static void check_good_are_ancestors_of_bad(const char *prefix, int no_checkout)
{
char *filename = git_pathdup("BISECT_ANCESTORS_OK");
struct stat st;
- int fd;
+ int fd, rev_nr;
+ struct commit **rev;
if (!current_bad_oid)
die(_("a %s revision is needed"), term_bad);
@@ -872,8 +858,10 @@ static void check_good_are_ancestors_of_bad(const char *prefix, int no_checkout)
goto done;
/* Check if all good revs are ancestor of the bad rev. */
- if (check_ancestors(prefix))
- check_merge_bases(no_checkout);
+ rev = get_bad_and_good_commits(&rev_nr);
+ if (check_ancestors(rev_nr, rev, prefix))
+ check_merge_bases(rev_nr, rev, no_checkout);
+ free(rev);
/* Create file BISECT_ANCESTORS_OK. */
fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY, 0600);
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index f5fa4fd..cf9ea5c 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -475,6 +475,8 @@ static int batch_objects(struct batch_options *opt)
for_each_loose_object(batch_loose_object, &sa, 0);
for_each_packed_object(batch_packed_object, &sa, 0);
+ if (repository_format_partial_clone)
+ warning("This repository has extensions.partialClone set. Some objects may not be loaded.");
cb.opt = opt;
cb.expand = &data;
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 8bdc927..c54c78d 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -791,7 +791,6 @@ static void orphaned_commit_warning(struct commit *old, struct commit *new)
{
struct rev_info revs;
struct object *object = &old->object;
- struct object_array refs;
init_revisions(&revs, NULL);
setup_revisions(0, NULL, &revs, NULL);
@@ -802,14 +801,6 @@ static void orphaned_commit_warning(struct commit *old, struct commit *new)
for_each_ref(add_pending_uninteresting_ref, &revs);
add_pending_oid(&revs, "HEAD", &new->object.oid, UNINTERESTING);
- /* Save pending objects, so they can be cleaned up later. */
- refs = revs.pending;
- revs.leak_pending = 1;
-
- /*
- * prepare_revision_walk (together with .leak_pending = 1) makes us
- * the sole owner of the list of pending objects.
- */
if (prepare_revision_walk(&revs))
die(_("internal error in revision walk"));
if (!(old->object.flags & UNINTERESTING))
@@ -818,9 +809,7 @@ static void orphaned_commit_warning(struct commit *old, struct commit *new)
describe_detached_head(_("Previous HEAD position was"), old);
/* Clean up objects used, as they will be reused. */
- clear_commit_marks_for_object_array(&refs, ALL_REV_FLAGS);
-
- object_array_clear(&refs);
+ clear_commit_marks_all(ALL_REV_FLAGS);
}
static int switch_branches(const struct checkout_opts *opts,
diff --git a/builtin/clone.c b/builtin/clone.c
index 2da71db..101c27a 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -26,6 +26,7 @@
#include "run-command.h"
#include "connected.h"
#include "packfile.h"
+#include "list-objects-filter-options.h"
/*
* Overall FIXMEs:
@@ -60,6 +61,7 @@ static struct string_list option_optional_reference = STRING_LIST_INIT_NODUP;
static int option_dissociate;
static int max_jobs = -1;
static struct string_list option_recurse_submodules = STRING_LIST_INIT_NODUP;
+static struct list_objects_filter_options filter_options;
static int recurse_submodules_cb(const struct option *opt,
const char *arg, int unset)
@@ -135,6 +137,7 @@ static struct option builtin_clone_options[] = {
TRANSPORT_FAMILY_IPV4),
OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
TRANSPORT_FAMILY_IPV6),
+ OPT_PARSE_LIST_OBJECTS_FILTER(&filter_options),
OPT_END()
};
@@ -473,7 +476,9 @@ static void clone_local(const char *src_repo, const char *dest_repo)
}
static const char *junk_work_tree;
+static int junk_work_tree_flags;
static const char *junk_git_dir;
+static int junk_git_dir_flags;
static enum {
JUNK_LEAVE_NONE,
JUNK_LEAVE_REPO,
@@ -502,12 +507,12 @@ static void remove_junk(void)
if (junk_git_dir) {
strbuf_addstr(&sb, junk_git_dir);
- remove_dir_recursively(&sb, 0);
+ remove_dir_recursively(&sb, junk_git_dir_flags);
strbuf_reset(&sb);
}
if (junk_work_tree) {
strbuf_addstr(&sb, junk_work_tree);
- remove_dir_recursively(&sb, 0);
+ remove_dir_recursively(&sb, junk_work_tree_flags);
}
strbuf_release(&sb);
}
@@ -863,10 +868,15 @@ static void dissociate_from_references(void)
free(alternates);
}
+static int dir_exists(const char *path)
+{
+ struct stat sb;
+ return !stat(path, &sb);
+}
+
int cmd_clone(int argc, const char **argv, const char *prefix)
{
int is_bundle = 0, is_local;
- struct stat buf;
const char *repo_name, *repo, *work_tree, *git_dir;
char *path, *dir;
int dest_exists;
@@ -886,6 +896,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
struct refspec *refspec;
const char *fetch_pattern;
+ fetch_if_missing = 0;
+
packet_trace_identity("clone");
argc = parse_options(argc, argv, prefix, builtin_clone_options,
builtin_clone_usage, 0);
@@ -938,7 +950,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
dir = guess_dir_name(repo_name, is_bundle, option_bare);
strip_trailing_slashes(dir);
- dest_exists = !stat(dir, &buf);
+ dest_exists = dir_exists(dir);
if (dest_exists && !is_empty_dir(dir))
die(_("destination path '%s' already exists and is not "
"an empty directory."), dir);
@@ -949,7 +961,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
work_tree = NULL;
else {
work_tree = getenv("GIT_WORK_TREE");
- if (work_tree && !stat(work_tree, &buf))
+ if (work_tree && dir_exists(work_tree))
die(_("working tree '%s' already exists."), work_tree);
}
@@ -967,14 +979,24 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
if (safe_create_leading_directories_const(work_tree) < 0)
die_errno(_("could not create leading directories of '%s'"),
work_tree);
- if (!dest_exists && mkdir(work_tree, 0777))
+ if (dest_exists)
+ junk_work_tree_flags |= REMOVE_DIR_KEEP_TOPLEVEL;
+ else if (mkdir(work_tree, 0777))
die_errno(_("could not create work tree dir '%s'"),
work_tree);
junk_work_tree = work_tree;
set_git_work_tree(work_tree);
}
- junk_git_dir = real_git_dir ? real_git_dir : git_dir;
+ if (real_git_dir) {
+ if (dir_exists(real_git_dir))
+ junk_git_dir_flags |= REMOVE_DIR_KEEP_TOPLEVEL;
+ junk_git_dir = real_git_dir;
+ } else {
+ if (dest_exists)
+ junk_git_dir_flags |= REMOVE_DIR_KEEP_TOPLEVEL;
+ junk_git_dir = git_dir;
+ }
if (safe_create_leading_directories_const(git_dir) < 0)
die(_("could not create leading directories of '%s'"), git_dir);
@@ -1073,6 +1095,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
warning(_("--shallow-since is ignored in local clones; use file:// instead."));
if (option_not.nr)
warning(_("--shallow-exclude is ignored in local clones; use file:// instead."));
+ if (filter_options.choice)
+ warning(_("--filter is ignored in local clones; use file:// instead."));
if (!access(mkpath("%s/shallow", path), F_OK)) {
if (option_local > 0)
warning(_("source repository is shallow, ignoring --local"));
@@ -1101,7 +1125,13 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
transport_set_option(transport, TRANS_OPT_UPLOADPACK,
option_upload_pack);
- if (transport->smart_options && !deepen)
+ if (filter_options.choice) {
+ transport_set_option(transport, TRANS_OPT_LIST_OBJECTS_FILTER,
+ filter_options.filter_spec);
+ transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
+ }
+
+ if (transport->smart_options && !deepen && !filter_options.choice)
transport->smart_options->check_self_contained_and_connected = 1;
refs = transport_get_remote_refs(transport);
@@ -1161,13 +1191,17 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
write_refspec_config(src_ref_prefix, our_head_points_at,
remote_head_points_at, &branch_top);
+ if (filter_options.choice)
+ partial_clone_register("origin", &filter_options);
+
if (is_local)
clone_local(path, git_dir);
else if (refs && complete_refs_before_fetch)
transport_fetch_refs(transport, mapped_refs);
update_remote_refs(refs, mapped_refs, remote_head_points_at,
- branch_top.buf, reflog_msg.buf, transport, !is_local);
+ branch_top.buf, reflog_msg.buf, transport,
+ !is_local && !filter_options.choice);
update_head(our_head_points_at, remote_head, reflog_msg.buf);
@@ -1188,6 +1222,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
}
junk_mode = JUNK_LEAVE_REPO;
+ fetch_if_missing = 1;
err = checkout(submodule_progress);
strbuf_release(&reflog_msg);
diff --git a/builtin/commit.c b/builtin/commit.c
index 8a87701..4610e3d 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -701,7 +701,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
}
}
- if (have_option_m) {
+ if (have_option_m && !fixup_message) {
strbuf_addbuf(&sb, &message);
hook_arg1 = "message";
} else if (logfile && !strcmp(logfile, "-")) {
@@ -731,6 +731,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
ctx.output_encoding = get_commit_output_encoding();
format_commit_message(commit, "fixup! %s\n\n",
&sb, &ctx);
+ if (have_option_m)
+ strbuf_addbuf(&sb, &message);
hook_arg1 = "message";
} else if (!stat(git_path_merge_msg(), &statbuf)) {
/*
@@ -1197,8 +1199,8 @@ static int parse_and_validate_options(int argc, const char *argv[],
f++;
if (f > 1)
die(_("Only one of -c/-C/-F/--fixup can be used."));
- if (have_option_m && f > 0)
- die((_("Option -m cannot be combined with -c/-C/-F/--fixup.")));
+ if (have_option_m && (edit_message || use_message || logfile))
+ die((_("Option -m cannot be combined with -c/-C/-F.")));
if (f || have_option_m)
template_file = NULL;
if (edit_message)
@@ -1507,7 +1509,7 @@ static void print_summary(const char *prefix, const struct object_id *oid,
rev.show_root_diff = 1;
get_commit_format(format.buf, &rev);
rev.always_show_header = 0;
- rev.diffopt.detect_rename = 1;
+ rev.diffopt.detect_rename = DIFF_DETECT_RENAME;
rev.diffopt.break_opt = 0;
diff_setup_done(&rev.diffopt);
diff --git a/builtin/describe.c b/builtin/describe.c
index 21e37f5..c428984 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -274,10 +274,13 @@ static void append_name(struct commit_name *n, struct strbuf *dst)
n->name_checked = 1;
}
- if (n->tag)
+ if (n->tag) {
+ if (all)
+ strbuf_addstr(dst, "tags/");
strbuf_addstr(dst, n->tag->tag);
- else
+ } else {
strbuf_addstr(dst, n->path);
+ }
}
static void append_suffix(int depth, const struct object_id *oid, struct strbuf *dst)
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index 366b9d1..a7bc136 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -53,6 +53,8 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
struct oid_array shallow = OID_ARRAY_INIT;
struct string_list deepen_not = STRING_LIST_INIT_DUP;
+ fetch_if_missing = 0;
+
packet_trace_identity("fetch-pack");
memset(&args, 0, sizeof(args));
@@ -143,6 +145,22 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
args.update_shallow = 1;
continue;
}
+ if (!strcmp("--from-promisor", arg)) {
+ args.from_promisor = 1;
+ continue;
+ }
+ if (!strcmp("--no-dependents", arg)) {
+ args.no_dependents = 1;
+ continue;
+ }
+ if (skip_prefix(arg, ("--" CL_ARG__FILTER "="), &arg)) {
+ parse_list_objects_filter(&args.filter_options, arg);
+ continue;
+ }
+ if (!strcmp(arg, ("--no-" CL_ARG__FILTER))) {
+ list_objects_filter_set_no_filter(&args.filter_options);
+ continue;
+ }
usage(fetch_pack_usage);
}
if (deepen_not.nr)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 7bbcd26..8ee998e 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -19,6 +19,7 @@
#include "argv-array.h"
#include "utf8.h"
#include "packfile.h"
+#include "list-objects-filter-options.h"
static const char * const builtin_fetch_usage[] = {
N_("git fetch [<options>] [<repository> [<refspec>...]]"),
@@ -56,6 +57,7 @@ static int recurse_submodules_default = RECURSE_SUBMODULES_ON_DEMAND;
static int shown_url = 0;
static int refmap_alloc, refmap_nr;
static const char **refmap_array;
+static struct list_objects_filter_options filter_options;
static int git_fetch_config(const char *k, const char *v, void *cb)
{
@@ -161,6 +163,7 @@ static struct option builtin_fetch_options[] = {
TRANSPORT_FAMILY_IPV4),
OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
TRANSPORT_FAMILY_IPV6),
+ OPT_PARSE_LIST_OBJECTS_FILTER(&filter_options),
OPT_END()
};
@@ -1045,6 +1048,11 @@ static struct transport *prepare_transport(struct remote *remote, int deepen)
set_option(transport, TRANS_OPT_DEEPEN_RELATIVE, "yes");
if (update_shallow)
set_option(transport, TRANS_OPT_UPDATE_SHALLOW, "yes");
+ if (filter_options.choice) {
+ set_option(transport, TRANS_OPT_LIST_OBJECTS_FILTER,
+ filter_options.filter_spec);
+ set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
+ }
return transport;
}
@@ -1265,6 +1273,56 @@ static int fetch_multiple(struct string_list *list)
return result;
}
+/*
+ * Fetching from the promisor remote should use the given filter-spec
+ * or inherit the default filter-spec from the config.
+ */
+static inline void fetch_one_setup_partial(struct remote *remote)
+{
+ /*
+ * Explicit --no-filter argument overrides everything, regardless
+ * of any prior partial clones and fetches.
+ */
+ if (filter_options.no_filter)
+ return;
+
+ /*
+ * If no prior partial clone/fetch and the current fetch DID NOT
+ * request a partial-fetch, do a normal fetch.
+ */
+ if (!repository_format_partial_clone && !filter_options.choice)
+ return;
+
+ /*
+ * If this is the FIRST partial-fetch request, we enable partial
+ * on this repo and remember the given filter-spec as the default
+ * for subsequent fetches to this remote.
+ */
+ if (!repository_format_partial_clone && filter_options.choice) {
+ partial_clone_register(remote->name, &filter_options);
+ return;
+ }
+
+ /*
+ * We are currently limited to only ONE promisor remote and only
+ * allow partial-fetches from the promisor remote.
+ */
+ if (strcmp(remote->name, repository_format_partial_clone)) {
+ if (filter_options.choice)
+ die(_("--filter can only be used with the remote configured in core.partialClone"));
+ return;
+ }
+
+ /*
+ * Do a partial-fetch from the promisor remote using either the
+ * explicitly given filter-spec or inherit the filter-spec from
+ * the config.
+ */
+ if (!filter_options.choice)
+ partial_clone_get_default_filter_spec(&filter_options);
+ return;
+}
+
static int fetch_one(struct remote *remote, int argc, const char **argv)
{
static const char **refs = NULL;
@@ -1320,12 +1378,14 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
{
int i;
struct string_list list = STRING_LIST_INIT_DUP;
- struct remote *remote;
+ struct remote *remote = NULL;
int result = 0;
struct argv_array argv_gc_auto = ARGV_ARRAY_INIT;
packet_trace_identity("fetch");
+ fetch_if_missing = 0;
+
/* Record the command line for the reflog */
strbuf_addstr(&default_rla, "fetch");
for (i = 1; i < argc; i++)
@@ -1359,23 +1419,23 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
if (depth || deepen_since || deepen_not.nr)
deepen = 1;
+ if (filter_options.choice && !repository_format_partial_clone)
+ die("--filter can only be used when extensions.partialClone is set");
+
if (all) {
if (argc == 1)
die(_("fetch --all does not take a repository argument"));
else if (argc > 1)
die(_("fetch --all does not make sense with refspecs"));
(void) for_each_remote(get_one_remote_for_fetch, &list);
- result = fetch_multiple(&list);
} else if (argc == 0) {
/* No arguments -- use default remote */
remote = remote_get(NULL);
- result = fetch_one(remote, argc, argv);
} else if (multiple) {
/* All arguments are assumed to be remotes or groups */
for (i = 0; i < argc; i++)
if (!add_remote_or_group(argv[i], &list))
die(_("No such remote or remote group: %s"), argv[i]);
- result = fetch_multiple(&list);
} else {
/* Single remote or group */
(void) add_remote_or_group(argv[0], &list);
@@ -1383,14 +1443,25 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
/* More than one remote */
if (argc > 1)
die(_("Fetching a group and specifying refspecs does not make sense"));
- result = fetch_multiple(&list);
} else {
/* Zero or one remotes */
remote = remote_get(argv[0]);
- result = fetch_one(remote, argc-1, argv+1);
+ argc--;
+ argv++;
}
}
+ if (remote) {
+ if (filter_options.choice || repository_format_partial_clone)
+ fetch_one_setup_partial(remote);
+ result = fetch_one(remote, argc, argv);
+ } else {
+ if (filter_options.choice)
+ die(_("--filter can only be used with the remote configured in core.partialClone"));
+ /* TODO should this also die if we have a previous partial-clone? */
+ result = fetch_multiple(&list);
+ }
+
if (!result && (recurse_submodules != RECURSE_SUBMODULES_OFF)) {
struct argv_array options = ARGV_ARRAY_INIT;
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 04846d4..7a8a679 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -149,6 +149,15 @@ static int mark_object(struct object *obj, int type, void *data, struct fsck_opt
if (obj->flags & REACHABLE)
return 0;
obj->flags |= REACHABLE;
+
+ if (is_promisor_object(&obj->oid))
+ /*
+ * Further recursion does not need to be performed on this
+ * object since it is a promisor object (so it does not need to
+ * be added to "pending").
+ */
+ return 0;
+
if (!(obj->flags & HAS_OBJ)) {
if (parent && !has_object_file(&obj->oid)) {
printf("broken link from %7s %s\n",
@@ -208,6 +217,8 @@ static void check_reachable_object(struct object *obj)
* do a full fsck
*/
if (!(obj->flags & HAS_OBJ)) {
+ if (is_promisor_object(&obj->oid))
+ return;
if (has_sha1_pack(obj->oid.hash))
return; /* it is in pack - forget about it */
printf("missing %s %s\n", printable_type(obj),
@@ -398,7 +409,7 @@ static void fsck_handle_reflog_oid(const char *refname, struct object_id *oid,
xstrfmt("%s@{%"PRItime"}", refname, timestamp));
obj->flags |= USED;
mark_object_reachable(obj);
- } else {
+ } else if (!is_promisor_object(oid)) {
error("%s: invalid reflog entry %s", refname, oid_to_hex(oid));
errors_found |= ERROR_REACHABLE;
}
@@ -434,6 +445,14 @@ static int fsck_handle_ref(const char *refname, const struct object_id *oid,
obj = parse_object(oid);
if (!obj) {
+ if (is_promisor_object(oid)) {
+ /*
+ * Increment default_refs anyway, because this is a
+ * valid ref.
+ */
+ default_refs++;
+ return 0;
+ }
error("%s: invalid sha1 pointer %s", refname, oid_to_hex(oid));
errors_found |= ERROR_REACHABLE;
/* We'll continue with the rest despite the error.. */
@@ -659,6 +678,9 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
int i;
struct alternate_object_database *alt;
+ /* fsck knows how to handle missing promisor objects */
+ fetch_if_missing = 0;
+
errors_found = 0;
check_replace_refs = 0;
@@ -731,6 +753,8 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
struct object *obj = lookup_object(oid.hash);
if (!obj || !(obj->flags & HAS_OBJ)) {
+ if (is_promisor_object(&oid))
+ continue;
error("%s: object missing", oid_to_hex(&oid));
errors_found |= ERROR_OBJECT;
continue;
diff --git a/builtin/gc.c b/builtin/gc.c
index 3c5eae0..77fa720 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -458,6 +458,9 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
argv_array_push(&prune, prune_expire);
if (quiet)
argv_array_push(&prune, "--no-progress");
+ if (repository_format_partial_clone)
+ argv_array_push(&prune,
+ "--exclude-promisor-objects");
if (run_command_v_opt(prune.argv, RUN_GIT_CMD))
return error(FAILED_RUN, prune.argv[0]);
}
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 4c51aec..5ebd370 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -1389,15 +1389,60 @@ static void fix_unresolved_deltas(struct sha1file *f)
free(sorted_by_pos);
}
+static const char *derive_filename(const char *pack_name, const char *suffix,
+ struct strbuf *buf)
+{
+ size_t len;
+ if (!strip_suffix(pack_name, ".pack", &len))
+ die(_("packfile name '%s' does not end with '.pack'"),
+ pack_name);
+ strbuf_add(buf, pack_name, len);
+ strbuf_addch(buf, '.');
+ strbuf_addstr(buf, suffix);
+ return buf->buf;
+}
+
+static void write_special_file(const char *suffix, const char *msg,
+ const char *pack_name, const unsigned char *sha1,
+ const char **report)
+{
+ struct strbuf name_buf = STRBUF_INIT;
+ const char *filename;
+ int fd;
+ int msg_len = strlen(msg);
+
+ if (pack_name)
+ filename = derive_filename(pack_name, suffix, &name_buf);
+ else
+ filename = odb_pack_name(&name_buf, sha1, suffix);
+
+ fd = odb_pack_keep(filename);
+ if (fd < 0) {
+ if (errno != EEXIST)
+ die_errno(_("cannot write %s file '%s'"),
+ suffix, filename);
+ } else {
+ if (msg_len > 0) {
+ write_or_die(fd, msg, msg_len);
+ write_or_die(fd, "\n", 1);
+ }
+ if (close(fd) != 0)
+ die_errno(_("cannot close written %s file '%s'"),
+ suffix, filename);
+ if (report)
+ *report = suffix;
+ }
+ strbuf_release(&name_buf);
+}
+
static void final(const char *final_pack_name, const char *curr_pack_name,
const char *final_index_name, const char *curr_index_name,
- const char *keep_name, const char *keep_msg,
+ const char *keep_msg, const char *promisor_msg,
unsigned char *sha1)
{
const char *report = "pack";
struct strbuf pack_name = STRBUF_INIT;
struct strbuf index_name = STRBUF_INIT;
- struct strbuf keep_name_buf = STRBUF_INIT;
int err;
if (!from_stdin) {
@@ -1409,28 +1454,12 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
die_errno(_("error while closing pack file"));
}
- if (keep_msg) {
- int keep_fd, keep_msg_len = strlen(keep_msg);
-
- if (!keep_name)
- keep_name = odb_pack_name(&keep_name_buf, sha1, "keep");
-
- keep_fd = odb_pack_keep(keep_name);
- if (keep_fd < 0) {
- if (errno != EEXIST)
- die_errno(_("cannot write keep file '%s'"),
- keep_name);
- } else {
- if (keep_msg_len > 0) {
- write_or_die(keep_fd, keep_msg, keep_msg_len);
- write_or_die(keep_fd, "\n", 1);
- }
- if (close(keep_fd) != 0)
- die_errno(_("cannot close written keep file '%s'"),
- keep_name);
- report = "keep";
- }
- }
+ if (keep_msg)
+ write_special_file("keep", keep_msg, final_pack_name, sha1,
+ &report);
+ if (promisor_msg)
+ write_special_file("promisor", promisor_msg, final_pack_name,
+ sha1, NULL);
if (final_pack_name != curr_pack_name) {
if (!final_pack_name)
@@ -1472,7 +1501,6 @@ static void final(const char *final_pack_name, const char *curr_pack_name,
strbuf_release(&index_name);
strbuf_release(&pack_name);
- strbuf_release(&keep_name_buf);
}
static int git_index_pack_config(const char *k, const char *v, void *cb)
@@ -1615,32 +1643,26 @@ static void show_pack_info(int stat_only)
}
}
-static const char *derive_filename(const char *pack_name, const char *suffix,
- struct strbuf *buf)
-{
- size_t len;
- if (!strip_suffix(pack_name, ".pack", &len))
- die(_("packfile name '%s' does not end with '.pack'"),
- pack_name);
- strbuf_add(buf, pack_name, len);
- strbuf_addstr(buf, suffix);
- return buf->buf;
-}
-
int cmd_index_pack(int argc, const char **argv, const char *prefix)
{
int i, fix_thin_pack = 0, verify = 0, stat_only = 0;
const char *curr_index;
const char *index_name = NULL, *pack_name = NULL;
- const char *keep_name = NULL, *keep_msg = NULL;
- struct strbuf index_name_buf = STRBUF_INIT,
- keep_name_buf = STRBUF_INIT;
+ const char *keep_msg = NULL;
+ const char *promisor_msg = NULL;
+ struct strbuf index_name_buf = STRBUF_INIT;
struct pack_idx_entry **idx_objects;
struct pack_idx_option opts;
unsigned char pack_sha1[20];
unsigned foreign_nr = 1; /* zero is a "good" value, assume bad */
int report_end_of_input = 0;
+ /*
+ * index-pack never needs to fetch missing objects, since it only
+ * accesses the repo to do hash collision checks
+ */
+ fetch_if_missing = 0;
+
if (argc == 2 && !strcmp(argv[1], "-h"))
usage(index_pack_usage);
@@ -1678,6 +1700,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
stat_only = 1;
} else if (skip_to_optional_arg(arg, "--keep", &keep_msg)) {
; /* nothing to do */
+ } else if (skip_to_optional_arg(arg, "--promisor", &promisor_msg)) {
+ ; /* already parsed */
} else if (starts_with(arg, "--threads=")) {
char *end;
nr_threads = strtoul(arg+10, &end, 0);
@@ -1740,9 +1764,7 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
if (from_stdin && !startup_info->have_repository)
die(_("--stdin requires a git repository"));
if (!index_name && pack_name)
- index_name = derive_filename(pack_name, ".idx", &index_name_buf);
- if (keep_msg && !keep_name && pack_name)
- keep_name = derive_filename(pack_name, ".keep", &keep_name_buf);
+ index_name = derive_filename(pack_name, "idx", &index_name_buf);
if (verify) {
if (!index_name)
@@ -1790,13 +1812,12 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
if (!verify)
final(pack_name, curr_pack,
index_name, curr_index,
- keep_name, keep_msg,
+ keep_msg, promisor_msg,
pack_sha1);
else
close(input_fd);
free(objects);
strbuf_release(&index_name_buf);
- strbuf_release(&keep_name_buf);
if (pack_name == NULL)
free((void *) curr_pack);
if (index_name == NULL)
diff --git a/builtin/log.c b/builtin/log.c
index 14fdf39..46b4ca1 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -188,8 +188,8 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
if (rev->show_notes)
init_display_notes(&rev->notes_opt);
- if (rev->diffopt.pickaxe || rev->diffopt.filter ||
- rev->diffopt.flags.follow_renames)
+ if ((rev->diffopt.pickaxe_opts & DIFF_PICKAXE_KINDS_MASK) ||
+ rev->diffopt.filter || rev->diffopt.flags.follow_renames)
rev->always_show_header = 0;
if (source)
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 6b9cfc2..83dcbc9 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -26,7 +26,7 @@
#include "reachable.h"
#include "sha1-array.h"
#include "argv-array.h"
-#include "mru.h"
+#include "list.h"
#include "packfile.h"
static const char *pack_usage[] = {
@@ -75,6 +75,8 @@ static int use_bitmap_index = -1;
static int write_bitmap_index;
static uint16_t write_bitmap_options;
+static int exclude_promisor_objects;
+
static unsigned long delta_cache_size = 0;
static unsigned long max_delta_cache_size = 256 * 1024 * 1024;
static unsigned long cache_max_small_delta_size = 1000;
@@ -84,8 +86,9 @@ static unsigned long window_memory_limit = 0;
static struct list_objects_filter_options filter_options;
enum missing_action {
- MA_ERROR = 0, /* fail if any missing objects are encountered */
- MA_ALLOW_ANY, /* silently allow ALL missing objects */
+ MA_ERROR = 0, /* fail if any missing objects are encountered */
+ MA_ALLOW_ANY, /* silently allow ALL missing objects */
+ MA_ALLOW_PROMISOR, /* silently allow all missing PROMISOR objects */
};
static enum missing_action arg_missing_action;
static show_object_fn fn_show_object;
@@ -1006,8 +1009,8 @@ static int want_object_in_pack(const struct object_id *oid,
struct packed_git **found_pack,
off_t *found_offset)
{
- struct mru_entry *entry;
int want;
+ struct list_head *pos;
if (!exclude && local && has_loose_object_nonlocal(oid->hash))
return 0;
@@ -1023,8 +1026,8 @@ static int want_object_in_pack(const struct object_id *oid,
return want;
}
- for (entry = packed_git_mru.head; entry; entry = entry->next) {
- struct packed_git *p = entry->item;
+ list_for_each(pos, &packed_git_mru) {
+ struct packed_git *p = list_entry(pos, struct packed_git, mru);
off_t offset;
if (p == *found_pack)
@@ -1041,7 +1044,7 @@ static int want_object_in_pack(const struct object_id *oid,
}
want = want_found_object(exclude, p);
if (!exclude && want > 0)
- mru_mark(&packed_git_mru, entry);
+ list_move(&p->mru, &packed_git_mru);
if (want != -1)
return want;
}
@@ -2578,6 +2581,20 @@ static void show_object__ma_allow_any(struct object *obj, const char *name, void
show_object(obj, name, data);
}
+static void show_object__ma_allow_promisor(struct object *obj, const char *name, void *data)
+{
+ assert(arg_missing_action == MA_ALLOW_PROMISOR);
+
+ /*
+ * Quietly ignore EXPECTED missing objects. This avoids problems with
+ * staging them now and getting an odd error later.
+ */
+ if (!has_object_file(&obj->oid) && is_promisor_object(&obj->oid))
+ return;
+
+ show_object(obj, name, data);
+}
+
static int option_parse_missing_action(const struct option *opt,
const char *arg, int unset)
{
@@ -2592,10 +2609,18 @@ static int option_parse_missing_action(const struct option *opt,
if (!strcmp(arg, "allow-any")) {
arg_missing_action = MA_ALLOW_ANY;
+ fetch_if_missing = 0;
fn_show_object = show_object__ma_allow_any;
return 0;
}
+ if (!strcmp(arg, "allow-promisor")) {
+ arg_missing_action = MA_ALLOW_PROMISOR;
+ fetch_if_missing = 0;
+ fn_show_object = show_object__ma_allow_promisor;
+ return 0;
+ }
+
die(_("invalid value for --missing"));
return 0;
}
@@ -3009,6 +3034,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
{ OPTION_CALLBACK, 0, "missing", NULL, N_("action"),
N_("handling for missing objects"), PARSE_OPT_NONEG,
option_parse_missing_action },
+ OPT_BOOL(0, "exclude-promisor-objects", &exclude_promisor_objects,
+ N_("do not pack objects in promisor packfiles")),
OPT_END(),
};
@@ -3054,6 +3081,12 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
argv_array_push(&rp, "--unpacked");
}
+ if (exclude_promisor_objects) {
+ use_internal_rev_list = 1;
+ fetch_if_missing = 0;
+ argv_array_push(&rp, "--exclude-promisor-objects");
+ }
+
if (!reuse_object)
reuse_delta = 0;
if (pack_compression_level == -1)
diff --git a/builtin/prune.c b/builtin/prune.c
index d2fdae6..4cfec82 100644
--- a/builtin/prune.c
+++ b/builtin/prune.c
@@ -101,12 +101,15 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
{
struct rev_info revs;
struct progress *progress = NULL;
+ int exclude_promisor_objects = 0;
const struct option options[] = {
OPT__DRY_RUN(&show_only, N_("do not remove, show only")),
OPT__VERBOSE(&verbose, N_("report pruned objects")),
OPT_BOOL(0, "progress", &show_progress, N_("show progress")),
OPT_EXPIRY_DATE(0, "expire", &expire,
N_("expire objects older than <time>")),
+ OPT_BOOL(0, "exclude-promisor-objects", &exclude_promisor_objects,
+ N_("limit traversal to objects outside promisor packfiles")),
OPT_END()
};
char *s;
@@ -139,6 +142,10 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
show_progress = isatty(2);
if (show_progress)
progress = start_delayed_progress(_("Checking connectivity"), 0);
+ if (exclude_promisor_objects) {
+ fetch_if_missing = 0;
+ revs.exclude_promisor_objects = 1;
+ }
mark_reachable_objects(&revs, 1, expire, progress);
stop_progress(&progress);
diff --git a/builtin/repack.c b/builtin/repack.c
index f17a68a..7bdb401 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -83,7 +83,8 @@ static void remove_pack_on_signal(int signo)
/*
* Adds all packs hex strings to the fname list, which do not
- * have a corresponding .keep file.
+ * have a corresponding .keep or .promisor file. These packs are not to
+ * be kept if we are going to pack everything into one file.
*/
static void get_non_kept_pack_filenames(struct string_list *fname_list)
{
@@ -101,7 +102,8 @@ static void get_non_kept_pack_filenames(struct string_list *fname_list)
fname = xmemdupz(e->d_name, len);
- if (!file_exists(mkpath("%s/%s.keep", packdir, fname)))
+ if (!file_exists(mkpath("%s/%s.keep", packdir, fname)) &&
+ !file_exists(mkpath("%s/%s.promisor", packdir, fname)))
string_list_append_nodup(fname_list, fname);
else
free(fname);
@@ -232,6 +234,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
argv_array_push(&cmd.args, "--all");
argv_array_push(&cmd.args, "--reflog");
argv_array_push(&cmd.args, "--indexed-objects");
+ if (repository_format_partial_clone)
+ argv_array_push(&cmd.args, "--exclude-promisor-objects");
if (window)
argv_array_pushf(&cmd.args, "--window=%s", window);
if (window_memory)
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index d5345b6..48300d9 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -15,6 +15,7 @@
#include "progress.h"
#include "reflog-walk.h"
#include "oidset.h"
+#include "packfile.h"
static const char rev_list_usage[] =
"git rev-list [OPTION] <commit-id>... [ -- paths... ]\n"
@@ -67,6 +68,7 @@ enum missing_action {
MA_ERROR = 0, /* fail if any missing objects are encountered */
MA_ALLOW_ANY, /* silently allow ALL missing objects */
MA_PRINT, /* print ALL missing objects in special section */
+ MA_ALLOW_PROMISOR, /* silently allow all missing PROMISOR objects */
};
static enum missing_action arg_missing_action;
@@ -197,6 +199,12 @@ static void finish_commit(struct commit *commit, void *data)
static inline void finish_object__ma(struct object *obj)
{
+ /*
+ * Whether or not we try to dynamically fetch missing objects
+ * from the server, we currently DO NOT have the object. We
+ * can either print, allow (ignore), or conditionally allow
+ * (ignore) them.
+ */
switch (arg_missing_action) {
case MA_ERROR:
die("missing blob object '%s'", oid_to_hex(&obj->oid));
@@ -209,25 +217,36 @@ static inline void finish_object__ma(struct object *obj)
oidset_insert(&missing_objects, &obj->oid);
return;
+ case MA_ALLOW_PROMISOR:
+ if (is_promisor_object(&obj->oid))
+ return;
+ die("unexpected missing blob object '%s'",
+ oid_to_hex(&obj->oid));
+ return;
+
default:
BUG("unhandled missing_action");
return;
}
}
-static void finish_object(struct object *obj, const char *name, void *cb_data)
+static int finish_object(struct object *obj, const char *name, void *cb_data)
{
struct rev_list_info *info = cb_data;
- if (obj->type == OBJ_BLOB && !has_object_file(&obj->oid))
+ if (obj->type == OBJ_BLOB && !has_object_file(&obj->oid)) {
finish_object__ma(obj);
+ return 1;
+ }
if (info->revs->verify_objects && !obj->parsed && obj->type != OBJ_COMMIT)
parse_object(&obj->oid);
+ return 0;
}
static void show_object(struct object *obj, const char *name, void *cb_data)
{
struct rev_list_info *info = cb_data;
- finish_object(obj, name, cb_data);
+ if (finish_object(obj, name, cb_data))
+ return;
display_progress(progress, ++progress_counter);
if (info->flags & REV_LIST_QUIET)
return;
@@ -315,11 +334,19 @@ static inline int parse_missing_action_value(const char *value)
if (!strcmp(value, "allow-any")) {
arg_missing_action = MA_ALLOW_ANY;
+ fetch_if_missing = 0;
return 1;
}
if (!strcmp(value, "print")) {
arg_missing_action = MA_PRINT;
+ fetch_if_missing = 0;
+ return 1;
+ }
+
+ if (!strcmp(value, "allow-promisor")) {
+ arg_missing_action = MA_ALLOW_PROMISOR;
+ fetch_if_missing = 0;
return 1;
}
@@ -344,6 +371,35 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
init_revisions(&revs, prefix);
revs.abbrev = DEFAULT_ABBREV;
revs.commit_format = CMIT_FMT_UNSPECIFIED;
+
+ /*
+ * Scan the argument list before invoking setup_revisions(), so that we
+ * know if fetch_if_missing needs to be set to 0.
+ *
+ * "--exclude-promisor-objects" acts as a pre-filter on missing objects
+ * by not crossing the boundary from realized objects to promisor
+ * objects.
+ *
+ * Let "--missing" to conditionally set fetch_if_missing.
+ */
+ for (i = 1; i < argc; i++) {
+ const char *arg = argv[i];
+ if (!strcmp(arg, "--exclude-promisor-objects")) {
+ fetch_if_missing = 0;
+ revs.exclude_promisor_objects = 1;
+ break;
+ }
+ }
+ for (i = 1; i < argc; i++) {
+ const char *arg = argv[i];
+ if (skip_prefix(arg, "--missing=", &arg)) {
+ if (revs.exclude_promisor_objects)
+ die(_("cannot combine --exclude-promisor-objects and --missing"));
+ if (parse_missing_action_value(arg))
+ break;
+ }
+ }
+
argc = setup_revisions(argc, argv, &revs, NULL);
memset(&info, 0, sizeof(info));
@@ -404,7 +460,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
continue;
}
if (!strcmp(arg, ("--no-" CL_ARG__FILTER))) {
- list_objects_filter_release(&filter_options);
+ list_objects_filter_set_no_filter(&filter_options);
continue;
}
if (!strcmp(arg, "--filter-print-omitted")) {
@@ -412,9 +468,10 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
continue;
}
- if (skip_prefix(arg, "--missing=", &arg) &&
- parse_missing_action_value(arg))
- continue;
+ if (!strcmp(arg, "--exclude-promisor-objects"))
+ continue; /* already handled above */
+ if (skip_prefix(arg, "--missing=", &arg))
+ continue; /* already handled above */
usage(rev_list_usage);
diff --git a/bundle.c b/bundle.c
index 9329096..efe547e 100644
--- a/bundle.c
+++ b/bundle.c
@@ -134,7 +134,6 @@ int verify_bundle(struct bundle_header *header, int verbose)
struct ref_list *p = &header->prerequisites;
struct rev_info revs;
const char *argv[] = {NULL, "--all", NULL};
- struct object_array refs;
struct commit *commit;
int i, ret = 0, req_nr;
const char *message = _("Repository lacks these prerequisite commits:");
@@ -157,14 +156,6 @@ int verify_bundle(struct bundle_header *header, int verbose)
req_nr = revs.pending.nr;
setup_revisions(2, argv, &revs, NULL);
- /* Save pending objects, so they can be cleaned up later. */
- refs = revs.pending;
- revs.leak_pending = 1;
-
- /*
- * prepare_revision_walk (together with .leak_pending = 1) makes us
- * the sole owner of the list of pending objects.
- */
if (prepare_revision_walk(&revs))
die(_("revision walk setup failed"));
@@ -173,18 +164,24 @@ int verify_bundle(struct bundle_header *header, int verbose)
if (commit->object.flags & PREREQ_MARK)
i--;
- for (i = 0; i < req_nr; i++)
- if (!(refs.objects[i].item->flags & SHOWN)) {
- if (++ret == 1)
- error("%s", message);
- error("%s %s", oid_to_hex(&refs.objects[i].item->oid),
- refs.objects[i].name);
- }
+ for (i = 0; i < p->nr; i++) {
+ struct ref_list_entry *e = p->list + i;
+ struct object *o = parse_object(&e->oid);
+ assert(o); /* otherwise we'd have returned early */
+ if (o->flags & SHOWN)
+ continue;
+ if (++ret == 1)
+ error("%s", message);
+ error("%s %s", oid_to_hex(&e->oid), e->name);
+ }
/* Clean up objects used, as they will be reused. */
- clear_commit_marks_for_object_array(&refs, ALL_REV_FLAGS);
-
- object_array_clear(&refs);
+ for (i = 0; i < p->nr; i++) {
+ struct ref_list_entry *e = p->list + i;
+ commit = lookup_commit_reference_gently(&e->oid, 1);
+ if (commit)
+ clear_commit_marks(commit, ALL_REV_FLAGS);
+ }
if (verbose) {
struct ref_list *r;
diff --git a/cache.h b/cache.h
index d8b975a..7414eb4 100644
--- a/cache.h
+++ b/cache.h
@@ -4,7 +4,7 @@
#include "git-compat-util.h"
#include "strbuf.h"
#include "hashmap.h"
-#include "mru.h"
+#include "list.h"
#include "advice.h"
#include "gettext.h"
#include "convert.h"
@@ -914,10 +914,13 @@ extern int grafts_replace_parents;
#define GIT_REPO_VERSION 0
#define GIT_REPO_VERSION_READ 1
extern int repository_format_precious_objects;
+extern char *repository_format_partial_clone;
+extern const char *core_partial_clone_filter_default;
struct repository_format {
int version;
int precious_objects;
+ char *partial_clone; /* value of extensions.partialclone */
int is_bare;
int hash_algo;
char *work_tree;
@@ -1635,6 +1638,7 @@ struct pack_window {
extern struct packed_git {
struct packed_git *next;
+ struct list_head mru;
struct pack_window *windows;
off_t pack_size;
const void *index_data;
@@ -1648,7 +1652,8 @@ extern struct packed_git {
unsigned pack_local:1,
pack_keep:1,
freshened:1,
- do_not_close:1;
+ do_not_close:1,
+ pack_promisor:1;
unsigned char sha1[20];
struct revindex_entry *revindex;
/* something like ".git/objects/pack/xxxxx.pack" */
@@ -1656,10 +1661,9 @@ extern struct packed_git {
} *packed_git;
/*
- * A most-recently-used ordered version of the packed_git list, which can
- * be iterated instead of packed_git (and marked via mru_mark).
+ * A most-recently-used ordered version of the packed_git list.
*/
-extern struct mru packed_git_mru;
+extern struct list_head packed_git_mru;
struct pack_entry {
off_t offset;
@@ -1787,6 +1791,14 @@ struct object_info {
#define OBJECT_INFO_QUICK 8
extern int sha1_object_info_extended(const unsigned char *, struct object_info *, unsigned flags);
+/*
+ * Set this to 0 to prevent sha1_object_info_extended() from fetching missing
+ * blobs. This has a difference only if extensions.partialClone is set.
+ *
+ * Its default value is 1.
+ */
+extern int fetch_if_missing;
+
/* Dumb servers support */
extern int update_server_info(int);
diff --git a/combine-diff.c b/combine-diff.c
index 2505de1..bc08c4c 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -1438,7 +1438,7 @@ void diff_tree_combined(const struct object_id *oid,
opt->flags.follow_renames ||
opt->break_opt != -1 ||
opt->detect_rename ||
- opt->pickaxe ||
+ (opt->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK) ||
opt->filter;
diff --git a/commit.c b/commit.c
index cab8d44..ff51c9f 100644
--- a/commit.c
+++ b/commit.c
@@ -547,7 +547,7 @@ void clear_commit_marks_many(int nr, struct commit **commit, unsigned int mark)
struct commit_list *list = NULL;
while (nr--) {
- commit_list_insert(*commit, &list);
+ clear_commit_marks_1(&list, *commit, mark);
commit++;
}
while (list)
@@ -559,20 +559,6 @@ void clear_commit_marks(struct commit *commit, unsigned int mark)
clear_commit_marks_many(1, &commit, mark);
}
-void clear_commit_marks_for_object_array(struct object_array *a, unsigned mark)
-{
- struct object *object;
- struct commit *commit;
- unsigned int i;
-
- for (i = 0; i < a->nr; i++) {
- object = a->objects[i].item;
- commit = lookup_commit_reference_gently(&object->oid, 1);
- if (commit)
- clear_commit_marks(commit, mark);
- }
-}
-
struct commit *pop_commit(struct commit_list **stack)
{
struct commit_list *top = *stack;
@@ -929,8 +915,7 @@ static int remove_redundant(struct commit **array, int cnt)
if (work[j]->object.flags & PARENT1)
redundant[filled_index[j]] = 1;
clear_commit_marks(array[i], all_flags);
- for (j = 0; j < filled; j++)
- clear_commit_marks(work[j], all_flags);
+ clear_commit_marks_many(filled, work, all_flags);
free_commit_list(common);
}
diff --git a/commit.h b/commit.h
index 8c68ca1..425f402 100644
--- a/commit.h
+++ b/commit.h
@@ -140,7 +140,6 @@ struct commit *pop_commit(struct commit_list **stack);
void clear_commit_marks(struct commit *commit, unsigned int mark);
void clear_commit_marks_many(int nr, struct commit **commit, unsigned int mark);
-void clear_commit_marks_for_object_array(struct object_array *a, unsigned mark);
enum rev_sort_order {
diff --git a/config.c b/config.c
index e617c20..70ce6e7 100644
--- a/config.c
+++ b/config.c
@@ -1251,6 +1251,11 @@ static int git_default_core_config(const char *var, const char *value)
return 0;
}
+ if (!strcmp(var, "core.partialclonefilter")) {
+ return git_config_string(&core_partial_clone_filter_default,
+ var, value);
+ }
+
/* Add other config variables here and to Documentation/config.txt. */
return 0;
}
diff --git a/connected.c b/connected.c
index 4a47f33..91feb78 100644
--- a/connected.c
+++ b/connected.c
@@ -56,6 +56,8 @@ int check_connected(oid_iterate_fn fn, void *cb_data,
argv_array_push(&rev_list.args,"rev-list");
argv_array_push(&rev_list.args, "--objects");
argv_array_push(&rev_list.args, "--stdin");
+ if (repository_format_partial_clone)
+ argv_array_push(&rev_list.args, "--exclude-promisor-objects");
argv_array_push(&rev_list.args, "--not");
argv_array_push(&rev_list.args, "--all");
argv_array_push(&rev_list.args, "--quiet");
diff --git a/contrib/examples/git-difftool.perl b/contrib/examples/git-difftool.perl
index df59bdf..fb0fd0b 100755
--- a/contrib/examples/git-difftool.perl
+++ b/contrib/examples/git-difftool.perl
@@ -13,7 +13,7 @@
use 5.008;
use strict;
use warnings;
-use Error qw(:try);
+use Git::Error qw(:try);
use File::Basename qw(dirname);
use File::Copy;
use File::Find;
diff --git a/diff.c b/diff.c
index fb22b19..0a9a0cd 100644
--- a/diff.c
+++ b/diff.c
@@ -246,7 +246,7 @@ static int parse_ws_error_highlight(const char *arg)
*/
void init_diff_ui_defaults(void)
{
- diff_detect_rename_default = 1;
+ diff_detect_rename_default = DIFF_DETECT_RENAME;
}
int git_diff_heuristic_config(const char *var, const char *value, void *cb)
@@ -4086,6 +4086,7 @@ void diff_setup(struct diff_options *options)
options->interhunkcontext = diff_interhunk_context_default;
options->ws_error_highlight = ws_error_highlight_default;
options->flags.rename_empty = 1;
+ options->objfind = NULL;
/* pathchange left =NULL by default */
options->change = diff_change;
@@ -4110,22 +4111,20 @@ void diff_setup(struct diff_options *options)
void diff_setup_done(struct diff_options *options)
{
- int count = 0;
+ unsigned check_mask = DIFF_FORMAT_NAME |
+ DIFF_FORMAT_NAME_STATUS |
+ DIFF_FORMAT_CHECKDIFF |
+ DIFF_FORMAT_NO_OUTPUT;
if (options->set_default)
options->set_default(options);
- if (options->output_format & DIFF_FORMAT_NAME)
- count++;
- if (options->output_format & DIFF_FORMAT_NAME_STATUS)
- count++;
- if (options->output_format & DIFF_FORMAT_CHECKDIFF)
- count++;
- if (options->output_format & DIFF_FORMAT_NO_OUTPUT)
- count++;
- if (count > 1)
+ if (HAS_MULTI_BITS(options->output_format & check_mask))
die(_("--name-only, --name-status, --check and -s are mutually exclusive"));
+ if (HAS_MULTI_BITS(options->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK))
+ die(_("-G, -S and --find-object are mutually exclusive"));
+
/*
* Most of the time we can say "there are changes"
* only by checking if there are changed paths, but
@@ -4175,7 +4174,7 @@ void diff_setup_done(struct diff_options *options)
/*
* Also pickaxe would not work very well if you do not say recursive
*/
- if (options->pickaxe)
+ if (options->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK)
options->flags.recursive = 1;
/*
* When patches are generated, submodules diffed against the work tree
@@ -4489,6 +4488,23 @@ static int parse_ws_error_highlight_opt(struct diff_options *opt, const char *ar
return 1;
}
+static int parse_objfind_opt(struct diff_options *opt, const char *arg)
+{
+ struct object_id oid;
+
+ if (get_oid(arg, &oid))
+ return error("unable to resolve '%s'", arg);
+
+ if (!opt->objfind)
+ opt->objfind = xcalloc(1, sizeof(*opt->objfind));
+
+ opt->pickaxe_opts |= DIFF_PICKAXE_KIND_OBJFIND;
+ opt->flags.recursive = 1;
+ opt->flags.tree_in_recursive = 1;
+ oidset_insert(opt->objfind, &oid);
+ return 1;
+}
+
int diff_opt_parse(struct diff_options *options,
const char **av, int ac, const char *prefix)
{
@@ -4736,7 +4752,8 @@ int diff_opt_parse(struct diff_options *options,
else if ((argcount = short_opt('O', av, &optarg))) {
options->orderfile = prefix_filename(prefix, optarg);
return argcount;
- }
+ } else if (skip_prefix(arg, "--find-object=", &arg))
+ return parse_objfind_opt(options, arg);
else if ((argcount = parse_long_opt("diff-filter", av, &optarg))) {
int offending = parse_diff_filter_opt(optarg, options);
if (offending)
@@ -5783,7 +5800,7 @@ void diffcore_std(struct diff_options *options)
if (options->break_opt != -1)
diffcore_merge_broken();
}
- if (options->pickaxe)
+ if (options->pickaxe_opts & DIFF_PICKAXE_KINDS_MASK)
diffcore_pickaxe(options);
if (options->orderfile)
diffcore_order(options->orderfile);
diff --git a/diff.h b/diff.h
index 7cf276f..6bd278a 100644
--- a/diff.h
+++ b/diff.h
@@ -7,6 +7,7 @@
#include "tree-walk.h"
#include "pathspec.h"
#include "object.h"
+#include "oidset.h"
struct rev_info;
struct diff_options;
@@ -91,7 +92,6 @@ struct diff_flags {
unsigned override_submodule_config:1;
unsigned dirstat_by_line:1;
unsigned funccontext:1;
- unsigned pickaxe_ignore_case:1;
unsigned default_follow_renames:1;
};
@@ -146,7 +146,7 @@ struct diff_options {
int skip_stat_unmatch;
int line_termination;
int output_format;
- int pickaxe_opts;
+ unsigned pickaxe_opts;
int rename_score;
int rename_limit;
int needed_rename_limit;
@@ -178,6 +178,8 @@ struct diff_options {
enum diff_words_type word_diff;
enum diff_submodule_format submodule_format;
+ struct oidset *objfind;
+
/* this is set by diffcore for DIFF_FORMAT_PATCH */
int found_changes;
@@ -330,6 +332,13 @@ extern void diff_setup_done(struct diff_options *);
#define DIFF_PICKAXE_KIND_S 4 /* traditional plumbing counter */
#define DIFF_PICKAXE_KIND_G 8 /* grep in the patch */
+#define DIFF_PICKAXE_KIND_OBJFIND 16 /* specific object IDs */
+
+#define DIFF_PICKAXE_KINDS_MASK (DIFF_PICKAXE_KIND_S | \
+ DIFF_PICKAXE_KIND_G | \
+ DIFF_PICKAXE_KIND_OBJFIND)
+
+#define DIFF_PICKAXE_IGNORE_CASE 32
extern void diffcore_std(struct diff_options *);
extern void diffcore_fix_diff_index(struct diff_options *);
diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c
index 9476bd2..239ce51 100644
--- a/diffcore-pickaxe.c
+++ b/diffcore-pickaxe.c
@@ -124,13 +124,20 @@ static int pickaxe_match(struct diff_filepair *p, struct diff_options *o,
mmfile_t mf1, mf2;
int ret;
- if (!o->pickaxe[0])
- return 0;
-
/* ignore unmerged */
if (!DIFF_FILE_VALID(p->one) && !DIFF_FILE_VALID(p->two))
return 0;
+ if (o->objfind) {
+ return (DIFF_FILE_VALID(p->one) &&
+ oidset_contains(o->objfind, &p->one->oid)) ||
+ (DIFF_FILE_VALID(p->two) &&
+ oidset_contains(o->objfind, &p->two->oid));
+ }
+
+ if (!o->pickaxe[0])
+ return 0;
+
if (o->flags.allow_textconv) {
textconv_one = get_textconv(p->one);
textconv_two = get_textconv(p->two);
@@ -222,33 +229,34 @@ void diffcore_pickaxe(struct diff_options *o)
if (opts & (DIFF_PICKAXE_REGEX | DIFF_PICKAXE_KIND_G)) {
int cflags = REG_EXTENDED | REG_NEWLINE;
- if (o->flags.pickaxe_ignore_case)
+ if (o->pickaxe_opts & DIFF_PICKAXE_IGNORE_CASE)
cflags |= REG_ICASE;
regcomp_or_die(&regex, needle, cflags);
regexp = &regex;
- } else if (o->flags.pickaxe_ignore_case &&
- has_non_ascii(needle)) {
- struct strbuf sb = STRBUF_INIT;
- int cflags = REG_NEWLINE | REG_ICASE;
-
- basic_regex_quote_buf(&sb, needle);
- regcomp_or_die(&regex, sb.buf, cflags);
- strbuf_release(&sb);
- regexp = &regex;
- } else {
- kws = kwsalloc(o->flags.pickaxe_ignore_case
- ? tolower_trans_tbl : NULL);
- kwsincr(kws, needle, strlen(needle));
- kwsprep(kws);
+ } else if (opts & DIFF_PICKAXE_KIND_S) {
+ if (o->pickaxe_opts & DIFF_PICKAXE_IGNORE_CASE &&
+ has_non_ascii(needle)) {
+ struct strbuf sb = STRBUF_INIT;
+ int cflags = REG_NEWLINE | REG_ICASE;
+
+ basic_regex_quote_buf(&sb, needle);
+ regcomp_or_die(&regex, sb.buf, cflags);
+ strbuf_release(&sb);
+ regexp = &regex;
+ } else {
+ kws = kwsalloc(o->pickaxe_opts & DIFF_PICKAXE_IGNORE_CASE
+ ? tolower_trans_tbl : NULL);
+ kwsincr(kws, needle, strlen(needle));
+ kwsprep(kws);
+ }
}
- /* Might want to warn when both S and G are on; I don't care... */
pickaxe(&diff_queued_diff, o, regexp, kws,
(opts & DIFF_PICKAXE_KIND_G) ? diff_grep : has_changes);
if (regexp)
regfree(regexp);
- else
+ if (kws)
kwsfree(kws);
return;
}
diff --git a/environment.c b/environment.c
index 63ac38a..0adc71e 100644
--- a/environment.c
+++ b/environment.c
@@ -27,6 +27,8 @@ int warn_ambiguous_refs = 1;
int warn_on_object_refname_ambiguity = 1;
int ref_paranoia = -1;
int repository_format_precious_objects;
+char *repository_format_partial_clone;
+const char *core_partial_clone_filter_default;
const char *git_commit_encoding;
const char *git_log_output_encoding;
const char *apply_default_whitespace;
diff --git a/fetch-object.c b/fetch-object.c
new file mode 100644
index 0000000..853624f
--- /dev/null
+++ b/fetch-object.c
@@ -0,0 +1,45 @@
+#include "cache.h"
+#include "packfile.h"
+#include "pkt-line.h"
+#include "strbuf.h"
+#include "transport.h"
+#include "fetch-object.h"
+
+static void fetch_refs(const char *remote_name, struct ref *ref)
+{
+ struct remote *remote;
+ struct transport *transport;
+ int original_fetch_if_missing = fetch_if_missing;
+
+ fetch_if_missing = 0;
+ remote = remote_get(remote_name);
+ if (!remote->url[0])
+ die(_("Remote with no URL"));
+ transport = transport_get(remote, remote->url[0]);
+
+ transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
+ transport_set_option(transport, TRANS_OPT_NO_DEPENDENTS, "1");
+ transport_fetch_refs(transport, ref);
+ fetch_if_missing = original_fetch_if_missing;
+}
+
+void fetch_object(const char *remote_name, const unsigned char *sha1)
+{
+ struct ref *ref = alloc_ref(sha1_to_hex(sha1));
+ hashcpy(ref->old_oid.hash, sha1);
+ fetch_refs(remote_name, ref);
+}
+
+void fetch_objects(const char *remote_name, const struct oid_array *to_fetch)
+{
+ struct ref *ref = NULL;
+ int i;
+
+ for (i = 0; i < to_fetch->nr; i++) {
+ struct ref *new_ref = alloc_ref(oid_to_hex(&to_fetch->oid[i]));
+ oidcpy(&new_ref->old_oid, &to_fetch->oid[i]);
+ new_ref->next = ref;
+ ref = new_ref;
+ }
+ fetch_refs(remote_name, ref);
+}
diff --git a/fetch-object.h b/fetch-object.h
new file mode 100644
index 0000000..4b269d0
--- /dev/null
+++ b/fetch-object.h
@@ -0,0 +1,11 @@
+#ifndef FETCH_OBJECT_H
+#define FETCH_OBJECT_H
+
+#include "sha1-array.h"
+
+extern void fetch_object(const char *remote_name, const unsigned char *sha1);
+
+extern void fetch_objects(const char *remote_name,
+ const struct oid_array *to_fetch);
+
+#endif
diff --git a/fetch-pack.c b/fetch-pack.c
index 9f6b07a..8253d74 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -29,6 +29,7 @@ static int deepen_not_ok;
static int fetch_fsck_objects = -1;
static int transfer_fsck_objects = -1;
static int agent_supported;
+static int server_supports_filtering;
static struct lock_file shallow_lock;
static const char *alternate_shallow_file;
@@ -379,6 +380,8 @@ static int find_common(struct fetch_pack_args *args,
if (deepen_not_ok) strbuf_addstr(&c, " deepen-not");
if (agent_supported) strbuf_addf(&c, " agent=%s",
git_user_agent_sanitized());
+ if (args->filter_options.choice)
+ strbuf_addstr(&c, " filter");
packet_buf_write(&req_buf, "want %s%s\n", remote_hex, c.buf);
strbuf_release(&c);
} else
@@ -407,6 +410,9 @@ static int find_common(struct fetch_pack_args *args,
packet_buf_write(&req_buf, "deepen-not %s", s->string);
}
}
+ if (server_supports_filtering && args->filter_options.choice)
+ packet_buf_write(&req_buf, "filter %s",
+ args->filter_options.filter_spec);
packet_buf_flush(&req_buf);
state_len = req_buf.len;
@@ -450,6 +456,8 @@ static int find_common(struct fetch_pack_args *args,
flushes = 0;
retval = -1;
+ if (args->no_dependents)
+ goto done;
while ((oid = get_rev())) {
packet_buf_write(&req_buf, "have %s\n", oid_to_hex(oid));
print_verbose(args, "have %s", oid_to_hex(oid));
@@ -709,6 +717,7 @@ static int everything_local(struct fetch_pack_args *args,
{
struct ref *ref;
int retval;
+ int old_save_commit_buffer = save_commit_buffer;
timestamp_t cutoff = 0;
save_commit_buffer = 0;
@@ -735,29 +744,31 @@ static int everything_local(struct fetch_pack_args *args,
}
}
- if (!args->deepen) {
- for_each_ref(mark_complete_oid, NULL);
- for_each_cached_alternate(mark_alternate_complete);
- commit_list_sort_by_date(&complete);
- if (cutoff)
- mark_recent_complete_commits(args, cutoff);
- }
+ if (!args->no_dependents) {
+ if (!args->deepen) {
+ for_each_ref(mark_complete_oid, NULL);
+ for_each_cached_alternate(mark_alternate_complete);
+ commit_list_sort_by_date(&complete);
+ if (cutoff)
+ mark_recent_complete_commits(args, cutoff);
+ }
- /*
- * Mark all complete remote refs as common refs.
- * Don't mark them common yet; the server has to be told so first.
- */
- for (ref = *refs; ref; ref = ref->next) {
- struct object *o = deref_tag(lookup_object(ref->old_oid.hash),
- NULL, 0);
+ /*
+ * Mark all complete remote refs as common refs.
+ * Don't mark them common yet; the server has to be told so first.
+ */
+ for (ref = *refs; ref; ref = ref->next) {
+ struct object *o = deref_tag(lookup_object(ref->old_oid.hash),
+ NULL, 0);
- if (!o || o->type != OBJ_COMMIT || !(o->flags & COMPLETE))
- continue;
+ if (!o || o->type != OBJ_COMMIT || !(o->flags & COMPLETE))
+ continue;
- if (!(o->flags & SEEN)) {
- rev_list_push((struct commit *)o, COMMON_REF | SEEN);
+ if (!(o->flags & SEEN)) {
+ rev_list_push((struct commit *)o, COMMON_REF | SEEN);
- mark_common((struct commit *)o, 1, 1);
+ mark_common((struct commit *)o, 1, 1);
+ }
}
}
@@ -777,6 +788,9 @@ static int everything_local(struct fetch_pack_args *args,
print_verbose(args, _("already have %s (%s)"), oid_to_hex(remote),
ref->name);
}
+
+ save_commit_buffer = old_save_commit_buffer;
+
return retval;
}
@@ -833,7 +847,7 @@ static int get_pack(struct fetch_pack_args *args,
argv_array_push(&cmd.args, alternate_shallow_file);
}
- if (do_keep) {
+ if (do_keep || args->from_promisor) {
if (pack_lockfile)
cmd.out = -1;
cmd_name = "index-pack";
@@ -843,7 +857,7 @@ static int get_pack(struct fetch_pack_args *args,
argv_array_push(&cmd.args, "-v");
if (args->use_thin_pack)
argv_array_push(&cmd.args, "--fix-thin");
- if (args->lock_pack || unpack_limit) {
+ if (do_keep && (args->lock_pack || unpack_limit)) {
char hostname[HOST_NAME_MAX + 1];
if (xgethostname(hostname, sizeof(hostname)))
xsnprintf(hostname, sizeof(hostname), "localhost");
@@ -853,6 +867,8 @@ static int get_pack(struct fetch_pack_args *args,
}
if (args->check_self_contained_and_connected)
argv_array_push(&cmd.args, "--check-self-contained-and-connected");
+ if (args->from_promisor)
+ argv_array_push(&cmd.args, "--promisor");
}
else {
cmd_name = "unpack-objects";
@@ -964,6 +980,13 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
else
prefer_ofs_delta = 0;
+ if (server_supports("filter")) {
+ server_supports_filtering = 1;
+ print_verbose(args, _("Server supports filter"));
+ } else if (args->filter_options.choice) {
+ warning("filtering not recognized by server, ignoring");
+ }
+
if ((agent_feature = server_feature_value("agent", &agent_len))) {
agent_supported = 1;
if (agent_len)
diff --git a/fetch-pack.h b/fetch-pack.h
index b6aeb43..3e224a1 100644
--- a/fetch-pack.h
+++ b/fetch-pack.h
@@ -3,6 +3,7 @@
#include "string-list.h"
#include "run-command.h"
+#include "list-objects-filter-options.h"
struct oid_array;
@@ -12,6 +13,7 @@ struct fetch_pack_args {
int depth;
const char *deepen_since;
const struct string_list *deepen_not;
+ struct list_objects_filter_options filter_options;
unsigned deepen_relative:1;
unsigned quiet:1;
unsigned keep_pack:1;
@@ -29,6 +31,14 @@ struct fetch_pack_args {
unsigned cloning:1;
unsigned update_shallow:1;
unsigned deepen:1;
+ unsigned from_promisor:1;
+
+ /*
+ * If 1, fetch_pack() will also not modify any object flags.
+ * This allows fetch_pack() to safely be called by any function,
+ * regardless of which object flags it uses (if any).
+ */
+ unsigned no_dependents:1;
};
/*
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index 28b325d..964c3a7 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -262,7 +262,7 @@ sub list_modified {
}
}
- for (run_cmd_pipe(qw(git diff-files --numstat --summary --raw --), @ARGV)) {
+ for (run_cmd_pipe(qw(git diff-files --ignore-submodules=dirty --numstat --summary --raw --), @ARGV)) {
if (($add, $del, $file) =
/^([-\d]+) ([-\d]+) (.*)/) {
$file = unquote_path($file);
diff --git a/git-send-email.perl b/git-send-email.perl
index edcc6d3..bbf4dea 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -26,10 +26,11 @@ use Text::ParseWords;
use Term::ANSIColor;
use File::Temp qw/ tempdir tempfile /;
use File::Spec::Functions qw(catdir catfile);
-use Error qw(:try);
+use Git::Error qw(:try);
use Cwd qw(abs_path cwd);
use Git;
use Git::I18N;
+use Git::Mail::Address;
Getopt::Long::Configure qw/ pass_through /;
@@ -489,7 +490,7 @@ my ($repoauthor, $repocommitter);
($repocommitter) = Git::ident_person(@repo, 'committer');
sub parse_address_line {
- return Git::parse_mailboxes($_[0]);
+ return map { $_->format } Mail::Address->parse($_[0]);
}
sub split_addrs {
diff --git a/git-stash.sh b/git-stash.sh
index 1114005..fc8f8ae 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -322,10 +322,9 @@ push_stash () {
if test $# != 0
then
- git reset -q -- "$@"
- git ls-files -z --modified -- "$@" |
+ git add -u -- "$@" |
git checkout-index -z --force --stdin
- git clean --force -q -d -- "$@"
+ git diff-index -p --cached --binary HEAD -- "$@" | git apply --index -R
else
git reset --hard -q
fi
diff --git a/git-svn.perl b/git-svn.perl
index aa242d4..76a75d0 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -931,6 +931,7 @@ sub cmd_dcommit {
# information from different SVN repos, and paths
# which are not underneath this repository root.
my $rooturl = $gs->repos_root;
+ Git::SVN::remove_username($rooturl);
foreach my $d (@$linear_refs) {
my %parentshash;
read_commit_parents(\%parentshash, $d);
diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c
index 4c5b34e..6a3cc98 100644
--- a/list-objects-filter-options.c
+++ b/list-objects-filter-options.c
@@ -21,29 +21,36 @@
* subordinate commands when necessary. We also "intern" the arg for
* the convenience of the current command.
*/
-int parse_list_objects_filter(struct list_objects_filter_options *filter_options,
- const char *arg)
+static int gently_parse_list_objects_filter(
+ struct list_objects_filter_options *filter_options,
+ const char *arg,
+ struct strbuf *errbuf)
{
const char *v0;
- if (filter_options->choice)
- die(_("multiple object filter types cannot be combined"));
+ if (filter_options->choice) {
+ if (errbuf) {
+ strbuf_init(errbuf, 0);
+ strbuf_addstr(
+ errbuf,
+ _("multiple filter-specs cannot be combined"));
+ }
+ return 1;
+ }
filter_options->filter_spec = strdup(arg);
if (!strcmp(arg, "blob:none")) {
filter_options->choice = LOFC_BLOB_NONE;
return 0;
- }
- if (skip_prefix(arg, "blob:limit=", &v0)) {
- if (!git_parse_ulong(v0, &filter_options->blob_limit_value))
- die(_("invalid filter-spec expression '%s'"), arg);
- filter_options->choice = LOFC_BLOB_LIMIT;
- return 0;
- }
+ } else if (skip_prefix(arg, "blob:limit=", &v0)) {
+ if (git_parse_ulong(v0, &filter_options->blob_limit_value)) {
+ filter_options->choice = LOFC_BLOB_LIMIT;
+ return 0;
+ }
- if (skip_prefix(arg, "sparse:oid=", &v0)) {
+ } else if (skip_prefix(arg, "sparse:oid=", &v0)) {
struct object_context oc;
struct object_id sparse_oid;
@@ -57,15 +64,27 @@ int parse_list_objects_filter(struct list_objects_filter_options *filter_options
filter_options->sparse_oid_value = oiddup(&sparse_oid);
filter_options->choice = LOFC_SPARSE_OID;
return 0;
- }
- if (skip_prefix(arg, "sparse:path=", &v0)) {
+ } else if (skip_prefix(arg, "sparse:path=", &v0)) {
filter_options->choice = LOFC_SPARSE_PATH;
filter_options->sparse_path_value = strdup(v0);
return 0;
}
- die(_("invalid filter-spec expression '%s'"), arg);
+ if (errbuf) {
+ strbuf_init(errbuf, 0);
+ strbuf_addf(errbuf, "invalid filter-spec '%s'", arg);
+ }
+ memset(filter_options, 0, sizeof(*filter_options));
+ return 1;
+}
+
+int parse_list_objects_filter(struct list_objects_filter_options *filter_options,
+ const char *arg)
+{
+ struct strbuf buf = STRBUF_INIT;
+ if (gently_parse_list_objects_filter(filter_options, arg, &buf))
+ die("%s", buf.buf);
return 0;
}
@@ -75,7 +94,7 @@ int opt_parse_list_objects_filter(const struct option *opt,
struct list_objects_filter_options *filter_options = opt->value;
if (unset || !arg) {
- list_objects_filter_release(filter_options);
+ list_objects_filter_set_no_filter(filter_options);
return 0;
}
@@ -90,3 +109,44 @@ void list_objects_filter_release(
free(filter_options->sparse_path_value);
memset(filter_options, 0, sizeof(*filter_options));
}
+
+void partial_clone_register(
+ const char *remote,
+ const struct list_objects_filter_options *filter_options)
+{
+ /*
+ * Record the name of the partial clone remote in the
+ * config and in the global variable -- the latter is
+ * used throughout to indicate that partial clone is
+ * enabled and to expect missing objects.
+ */
+ if (repository_format_partial_clone &&
+ *repository_format_partial_clone &&
+ strcmp(remote, repository_format_partial_clone))
+ die(_("cannot change partial clone promisor remote"));
+
+ git_config_set("core.repositoryformatversion", "1");
+ git_config_set("extensions.partialclone", remote);
+
+ repository_format_partial_clone = xstrdup(remote);
+
+ /*
+ * Record the initial filter-spec in the config as
+ * the default for subsequent fetches from this remote.
+ */
+ core_partial_clone_filter_default =
+ xstrdup(filter_options->filter_spec);
+ git_config_set("core.partialclonefilter",
+ core_partial_clone_filter_default);
+}
+
+void partial_clone_get_default_filter_spec(
+ struct list_objects_filter_options *filter_options)
+{
+ /*
+ * Parse default value, but silently ignore it if it is invalid.
+ */
+ gently_parse_list_objects_filter(filter_options,
+ core_partial_clone_filter_default,
+ NULL);
+}
diff --git a/list-objects-filter-options.h b/list-objects-filter-options.h
index eea44a1..0000a61 100644
--- a/list-objects-filter-options.h
+++ b/list-objects-filter-options.h
@@ -31,6 +31,11 @@ struct list_objects_filter_options {
enum list_objects_filter_choice choice;
/*
+ * Choice is LOFC_DISABLED because "--no-filter" was requested.
+ */
+ unsigned int no_filter : 1;
+
+ /*
* Parsed values (fields) from within the filter-spec. These are
* choice-specific; not all values will be defined for any given
* choice.
@@ -58,4 +63,17 @@ int opt_parse_list_objects_filter(const struct option *opt,
void list_objects_filter_release(
struct list_objects_filter_options *filter_options);
+static inline void list_objects_filter_set_no_filter(
+ struct list_objects_filter_options *filter_options)
+{
+ list_objects_filter_release(filter_options);
+ filter_options->no_filter = 1;
+}
+
+void partial_clone_register(
+ const char *remote,
+ const struct list_objects_filter_options *filter_options);
+void partial_clone_get_default_filter_spec(
+ struct list_objects_filter_options *filter_options);
+
#endif /* LIST_OBJECTS_FILTER_OPTIONS_H */
diff --git a/list-objects.c b/list-objects.c
index 0966cdc..168bef6 100644
--- a/list-objects.c
+++ b/list-objects.c
@@ -9,6 +9,7 @@
#include "list-objects.h"
#include "list-objects-filter.h"
#include "list-objects-filter-options.h"
+#include "packfile.h"
static void process_blob(struct rev_info *revs,
struct blob *blob,
@@ -30,6 +31,20 @@ static void process_blob(struct rev_info *revs,
if (obj->flags & (UNINTERESTING | SEEN))
return;
+ /*
+ * Pre-filter known-missing objects when explicitly requested.
+ * Otherwise, a missing object error message may be reported
+ * later (depending on other filtering criteria).
+ *
+ * Note that this "--exclude-promisor-objects" pre-filtering
+ * may cause the actual filter to report an incomplete list
+ * of missing objects.
+ */
+ if (revs->exclude_promisor_objects &&
+ !has_object_file(&obj->oid) &&
+ is_promisor_object(&obj->oid))
+ return;
+
pathlen = path->len;
strbuf_addstr(path, name);
if (filter_fn)
@@ -91,6 +106,8 @@ static void process_tree(struct rev_info *revs,
all_entries_interesting: entry_not_interesting;
int baselen = base->len;
enum list_objects_filter_result r = LOFR_MARK_SEEN | LOFR_DO_SHOW;
+ int gently = revs->ignore_missing_links ||
+ revs->exclude_promisor_objects;
if (!revs->tree_objects)
return;
@@ -98,9 +115,19 @@ static void process_tree(struct rev_info *revs,
die("bad tree object");
if (obj->flags & (UNINTERESTING | SEEN))
return;
- if (parse_tree_gently(tree, revs->ignore_missing_links) < 0) {
+ if (parse_tree_gently(tree, gently) < 0) {
if (revs->ignore_missing_links)
return;
+
+ /*
+ * Pre-filter known-missing tree objects when explicitly
+ * requested. This may cause the actual filter to report
+ * an incomplete list of missing objects.
+ */
+ if (revs->exclude_promisor_objects &&
+ is_promisor_object(&obj->oid))
+ return;
+
die("bad tree object %s", oid_to_hex(&obj->oid));
}
diff --git a/merge-recursive.c b/merge-recursive.c
index 0fc580d..cc5fa0a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1026,10 +1026,19 @@ static int merge_file_1(struct merge_options *o,
&b->oid,
!o->call_depth);
} else if (S_ISLNK(a->mode)) {
- oidcpy(&result->oid, &a->oid);
-
- if (!oid_eq(&a->oid, &b->oid))
- result->clean = 0;
+ switch (o->recursive_variant) {
+ case MERGE_RECURSIVE_NORMAL:
+ oidcpy(&result->oid, &a->oid);
+ if (!oid_eq(&a->oid, &b->oid))
+ result->clean = 0;
+ break;
+ case MERGE_RECURSIVE_OURS:
+ oidcpy(&result->oid, &a->oid);
+ break;
+ case MERGE_RECURSIVE_THEIRS:
+ oidcpy(&result->oid, &b->oid);
+ break;
+ }
} else
die("BUG: unsupported object type in the tree");
}
diff --git a/mru.c b/mru.c
deleted file mode 100644
index 9dedae0..0000000
--- a/mru.c
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "cache.h"
-#include "mru.h"
-
-void mru_append(struct mru *mru, void *item)
-{
- struct mru_entry *cur = xmalloc(sizeof(*cur));
- cur->item = item;
- cur->prev = mru->tail;
- cur->next = NULL;
-
- if (mru->tail)
- mru->tail->next = cur;
- else
- mru->head = cur;
- mru->tail = cur;
-}
-
-void mru_mark(struct mru *mru, struct mru_entry *entry)
-{
- /* If we're already at the front of the list, nothing to do */
- if (mru->head == entry)
- return;
-
- /* Otherwise, remove us from our current slot... */
- if (entry->prev)
- entry->prev->next = entry->next;
- if (entry->next)
- entry->next->prev = entry->prev;
- else
- mru->tail = entry->prev;
-
- /* And insert us at the beginning. */
- entry->prev = NULL;
- entry->next = mru->head;
- if (mru->head)
- mru->head->prev = entry;
- mru->head = entry;
-}
-
-void mru_clear(struct mru *mru)
-{
- struct mru_entry *p = mru->head;
-
- while (p) {
- struct mru_entry *to_free = p;
- p = p->next;
- free(to_free);
- }
- mru->head = mru->tail = NULL;
-}
diff --git a/mru.h b/mru.h
deleted file mode 100644
index 42e4aea..0000000
--- a/mru.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef MRU_H
-#define MRU_H
-
-/**
- * A simple most-recently-used cache, backed by a doubly-linked list.
- *
- * Usage is roughly:
- *
- * // Create a list. Zero-initialization is required.
- * static struct mru cache;
- * mru_append(&cache, item);
- * ...
- *
- * // Iterate in MRU order.
- * struct mru_entry *p;
- * for (p = cache.head; p; p = p->next) {
- * if (matches(p->item))
- * break;
- * }
- *
- * // Mark an item as used, moving it to the front of the list.
- * mru_mark(&cache, p);
- *
- * // Reset the list to empty, cleaning up all resources.
- * mru_clear(&cache);
- *
- * Note that you SHOULD NOT call mru_mark() and then continue traversing the
- * list; it reorders the marked item to the front of the list, and therefore
- * you will begin traversing the whole list again.
- */
-
-struct mru_entry {
- void *item;
- struct mru_entry *prev, *next;
-};
-
-struct mru {
- struct mru_entry *head, *tail;
-};
-
-void mru_append(struct mru *mru, void *item);
-void mru_mark(struct mru *mru, struct mru_entry *entry);
-void mru_clear(struct mru *mru);
-
-#endif /* MRU_H */
diff --git a/object.c b/object.c
index b9a4a0e..9e6f9ff 100644
--- a/object.c
+++ b/object.c
@@ -252,7 +252,7 @@ struct object *parse_object(const struct object_id *oid)
if (obj && obj->parsed)
return obj;
- if ((obj && obj->type == OBJ_BLOB) ||
+ if ((obj && obj->type == OBJ_BLOB && has_object_file(oid)) ||
(!obj && has_object_file(oid) &&
sha1_object_info(oid->hash, NULL) == OBJ_BLOB)) {
if (check_sha1_signature(repl, NULL, 0, NULL) < 0) {
@@ -434,3 +434,14 @@ void clear_object_flags(unsigned flags)
obj->flags &= ~flags;
}
}
+
+void clear_commit_marks_all(unsigned int flags)
+{
+ int i;
+
+ for (i = 0; i < obj_hash_size; i++) {
+ struct object *obj = obj_hash[i];
+ if (obj && obj->type == OBJ_COMMIT)
+ obj->flags &= ~flags;
+ }
+}
diff --git a/object.h b/object.h
index f34461d..87563d9 100644
--- a/object.h
+++ b/object.h
@@ -149,4 +149,9 @@ void object_array_clear(struct object_array *array);
void clear_object_flags(unsigned flags);
+/*
+ * Clear the specified object flags from all in-core commit objects.
+ */
+extern void clear_commit_marks_all(unsigned int flags);
+
#endif /* OBJECT_H */
diff --git a/oidmap.c b/oidmap.c
index 6db4fff..d9fb19b 100644
--- a/oidmap.c
+++ b/oidmap.c
@@ -33,12 +33,19 @@ void oidmap_free(struct oidmap *map, int free_entries)
void *oidmap_get(const struct oidmap *map, const struct object_id *key)
{
+ if (!map->map.cmpfn)
+ return NULL;
+
return hashmap_get_from_hash(&map->map, hash(key), key);
}
void *oidmap_remove(struct oidmap *map, const struct object_id *key)
{
struct hashmap_entry entry;
+
+ if (!map->map.cmpfn)
+ oidmap_init(map, 0);
+
hashmap_entry_init(&entry, hash(key));
return hashmap_remove(&map->map, &entry, key);
}
@@ -46,6 +53,10 @@ void *oidmap_remove(struct oidmap *map, const struct object_id *key)
void *oidmap_put(struct oidmap *map, void *entry)
{
struct oidmap_entry *to_put = entry;
+
+ if (!map->map.cmpfn)
+ oidmap_init(map, 0);
+
hashmap_entry_init(&to_put->internal_entry, hash(&to_put->oid));
return hashmap_put(&map->map, to_put);
}
diff --git a/packfile.c b/packfile.c
index 4a5fe7a..2d5774d 100644
--- a/packfile.c
+++ b/packfile.c
@@ -1,5 +1,5 @@
#include "cache.h"
-#include "mru.h"
+#include "list.h"
#include "pack.h"
#include "dir.h"
#include "mergesort.h"
@@ -8,6 +8,11 @@
#include "list.h"
#include "streaming.h"
#include "sha1-lookup.h"
+#include "commit.h"
+#include "object.h"
+#include "tag.h"
+#include "tree-walk.h"
+#include "tree.h"
char *odb_pack_name(struct strbuf *buf,
const unsigned char *sha1,
@@ -40,7 +45,7 @@ static unsigned int pack_max_fds;
static size_t peak_pack_mapped;
static size_t pack_mapped;
struct packed_git *packed_git;
-struct mru packed_git_mru;
+LIST_HEAD(packed_git_mru);
#define SZ_FMT PRIuMAX
static inline uintmax_t sz_fmt(size_t s) { return s; }
@@ -643,10 +648,10 @@ struct packed_git *add_packed_git(const char *path, size_t path_len, int local)
return NULL;
/*
- * ".pack" is long enough to hold any suffix we're adding (and
+ * ".promisor" is long enough to hold any suffix we're adding (and
* the use xsnprintf double-checks that)
*/
- alloc = st_add3(path_len, strlen(".pack"), 1);
+ alloc = st_add3(path_len, strlen(".promisor"), 1);
p = alloc_packed_git(alloc);
memcpy(p->pack_name, path, path_len);
@@ -654,6 +659,10 @@ struct packed_git *add_packed_git(const char *path, size_t path_len, int local)
if (!access(p->pack_name, F_OK))
p->pack_keep = 1;
+ xsnprintf(p->pack_name + path_len, alloc - path_len, ".promisor");
+ if (!access(p->pack_name, F_OK))
+ p->pack_promisor = 1;
+
xsnprintf(p->pack_name + path_len, alloc - path_len, ".pack");
if (stat(p->pack_name, &st) || !S_ISREG(st.st_mode)) {
free(p);
@@ -781,7 +790,8 @@ static void prepare_packed_git_one(char *objdir, int local)
if (ends_with(de->d_name, ".idx") ||
ends_with(de->d_name, ".pack") ||
ends_with(de->d_name, ".bitmap") ||
- ends_with(de->d_name, ".keep"))
+ ends_with(de->d_name, ".keep") ||
+ ends_with(de->d_name, ".promisor"))
string_list_append(&garbage, path.buf);
else
report_garbage(PACKDIR_FILE_GARBAGE, path.buf);
@@ -866,9 +876,10 @@ static void prepare_packed_git_mru(void)
{
struct packed_git *p;
- mru_clear(&packed_git_mru);
+ INIT_LIST_HEAD(&packed_git_mru);
+
for (p = packed_git; p; p = p->next)
- mru_append(&packed_git_mru, p);
+ list_add_tail(&p->mru, &packed_git_mru);
}
static int prepare_packed_git_run_once = 0;
@@ -1831,15 +1842,16 @@ static int fill_pack_entry(const unsigned char *sha1,
*/
int find_pack_entry(const unsigned char *sha1, struct pack_entry *e)
{
- struct mru_entry *p;
+ struct list_head *pos;
prepare_packed_git();
if (!packed_git)
return 0;
- for (p = packed_git_mru.head; p; p = p->next) {
- if (fill_pack_entry(sha1, e, p->item)) {
- mru_mark(&packed_git_mru, p);
+ list_for_each(pos, &packed_git_mru) {
+ struct packed_git *p = list_entry(pos, struct packed_git, mru);
+ if (fill_pack_entry(sha1, e, p)) {
+ list_move(&p->mru, &packed_git_mru);
return 1;
}
}
@@ -1889,6 +1901,9 @@ int for_each_packed_object(each_packed_object_fn cb, void *data, unsigned flags)
for (p = packed_git; p; p = p->next) {
if ((flags & FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local)
continue;
+ if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) &&
+ !p->pack_promisor)
+ continue;
if (open_pack_index(p)) {
pack_errors = 1;
continue;
@@ -1899,3 +1914,61 @@ int for_each_packed_object(each_packed_object_fn cb, void *data, unsigned flags)
}
return r ? r : pack_errors;
}
+
+static int add_promisor_object(const struct object_id *oid,
+ struct packed_git *pack,
+ uint32_t pos,
+ void *set_)
+{
+ struct oidset *set = set_;
+ struct object *obj = parse_object(oid);
+ if (!obj)
+ return 1;
+
+ oidset_insert(set, oid);
+
+ /*
+ * If this is a tree, commit, or tag, the objects it refers
+ * to are also promisor objects. (Blobs refer to no objects.)
+ */
+ if (obj->type == OBJ_TREE) {
+ struct tree *tree = (struct tree *)obj;
+ struct tree_desc desc;
+ struct name_entry entry;
+ if (init_tree_desc_gently(&desc, tree->buffer, tree->size))
+ /*
+ * Error messages are given when packs are
+ * verified, so do not print any here.
+ */
+ return 0;
+ while (tree_entry_gently(&desc, &entry))
+ oidset_insert(set, entry.oid);
+ } else if (obj->type == OBJ_COMMIT) {
+ struct commit *commit = (struct commit *) obj;
+ struct commit_list *parents = commit->parents;
+
+ oidset_insert(set, &commit->tree->object.oid);
+ for (; parents; parents = parents->next)
+ oidset_insert(set, &parents->item->object.oid);
+ } else if (obj->type == OBJ_TAG) {
+ struct tag *tag = (struct tag *) obj;
+ oidset_insert(set, &tag->tagged->oid);
+ }
+ return 0;
+}
+
+int is_promisor_object(const struct object_id *oid)
+{
+ static struct oidset promisor_objects;
+ static int promisor_objects_prepared;
+
+ if (!promisor_objects_prepared) {
+ if (repository_format_partial_clone) {
+ for_each_packed_object(add_promisor_object,
+ &promisor_objects,
+ FOR_EACH_OBJECT_PROMISOR_ONLY);
+ }
+ promisor_objects_prepared = 1;
+ }
+ return oidset_contains(&promisor_objects, oid);
+}
diff --git a/packfile.h b/packfile.h
index 0cdeb54..a7fca59 100644
--- a/packfile.h
+++ b/packfile.h
@@ -1,6 +1,8 @@
#ifndef PACKFILE_H
#define PACKFILE_H
+#include "oidset.h"
+
/*
* Generate the filename to be used for a pack file with checksum "sha1" and
* extension "ext". The result is written into the strbuf "buf", overwriting
@@ -125,6 +127,11 @@ extern int has_sha1_pack(const unsigned char *sha1);
extern int has_pack_index(const unsigned char *sha1);
/*
+ * Only iterate over packs obtained from the promisor remote.
+ */
+#define FOR_EACH_OBJECT_PROMISOR_ONLY 2
+
+/*
* Iterate over packed objects in both the local
* repository and any alternates repositories (unless the
* FOR_EACH_OBJECT_LOCAL_ONLY flag, defined in cache.h, is set).
@@ -135,4 +142,10 @@ typedef int each_packed_object_fn(const struct object_id *oid,
void *data);
extern int for_each_packed_object(each_packed_object_fn, void *, unsigned flags);
+/*
+ * Return 1 if an object in a promisor packfile is or refers to the given
+ * object, 0 otherwise.
+ */
+extern int is_promisor_object(const struct object_id *oid);
+
#endif
diff --git a/perl/.gitignore b/perl/.gitignore
index 0f1fc27..84c048a 100644
--- a/perl/.gitignore
+++ b/perl/.gitignore
@@ -1,8 +1 @@
-perl.mak
-perl.mak.old
-MYMETA.json
-MYMETA.yml
-blib
-blibdirs
-pm_to_blib
-PM.stamp
+/build/
diff --git a/perl/Git.pm b/perl/Git.pm
index ffa09ac..9d60d79 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -101,7 +101,7 @@ increase notwithstanding).
use Carp qw(carp croak); # but croak is bad - throw instead
-use Error qw(:try);
+use Git::Error qw(:try);
use Cwd qw(abs_path cwd);
use IPC::Open2 qw(open2);
use Fcntl qw(SEEK_SET SEEK_CUR);
@@ -880,77 +880,6 @@ sub ident_person {
return "$ident[0] <$ident[1]>";
}
-=item parse_mailboxes
-
-Return an array of mailboxes extracted from a string.
-
-=cut
-
-# Very close to Mail::Address's parser, but we still have minor
-# differences in some cases (see t9000 for examples).
-sub parse_mailboxes {
- my $re_comment = qr/\((?:[^)]*)\)/;
- my $re_quote = qr/"(?:[^\"\\]|\\.)*"/;
- my $re_word = qr/(?:[^]["\s()<>:;@\\,.]|\\.)+/;
-
- # divide the string in tokens of the above form
- my $re_token = qr/(?:$re_quote|$re_word|$re_comment|\S)/;
- my @tokens = map { $_ =~ /\s*($re_token)\s*/g } @_;
- my $end_of_addr_seen = 0;
-
- # add a delimiter to simplify treatment for the last mailbox
- push @tokens, ",";
-
- my (@addr_list, @phrase, @address, @comment, @buffer) = ();
- foreach my $token (@tokens) {
- if ($token =~ /^[,;]$/) {
- # if buffer still contains undeterminated strings
- # append it at the end of @address or @phrase
- if ($end_of_addr_seen) {
- push @phrase, @buffer;
- } else {
- push @address, @buffer;
- }
-
- my $str_phrase = join ' ', @phrase;
- my $str_address = join '', @address;
- my $str_comment = join ' ', @comment;
-
- # quote are necessary if phrase contains
- # special characters
- if ($str_phrase =~ /[][()<>:;@\\,.\000-\037\177]/) {
- $str_phrase =~ s/(^|[^\\])"/$1/g;
- $str_phrase = qq["$str_phrase"];
- }
-
- # add "<>" around the address if necessary
- if ($str_address ne "" && $str_phrase ne "") {
- $str_address = qq[<$str_address>];
- }
-
- my $str_mailbox = "$str_phrase $str_address $str_comment";
- $str_mailbox =~ s/^\s*|\s*$//g;
- push @addr_list, $str_mailbox if ($str_mailbox);
-
- @phrase = @address = @comment = @buffer = ();
- $end_of_addr_seen = 0;
- } elsif ($token =~ /^\(/) {
- push @comment, $token;
- } elsif ($token eq "<") {
- push @phrase, (splice @address), (splice @buffer);
- } elsif ($token eq ">") {
- $end_of_addr_seen = 1;
- push @address, (splice @buffer);
- } elsif ($token eq "@" && !$end_of_addr_seen) {
- push @address, (splice @buffer), "@";
- } else {
- push @buffer, $token;
- }
- }
-
- return @addr_list;
-}
-
=item hash_object ( TYPE, FILENAME )
Compute the SHA1 object id of the given C<FILENAME> considering it is
diff --git a/perl/Git/Error.pm b/perl/Git/Error.pm
new file mode 100644
index 0000000..09bbc97
--- /dev/null
+++ b/perl/Git/Error.pm
@@ -0,0 +1,46 @@
+package Git::Error;
+use 5.008;
+use strict;
+use warnings;
+
+=head1 NAME
+
+Git::Error - Wrapper for the L<Error> module, in case it's not installed
+
+=head1 DESCRIPTION
+
+Wraps the import function for the L<Error> module.
+
+This module is only intended to be used for code shipping in the
+C<git.git> repository. Use it for anything else at your peril!
+
+=cut
+
+sub import {
+ shift;
+ my $caller = caller;
+
+ eval {
+ require Error;
+ 1;
+ } or do {
+ my $error = $@ || "Zombie Error";
+
+ my $Git_Error_pm_path = $INC{"Git/Error.pm"} || die "BUG: Should have our own path from %INC!";
+
+ require File::Basename;
+ my $Git_Error_pm_root = File::Basename::dirname($Git_Error_pm_path) || die "BUG: Can't figure out lib/Git dirname from '$Git_Error_pm_path'!";
+
+ require File::Spec;
+ my $Git_pm_FromCPAN_root = File::Spec->catdir($Git_Error_pm_root, 'FromCPAN');
+ die "BUG: '$Git_pm_FromCPAN_root' should be a directory!" unless -d $Git_pm_FromCPAN_root;
+
+ local @INC = ($Git_pm_FromCPAN_root, @INC);
+ require Error;
+ };
+
+ unshift @_, $caller;
+ goto &Error::import;
+}
+
+1;
diff --git a/perl/private-Error.pm b/perl/Git/FromCPAN/Error.pm
index 6098135..6098135 100644
--- a/perl/private-Error.pm
+++ b/perl/Git/FromCPAN/Error.pm
diff --git a/perl/Git/FromCPAN/Mail/Address.pm b/perl/Git/FromCPAN/Mail/Address.pm
new file mode 100644
index 0000000..13b2ff7
--- /dev/null
+++ b/perl/Git/FromCPAN/Mail/Address.pm
@@ -0,0 +1,276 @@
+# Copyrights 1995-2017 by [Mark Overmeer <perl@overmeer.net>].
+# For other contributors see ChangeLog.
+# See the manual pages for details on the licensing terms.
+# Pod stripped from pm file by OODoc 2.02.
+package Mail::Address;
+use vars '$VERSION';
+$VERSION = '2.19';
+
+use strict;
+
+use Carp;
+
+# use locale; removed in version 1.78, because it causes taint problems
+
+sub Version { our $VERSION }
+
+
+
+# given a comment, attempt to extract a person's name
+sub _extract_name
+{ # This function can be called as method as well
+ my $self = @_ && ref $_[0] ? shift : undef;
+
+ local $_ = shift
+ or return '';
+
+ # Using encodings, too hard. See Mail::Message::Field::Full.
+ return '' if m/\=\?.*?\?\=/;
+
+ # trim whitespace
+ s/^\s+//;
+ s/\s+$//;
+ s/\s+/ /;
+
+ # Disregard numeric names (e.g. 123456.1234@compuserve.com)
+ return "" if /^[\d ]+$/;
+
+ s/^\((.*)\)$/$1/; # remove outermost parenthesis
+ s/^"(.*)"$/$1/; # remove outer quotation marks
+ s/\(.*?\)//g; # remove minimal embedded comments
+ s/\\//g; # remove all escapes
+ s/^"(.*)"$/$1/; # remove internal quotation marks
+ s/^([^\s]+) ?, ?(.*)$/$2 $1/; # reverse "Last, First M." if applicable
+ s/,.*//;
+
+ # Change casing only when the name contains only upper or only
+ # lower cased characters.
+ unless( m/[A-Z]/ && m/[a-z]/ )
+ { # Set the case of the name to first char upper rest lower
+ s/\b(\w+)/\L\u$1/igo; # Upcase first letter on name
+ s/\bMc(\w)/Mc\u$1/igo; # Scottish names such as 'McLeod'
+ s/\bo'(\w)/O'\u$1/igo; # Irish names such as 'O'Malley, O'Reilly'
+ s/\b(x*(ix)?v*(iv)?i*)\b/\U$1/igo; # Roman numerals, eg 'Level III Support'
+ }
+
+ # some cleanup
+ s/\[[^\]]*\]//g;
+ s/(^[\s'"]+|[\s'"]+$)//g;
+ s/\s{2,}/ /g;
+
+ $_;
+}
+
+sub _tokenise
+{ local $_ = join ',', @_;
+ my (@words,$snippet,$field);
+
+ s/\A\s+//;
+ s/[\r\n]+/ /g;
+
+ while ($_ ne '')
+ { $field = '';
+ if(s/^\s*\(/(/ ) # (...)
+ { my $depth = 0;
+
+ PAREN: while(s/^(\(([^\(\)\\]|\\.)*)//)
+ { $field .= $1;
+ $depth++;
+ while(s/^(([^\(\)\\]|\\.)*\)\s*)//)
+ { $field .= $1;
+ last PAREN unless --$depth;
+ $field .= $1 if s/^(([^\(\)\\]|\\.)+)//;
+ }
+ }
+
+ carp "Unmatched () '$field' '$_'"
+ if $depth;
+
+ $field =~ s/\s+\Z//;
+ push @words, $field;
+
+ next;
+ }
+
+ if( s/^("(?:[^"\\]+|\\.)*")\s*// # "..."
+ || s/^(\[(?:[^\]\\]+|\\.)*\])\s*// # [...]
+ || s/^([^\s()<>\@,;:\\".[\]]+)\s*//
+ || s/^([()<>\@,;:\\".[\]])\s*//
+ )
+ { push @words, $1;
+ next;
+ }
+
+ croak "Unrecognised line: $_";
+ }
+
+ push @words, ",";
+ \@words;
+}
+
+sub _find_next
+{ my ($idx, $tokens, $len) = @_;
+
+ while($idx < $len)
+ { my $c = $tokens->[$idx];
+ return $c if $c eq ',' || $c eq ';' || $c eq '<';
+ $idx++;
+ }
+
+ "";
+}
+
+sub _complete
+{ my ($class, $phrase, $address, $comment) = @_;
+
+ @$phrase || @$comment || @$address
+ or return undef;
+
+ my $o = $class->new(join(" ",@$phrase), join("",@$address), join(" ",@$comment));
+ @$phrase = @$address = @$comment = ();
+ $o;
+}
+
+#------------
+
+sub new(@)
+{ my $class = shift;
+ bless [@_], $class;
+}
+
+
+sub parse(@)
+{ my $class = shift;
+ my @line = grep {defined} @_;
+ my $line = join '', @line;
+
+ my (@phrase, @comment, @address, @objs);
+ my ($depth, $idx) = (0, 0);
+
+ my $tokens = _tokenise @line;
+ my $len = @$tokens;
+ my $next = _find_next $idx, $tokens, $len;
+
+ local $_;
+ for(my $idx = 0; $idx < $len; $idx++)
+ { $_ = $tokens->[$idx];
+
+ if(substr($_,0,1) eq '(') { push @comment, $_ }
+ elsif($_ eq '<') { $depth++ }
+ elsif($_ eq '>') { $depth-- if $depth }
+ elsif($_ eq ',' || $_ eq ';')
+ { warn "Unmatched '<>' in $line" if $depth;
+ my $o = $class->_complete(\@phrase, \@address, \@comment);
+ push @objs, $o if defined $o;
+ $depth = 0;
+ $next = _find_next $idx+1, $tokens, $len;
+ }
+ elsif($depth) { push @address, $_ }
+ elsif($next eq '<') { push @phrase, $_ }
+ elsif( /^[.\@:;]$/ || !@address || $address[-1] =~ /^[.\@:;]$/ )
+ { push @address, $_ }
+ else
+ { warn "Unmatched '<>' in $line" if $depth;
+ my $o = $class->_complete(\@phrase, \@address, \@comment);
+ push @objs, $o if defined $o;
+ $depth = 0;
+ push @address, $_;
+ }
+ }
+ @objs;
+}
+
+#------------
+
+sub phrase { shift->set_or_get(0, @_) }
+sub address { shift->set_or_get(1, @_) }
+sub comment { shift->set_or_get(2, @_) }
+
+sub set_or_get($)
+{ my ($self, $i) = (shift, shift);
+ @_ or return $self->[$i];
+
+ my $val = $self->[$i];
+ $self->[$i] = shift if @_;
+ $val;
+}
+
+
+my $atext = '[\-\w !#$%&\'*+/=?^`{|}~]';
+sub format
+{ my @addrs;
+
+ foreach (@_)
+ { my ($phrase, $email, $comment) = @$_;
+ my @addr;
+
+ if(defined $phrase && length $phrase)
+ { push @addr
+ , $phrase =~ /^(?:\s*$atext\s*)+$/o ? $phrase
+ : $phrase =~ /(?<!\\)"/ ? $phrase
+ : qq("$phrase");
+
+ push @addr, "<$email>"
+ if defined $email && length $email;
+ }
+ elsif(defined $email && length $email)
+ { push @addr, $email;
+ }
+
+ if(defined $comment && $comment =~ /\S/)
+ { $comment =~ s/^\s*\(?/(/;
+ $comment =~ s/\)?\s*$/)/;
+ }
+
+ push @addr, $comment
+ if defined $comment && length $comment;
+
+ push @addrs, join(" ", @addr)
+ if @addr;
+ }
+
+ join ", ", @addrs;
+}
+
+#------------
+
+sub name
+{ my $self = shift;
+ my $phrase = $self->phrase;
+ my $addr = $self->address;
+
+ $phrase = $self->comment
+ unless defined $phrase && length $phrase;
+
+ my $name = $self->_extract_name($phrase);
+
+ # first.last@domain address
+ if($name eq '' && $addr =~ /([^\%\.\@_]+([\._][^\%\.\@_]+)+)[\@\%]/)
+ { ($name = $1) =~ s/[\._]+/ /g;
+ $name = _extract_name $name;
+ }
+
+ if($name eq '' && $addr =~ m#/g=#i) # X400 style address
+ { my ($f) = $addr =~ m#g=([^/]*)#i;
+ my ($l) = $addr =~ m#s=([^/]*)#i;
+ $name = _extract_name "$f $l";
+ }
+
+ length $name ? $name : undef;
+}
+
+
+sub host
+{ my $addr = shift->address || '';
+ my $i = rindex $addr, '@';
+ $i >= 0 ? substr($addr, $i+1) : undef;
+}
+
+
+sub user
+{ my $addr = shift->address || '';
+ my $i = rindex $addr, '@';
+ $i >= 0 ? substr($addr,0,$i) : $addr;
+}
+
+1;
diff --git a/perl/Git/I18N.pm b/perl/Git/I18N.pm
index 836a5c2..dba96ff 100644
--- a/perl/Git/I18N.pm
+++ b/perl/Git/I18N.pm
@@ -18,7 +18,7 @@ our @EXPORT_OK = @EXPORT;
sub __bootstrap_locale_messages {
our $TEXTDOMAIN = 'git';
- our $TEXTDOMAINDIR = $ENV{GIT_TEXTDOMAINDIR} || '++LOCALEDIR++';
+ our $TEXTDOMAINDIR = $ENV{GIT_TEXTDOMAINDIR} || '@@LOCALEDIR@@';
require POSIX;
POSIX->import(qw(setlocale));
diff --git a/perl/Git/Mail/Address.pm b/perl/Git/Mail/Address.pm
new file mode 100755
index 0000000..2ce3e84
--- /dev/null
+++ b/perl/Git/Mail/Address.pm
@@ -0,0 +1,24 @@
+package Git::Mail::Address;
+use 5.008;
+use strict;
+use warnings;
+
+=head1 NAME
+
+Git::Mail::Address - Wrapper for the L<Mail::Address> module, in case it's not installed
+
+=head1 DESCRIPTION
+
+This module is only intended to be used for code shipping in the
+C<git.git> repository. Use it for anything else at your peril!
+
+=cut
+
+eval {
+ require Mail::Address;
+ 1;
+} or do {
+ require Git::FromCPAN::Mail::Address;
+};
+
+1;
diff --git a/perl/Makefile b/perl/Makefile
deleted file mode 100644
index f657de2..0000000
--- a/perl/Makefile
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# Makefile for perl support modules and routine
-#
-makfile:=perl.mak
-modules =
-
-PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
-prefix_SQ = $(subst ','\'',$(prefix))
-localedir_SQ = $(subst ','\'',$(localedir))
-
-ifndef V
- QUIET = @
-endif
-
-all install instlibdir: $(makfile)
- $(QUIET)$(MAKE) -f $(makfile) $@
-
-clean:
- $(QUIET)test -f $(makfile) && $(MAKE) -f $(makfile) $@ || exit 0
- $(RM) ppport.h
- $(RM) $(makfile)
- $(RM) $(makfile).old
- $(RM) PM.stamp
-
-$(makfile): PM.stamp
-
-ifdef NO_PERL_MAKEMAKER
-instdir_SQ = $(subst ','\'',$(prefix)/lib)
-
-modules += Git
-modules += Git/I18N
-modules += Git/IndexInfo
-modules += Git/Packet
-modules += Git/SVN
-modules += Git/SVN/Memoize/YAML
-modules += Git/SVN/Fetcher
-modules += Git/SVN/Editor
-modules += Git/SVN/GlobSpec
-modules += Git/SVN/Log
-modules += Git/SVN/Migration
-modules += Git/SVN/Prompt
-modules += Git/SVN/Ra
-modules += Git/SVN/Utils
-
-$(makfile): ../GIT-CFLAGS Makefile
- echo all: private-Error.pm Git.pm Git/I18N.pm > $@
- set -e; \
- for i in $(modules); \
- do \
- if test $$i = $${i%/*}; \
- then \
- subdir=; \
- else \
- subdir=/$${i%/*}; \
- fi; \
- echo ' $(RM) blib/lib/'$$i'.pm' >> $@; \
- echo ' mkdir -p blib/lib'$$subdir >> $@; \
- echo ' cp '$$i'.pm blib/lib/'$$i'.pm' >> $@; \
- done
- echo ' $(RM) blib/lib/Error.pm' >> $@
- '$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
- echo ' cp private-Error.pm blib/lib/Error.pm' >> $@
- echo install: >> $@
- set -e; \
- for i in $(modules); \
- do \
- if test $$i = $${i%/*}; \
- then \
- subdir=; \
- else \
- subdir=/$${i%/*}; \
- fi; \
- echo ' $(RM) "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
- echo ' mkdir -p "$$(DESTDIR)$(instdir_SQ)'$$subdir'"' >> $@; \
- echo ' cp '$$i'.pm "$$(DESTDIR)$(instdir_SQ)/'$$i'.pm"' >> $@; \
- done
- echo ' $(RM) "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
- '$(PERL_PATH_SQ)' -MError -e 'exit($$Error::VERSION < 0.15009)' || \
- echo ' cp private-Error.pm "$$(DESTDIR)$(instdir_SQ)/Error.pm"' >> $@
- echo instlibdir: >> $@
- echo ' echo $(instdir_SQ)' >> $@
-else
-$(makfile): Makefile.PL ../GIT-CFLAGS
- $(PERL_PATH) $< PREFIX='$(prefix_SQ)' INSTALL_BASE='' --localedir='$(localedir_SQ)'
-endif
-
-# this is just added comfort for calling make directly in perl dir
-# (even though GIT-CFLAGS aren't used yet. If ever)
-../GIT-CFLAGS:
- $(MAKE) -C .. GIT-CFLAGS
diff --git a/perl/Makefile.PL b/perl/Makefile.PL
deleted file mode 100644
index 3f29ba9..0000000
--- a/perl/Makefile.PL
+++ /dev/null
@@ -1,62 +0,0 @@
-use strict;
-use warnings;
-use ExtUtils::MakeMaker;
-use Getopt::Long;
-use File::Find;
-
-# Don't forget to update the perl/Makefile, too.
-# Don't forget to test with NO_PERL_MAKEMAKER=YesPlease
-
-# Sanity: die at first unknown option
-Getopt::Long::Configure qw/ pass_through /;
-
-my $localedir = '';
-GetOptions("localedir=s" => \$localedir);
-
-sub MY::postamble {
- return <<'MAKE_FRAG';
-instlibdir:
- @echo '$(INSTALLSITELIB)'
-
-ifneq (,$(DESTDIR))
-ifeq (0,$(shell expr '$(MM_VERSION)' '>' 6.10))
-$(error ExtUtils::MakeMaker version "$(MM_VERSION)" is older than 6.11 and so \
- is likely incompatible with the DESTDIR mechanism. Try setting \
- NO_PERL_MAKEMAKER=1 instead)
-endif
-endif
-
-MAKE_FRAG
-}
-
-# Find all the .pm files in "Git/" and Git.pm
-my %pm;
-find sub {
- return unless /\.pm$/;
-
- # sometimes File::Find prepends a ./ Strip it.
- my $pm_path = $File::Find::name;
- $pm_path =~ s{^\./}{};
-
- $pm{$pm_path} = '$(INST_LIBDIR)/'.$pm_path;
-}, "Git", "Git.pm";
-
-
-# We come with our own bundled Error.pm. It's not in the set of default
-# Perl modules so install it if it's not available on the system yet.
-if ( !eval { require Error } || $Error::VERSION < 0.15009) {
- $pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm';
-}
-
-# redirect stdout, otherwise the message "Writing perl.mak for Git"
-# disrupts the output for the target 'instlibdir'
-open STDOUT, ">&STDERR";
-
-WriteMakefile(
- NAME => 'Git',
- VERSION_FROM => 'Git.pm',
- PM => \%pm,
- PM_FILTER => qq[\$(PERL) -pe "s<\\Q++LOCALEDIR++\\E><$localedir>"],
- MAKEFILE => 'perl.mak',
- INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3'
-);
diff --git a/po/TEAMS b/po/TEAMS
index cc5b235..065771c 100644
--- a/po/TEAMS
+++ b/po/TEAMS
@@ -38,8 +38,10 @@ Leader: Marco Paolone <marcopaolone AT gmail.com>
Members: Stefano Lattarini <stefano.lattarini AT gmail.com>
Language: ko (Korean)
-Repository: https://github.com/changwoo/git-l10n-ko/
+Repository: https://github.com/git-l10n-ko/git-l10n-ko/
Leader: Changwoo Ryu <cwryu@debian.org>
+Members: Gwan-gyeong Mun <elongbug@gmail.com>
+ Sihyeon Jang <uneedsihyeon@gmail.com>
Language: pt_PT (Portuguese - Portugal)
Repository: https://github.com/vascool/git-po-pt/
@@ -65,3 +67,4 @@ Repository: https://github.com/jiangxin/git/
Leader: Jiang Xin <worldhello.net AT gmail.com>
Members: Ray Chen <oldsharp AT gmail.com>
依云 <lilydjwg AT gmail.com>
+ Fangyi Zhou <fangyi.zhou AT yuriko.moe>
diff --git a/po/bg.po b/po/bg.po
index 45bf4cc..a37d5df 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,7 +1,7 @@
# Bulgarian translation of git po-file.
-# Copyright (C) 2014, 2015, 2016, 2017 Alexander Shopov <ash@kambanaria.org>.
+# Copyright (C) 2014, 2015, 2016, 2017, 2018 Alexander Shopov <ash@kambanaria.org>.
# This file is distributed under the same license as the git package.
-# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2016, 2017.
+# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2016, 2017, 2018.
#
# ========================
# DICTIONARY TO MERGE IN GIT GUI
@@ -78,12 +78,16 @@
# hunk парче
# binary patch двоична кръпка
# reverse-apply прилагам в обратна посока
-# todo file команден файл
+# todo file файл с команди
# alternate алтернативен източник
# superproject обхващащ проект
# split index разделяне на индекса
# truncate отрязвам
# format string форматиращ низ
+# hook кука
+# ignored (file) игнориран, понякога - пропуснат
+# manual, man page ръководство
+# guide въведение
# ------------------------
# „$var“ - може да не сработва за shell има gettext и eval_gettext - проверка - намират се лесно по „$
# ------------------------
@@ -96,8 +100,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git master\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2017-10-08 09:48+0800\n"
-"PO-Revision-Date: 2017-10-14 11:52+0200\n"
+"POT-Creation-Date: 2018-01-07 07:50+0800\n"
+"PO-Revision-Date: 2018-01-11 22:01+0100\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
@@ -106,37 +110,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: advice.c:58
+#: advice.c:62
#, c-format
msgid "hint: %.*s\n"
msgstr "Подсказка: %.*s\n"
-#: advice.c:86
+#: advice.c:90
msgid "Cherry-picking is not possible because you have unmerged files."
msgstr "Отбирането на подавания е блокирано от неслети файлове."
-#: advice.c:88
+#: advice.c:92
msgid "Committing is not possible because you have unmerged files."
msgstr "Подаването е блокирано от неслети файлове."
-#: advice.c:90
+#: advice.c:94
msgid "Merging is not possible because you have unmerged files."
msgstr "Сливането е блокирано от неслети файлове."
-#: advice.c:92
+#: advice.c:96
msgid "Pulling is not possible because you have unmerged files."
msgstr "Издърпването е блокирано от неслети файлове."
-#: advice.c:94
+#: advice.c:98
msgid "Reverting is not possible because you have unmerged files."
msgstr "Отмяната е блокирана от неслети файлове."
-#: advice.c:96
+#: advice.c:100
#, c-format
msgid "It is not possible to %s because you have unmerged files."
msgstr "Действието „%s“ е блокирано от неслети файлове."
-#: advice.c:104
+#: advice.c:108
msgid ""
"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
"as appropriate to mark resolution and make a commit."
@@ -144,23 +148,23 @@ msgstr ""
"Редактирайте ги в работното дърво, и тогава ползвайте „git add/rm ФАЙЛ“,\n"
"за да отбележите коригирането им. След това извършете подаването."
-#: advice.c:112
+#: advice.c:116
msgid "Exiting because of an unresolved conflict."
msgstr "Изход от програмата заради некоригиран конфликт."
-#: advice.c:117 builtin/merge.c:1211
+#: advice.c:121 builtin/merge.c:1213
msgid "You have not concluded your merge (MERGE_HEAD exists)."
msgstr "Не сте завършили сливане. (Указателят „MERGE_HEAD“ съществува)."
-#: advice.c:119
+#: advice.c:123
msgid "Please, commit your changes before merging."
msgstr "Промените трябва да се подадат преди сливане."
-#: advice.c:120
+#: advice.c:124
msgid "Exiting because of unfinished merge."
msgstr "Изход от програмата заради незавършено сливане."
-#: advice.c:126
+#: advice.c:130
#, c-format
msgid ""
"Note: checking out '%s'.\n"
@@ -184,7 +188,7 @@ msgstr ""
"\n"
"Ако искате да създадете нов клон, за да запазите подаванията си, можете да\n"
"направите това като зададете име на клон към опцията „-b“ на командата\n"
-"„commit“. Например:\n"
+"„commit“. Например:\n"
"\n"
" git checkout -b ИМЕ_НА_НОВ_КЛОН\n"
"\n"
@@ -199,90 +203,90 @@ msgstr "непозната опция за знаците за интервал
msgid "unrecognized whitespace ignore option '%s'"
msgstr "непозната опция за игнориране на знаците за интервали „%s“"
-#: apply.c:125
+#: apply.c:122
msgid "--reject and --3way cannot be used together."
msgstr "опциите „--reject“ и „--3way“ са несъвместими"
-#: apply.c:127
+#: apply.c:124
msgid "--cached and --3way cannot be used together."
msgstr "опциите „--cached“ и „--3way“ са несъвместими"
-#: apply.c:130
+#: apply.c:127
msgid "--3way outside a repository"
msgstr "като „--3way“, но извън хранилище"
-#: apply.c:141
+#: apply.c:138
msgid "--index outside a repository"
msgstr "като „--index“, но извън хранилище"
-#: apply.c:144
+#: apply.c:141
msgid "--cached outside a repository"
msgstr "като „--cached“, но извън хранилище"
-#: apply.c:845
+#: apply.c:821
#, c-format
msgid "Cannot prepare timestamp regexp %s"
msgstr "Регулярният израз за времето „%s“ не може за бъде компилиран"
-#: apply.c:854
+#: apply.c:830
#, c-format
msgid "regexec returned %d for input: %s"
msgstr "Регулярният израз върна %d при подадена последователност „%s“ на входа"
-#: apply.c:928
+#: apply.c:904
#, c-format
msgid "unable to find filename in patch at line %d"
msgstr "Липсва име на файл на ред %d от кръпката"
-#: apply.c:966
+#: apply.c:942
#, c-format
msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
msgstr ""
"git apply: лош изход от командата „git-diff“ — на ред %2$d се очакваше „/dev/"
"null“, а бе получен „%1$s“"
-#: apply.c:972
+#: apply.c:948
#, c-format
msgid "git apply: bad git-diff - inconsistent new filename on line %d"
msgstr ""
"git apply: лош изход от командата „git-diff“ — на ред %d бе получено "
"неправилно име на нов файл"
-#: apply.c:973
+#: apply.c:949
#, c-format
msgid "git apply: bad git-diff - inconsistent old filename on line %d"
msgstr ""
"git apply: лош изход от командата „git-diff“ — на ред %d бе получено "
"неправилно име на стар файл"
-#: apply.c:978
+#: apply.c:954
#, c-format
msgid "git apply: bad git-diff - expected /dev/null on line %d"
msgstr ""
"git apply: лош изход от командата „git-diff“ — на ред %d се очакваше „/dev/"
"null“"
-#: apply.c:1007
+#: apply.c:983
#, c-format
msgid "invalid mode on line %d: %s"
msgstr "грешен режим на ред №%d: %s"
-#: apply.c:1325
+#: apply.c:1301
#, c-format
msgid "inconsistent header lines %d and %d"
msgstr "несъвместими заглавни части на редове №%d и №%d"
-#: apply.c:1497
+#: apply.c:1473
#, c-format
msgid "recount: unexpected line: %.*s"
msgstr "при повторното преброяване бе получен неочакван ред: „%.*s“"
-#: apply.c:1566
+#: apply.c:1542
#, c-format
msgid "patch fragment without header at line %d: %.*s"
msgstr "част от кръпка без заглавна част на ред %d: %.*s"
-#: apply.c:1586
+#: apply.c:1562
#, c-format
msgid ""
"git diff header lacks filename information when removing %d leading pathname "
@@ -297,71 +301,71 @@ msgstr[1] ""
"След съкращаването на първите %d части от компонентите на пътя, в заглавната "
"част на „git diff“ липсва информация за име на файл (ред: %d)"
-#: apply.c:1599
+#: apply.c:1575
#, c-format
msgid "git diff header lacks filename information (line %d)"
msgstr ""
"в заглавната част на „git diff“ липсва информация за име на файл (ред: %d)"
-#: apply.c:1787
+#: apply.c:1763
msgid "new file depends on old contents"
msgstr "новият файл зависи от старото съдържание на файла"
-#: apply.c:1789
+#: apply.c:1765
msgid "deleted file still has contents"
msgstr "изтритият файл не е празен"
-#: apply.c:1823
+#: apply.c:1799
#, c-format
msgid "corrupt patch at line %d"
msgstr "грешка в кръпката на ред %d"
-#: apply.c:1860
+#: apply.c:1836
#, c-format
msgid "new file %s depends on old contents"
msgstr "новият файл „%s“ зависи от старото съдържание на файла"
-#: apply.c:1862
+#: apply.c:1838
#, c-format
msgid "deleted file %s still has contents"
msgstr "изтритият файл „%s“ не е празен"
-#: apply.c:1865
+#: apply.c:1841
#, c-format
msgid "** warning: file %s becomes empty but is not deleted"
msgstr "● предупреждение: файлът „%s“ вече е празен, но не е изтрит"
-#: apply.c:2012
+#: apply.c:1988
#, c-format
msgid "corrupt binary patch at line %d: %.*s"
msgstr "грешка в двоичната кръпка на ред %d: %.*s"
-#: apply.c:2049
+#: apply.c:2025
#, c-format
msgid "unrecognized binary patch at line %d"
msgstr "неразпозната двоичната кръпка на ред %d"
-#: apply.c:2209
+#: apply.c:2185
#, c-format
msgid "patch with only garbage at line %d"
msgstr "кръпката е с изцяло повредени данни на ред %d"
-#: apply.c:2295
+#: apply.c:2271
#, c-format
msgid "unable to read symlink %s"
msgstr "символната връзка „%s“ не може да бъде прочетена"
-#: apply.c:2299
+#: apply.c:2275
#, c-format
msgid "unable to open or read %s"
msgstr "файлът „%s“ не може да бъде отворен или прочетен"
-#: apply.c:2958
+#: apply.c:2934
#, c-format
msgid "invalid start of line: '%c'"
msgstr "неправилно начало на ред: „%c“"
-#: apply.c:3077
+#: apply.c:3055
#, c-format
msgid "Hunk #%d succeeded at %d (offset %d line)."
msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
@@ -370,13 +374,13 @@ msgstr[0] ""
msgstr[1] ""
"%d-то парче код бе успешно приложено на ред %d (отместване от %d реда)."
-#: apply.c:3089
+#: apply.c:3067
#, c-format
msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
msgstr ""
"Контекстът е намален на (%ld/%ld) за прилагането на парчето код на ред %d"
-#: apply.c:3095
+#: apply.c:3073
#, c-format
msgid ""
"while searching for:\n"
@@ -385,316 +389,316 @@ msgstr ""
"при търсене за:\n"
"%.*s"
-#: apply.c:3117
+#: apply.c:3095
#, c-format
msgid "missing binary patch data for '%s'"
msgstr "липсват данните за двоичната кръпка за „%s“"
-#: apply.c:3125
+#: apply.c:3103
#, c-format
msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'"
msgstr ""
"двоичната кръпка не може да се приложи в обратна посока, когато обратното "
"парче за „%s“ липсва"
-#: apply.c:3171
+#: apply.c:3149
#, c-format
msgid "cannot apply binary patch to '%s' without full index line"
msgstr "към „%s“ не може да се приложи двоична кръпка без пълен индекс"
-#: apply.c:3181
+#: apply.c:3159
#, c-format
msgid ""
"the patch applies to '%s' (%s), which does not match the current contents."
msgstr "кръпката съответства на „%s“ (%s), който не съвпада по съдържание."
-#: apply.c:3189
+#: apply.c:3167
#, c-format
msgid "the patch applies to an empty '%s' but it is not empty"
msgstr "кръпката съответства на „%s“, който трябва да е празен, но не е"
-#: apply.c:3207
+#: apply.c:3185
#, c-format
msgid "the necessary postimage %s for '%s' cannot be read"
msgstr ""
"необходимият резултат след операцията — „%s“ за „%s“ не може да бъде "
"прочетен"
-#: apply.c:3220
+#: apply.c:3198
#, c-format
msgid "binary patch does not apply to '%s'"
msgstr "двоичната кръпка не може да бъде приложена върху „%s“"
-#: apply.c:3226
+#: apply.c:3204
#, c-format
msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
msgstr ""
"двоичната кръпка за „%s“ води до неправилни резултати (очакваше се: „%s“, а "
"бе получено: „%s“)"
-#: apply.c:3247
+#: apply.c:3225
#, c-format
msgid "patch failed: %s:%ld"
msgstr "неуспешно прилагане на кръпка: „%s:%ld“"
-#: apply.c:3369
+#: apply.c:3347
#, c-format
msgid "cannot checkout %s"
msgstr "„%s“ не може да се изтегли"
-#: apply.c:3418 apply.c:3429 apply.c:3475 setup.c:277
+#: apply.c:3396 apply.c:3407 apply.c:3453 setup.c:277
#, c-format
msgid "failed to read %s"
msgstr "файлът „%s“ не може да бъде прочетен"
-#: apply.c:3426
+#: apply.c:3404
#, c-format
msgid "reading from '%s' beyond a symbolic link"
msgstr "изчитане на „%s“ след проследяване на символна връзка"
-#: apply.c:3455 apply.c:3695
+#: apply.c:3433 apply.c:3673
#, c-format
msgid "path %s has been renamed/deleted"
msgstr "обектът с път „%s“ е преименуван или изтрит"
-#: apply.c:3538 apply.c:3709
+#: apply.c:3516 apply.c:3687
#, c-format
msgid "%s: does not exist in index"
msgstr "„%s“ не съществува в индекса"
-#: apply.c:3547 apply.c:3717
+#: apply.c:3525 apply.c:3695
#, c-format
msgid "%s: does not match index"
msgstr "„%s“ не съответства на индекса"
-#: apply.c:3582
+#: apply.c:3560
msgid "repository lacks the necessary blob to fall back on 3-way merge."
msgstr ""
"в хранилището липсват необходимите обекти BLOB, за да се премине към тройно "
"сливане."
-#: apply.c:3585
+#: apply.c:3563
#, c-format
msgid "Falling back to three-way merge...\n"
msgstr "Преминаване към тройно сливане…\n"
-#: apply.c:3601 apply.c:3605
+#: apply.c:3579 apply.c:3583
#, c-format
msgid "cannot read the current contents of '%s'"
msgstr "текущото съдържание на „%s“ не може да бъде прочетено"
-#: apply.c:3617
+#: apply.c:3595
#, c-format
msgid "Failed to fall back on three-way merge...\n"
msgstr "Неуспешно преминаване към тройно сливане…\n"
-#: apply.c:3631
+#: apply.c:3609
#, c-format
msgid "Applied patch to '%s' with conflicts.\n"
msgstr "Конфликти при прилагането на кръпката към „%s“.\n"
-#: apply.c:3636
+#: apply.c:3614
#, c-format
msgid "Applied patch to '%s' cleanly.\n"
msgstr "Кръпката бе приложена чисто към „%s“.\n"
-#: apply.c:3662
+#: apply.c:3640
msgid "removal patch leaves file contents"
msgstr "изтриващата кръпка оставя файла непразен"
-#: apply.c:3734
+#: apply.c:3712
#, c-format
msgid "%s: wrong type"
msgstr "„%s“: неправилен вид"
-#: apply.c:3736
+#: apply.c:3714
#, c-format
msgid "%s has type %o, expected %o"
msgstr "„%s“ е от вид „%o“, а се очакваше „%o“"
-#: apply.c:3886 apply.c:3888
+#: apply.c:3864 apply.c:3866
#, c-format
msgid "invalid path '%s'"
msgstr "неправилен път: „%s“"
-#: apply.c:3944
+#: apply.c:3922
#, c-format
msgid "%s: already exists in index"
msgstr "„%s“: вече съществува в индекса"
-#: apply.c:3947
+#: apply.c:3925
#, c-format
msgid "%s: already exists in working directory"
msgstr "„%s“: вече съществува в работното дърво"
-#: apply.c:3967
+#: apply.c:3945
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o)"
msgstr "новите права за достъп (%o) на „%s“ не съвпадат със старите (%o)"
-#: apply.c:3972
+#: apply.c:3950
#, c-format
msgid "new mode (%o) of %s does not match old mode (%o) of %s"
msgstr ""
"новите права за достъп (%o) на „%s“ не съвпадат със старите (%o) на „%s“"
-#: apply.c:3992
+#: apply.c:3970
#, c-format
msgid "affected file '%s' is beyond a symbolic link"
msgstr "засегнатият файл „%s“ е след символна връзка"
-#: apply.c:3996
+#: apply.c:3974
#, c-format
msgid "%s: patch does not apply"
msgstr "Кръпката „%s“ не може да бъде приложена"
-#: apply.c:4011
+#: apply.c:3989
#, c-format
msgid "Checking patch %s..."
msgstr "Проверяване на кръпката „%s“…"
-#: apply.c:4102
+#: apply.c:4080
#, c-format
msgid "sha1 information is lacking or useless for submodule %s"
msgstr ""
"информацията за сумата по SHA1 за подмодула липсва или не е достатъчна (%s)."
-#: apply.c:4109
+#: apply.c:4087
#, c-format
msgid "mode change for %s, which is not in current HEAD"
msgstr "смяна на режима на достъпа на „%s“, който не е в текущия връх „HEAD“"
-#: apply.c:4112
+#: apply.c:4090
#, c-format
msgid "sha1 information is lacking or useless (%s)."
msgstr "информацията за сумата по SHA1 липсва или не е достатъчна (%s)."
-#: apply.c:4117 builtin/checkout.c:235 builtin/reset.c:148
+#: apply.c:4095 builtin/checkout.c:236 builtin/reset.c:148
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "неуспешно създаване на запис в кеша чрез „make_cache_entry“ за „%s“"
-#: apply.c:4121
+#: apply.c:4099
#, c-format
msgid "could not add %s to temporary index"
msgstr "„%s“ не може да се добави към временния индекс"
-#: apply.c:4131
+#: apply.c:4109
#, c-format
msgid "could not write temporary index to %s"
msgstr "временният индекс не може да се запази в „%s“"
-#: apply.c:4269
+#: apply.c:4247
#, c-format
msgid "unable to remove %s from index"
msgstr "„%s“ не може да се извади от индекса"
-#: apply.c:4304
+#: apply.c:4282
#, c-format
msgid "corrupt patch for submodule %s"
msgstr "повредена кръпка за модула „%s“"
-#: apply.c:4310
+#: apply.c:4288
#, c-format
msgid "unable to stat newly created file '%s'"
msgstr ""
"не може да се получи информация чрез „stat“ за новосъздадения файл „%s“"
-#: apply.c:4318
+#: apply.c:4296
#, c-format
msgid "unable to create backing store for newly created file %s"
msgstr ""
"не може да се за създаде мястото за съхранение на новосъздадения файл „%s“"
-#: apply.c:4324 apply.c:4468
+#: apply.c:4302 apply.c:4446
#, c-format
msgid "unable to add cache entry for %s"
msgstr "не може да се добави запис в кеша за „%s“"
-#: apply.c:4365
+#: apply.c:4343
#, c-format
msgid "failed to write to '%s'"
msgstr "в „%s“ не може да се пише"
-#: apply.c:4369
+#: apply.c:4347
#, c-format
msgid "closing file '%s'"
msgstr "затваряне на файла „%s“"
-#: apply.c:4439
+#: apply.c:4417
#, c-format
msgid "unable to write file '%s' mode %o"
msgstr "файлът „%s“ не може да се запише с режим на достъп „%o“"
-#: apply.c:4537
+#: apply.c:4515
#, c-format
msgid "Applied patch %s cleanly."
msgstr "Кръпката „%s“ бе приложена чисто."
-#: apply.c:4545
+#: apply.c:4523
msgid "internal error"
msgstr "вътрешна грешка"
-#: apply.c:4548
+#: apply.c:4526
#, 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 отхвърлени парчета…"
-#: apply.c:4559
+#: apply.c:4537
#, c-format
msgid "truncating .rej filename to %.*s.rej"
msgstr "съкращаване на името на файла с отхвърлените парчета на „ %.*s.rej“"
-#: apply.c:4567 builtin/fetch.c:760 builtin/fetch.c:1010
+#: apply.c:4545 builtin/fetch.c:761 builtin/fetch.c:1011
#, c-format
msgid "cannot open %s"
msgstr "„%s“ не може да бъде отворен"
-#: apply.c:4581
+#: apply.c:4559
#, c-format
msgid "Hunk #%d applied cleanly."
msgstr "%d-то парче бе успешно приложено."
-#: apply.c:4585
+#: apply.c:4563
#, c-format
msgid "Rejected hunk #%d."
msgstr "%d-то парче бе отхвърлено."
-#: apply.c:4695
+#: apply.c:4673
#, c-format
msgid "Skipped patch '%s'."
msgstr "Пропусната кръпка: „%s“"
-#: apply.c:4703
+#: apply.c:4681
msgid "unrecognized input"
msgstr "непознат вход"
-#: apply.c:4722
+#: apply.c:4700
msgid "unable to read index file"
msgstr "индексът не може да бъде записан"
-#: apply.c:4859
+#: apply.c:4837
#, c-format
msgid "can't open patch '%s': %s"
msgstr "кръпката „%s“ не може да бъде отворена: %s"
-#: apply.c:4886
+#: apply.c:4864
#, c-format
msgid "squelched %d whitespace error"
msgid_plural "squelched %d whitespace errors"
msgstr[0] "пренебрегната е %d грешка в знаците за интервали"
msgstr[1] "пренебрегнати са %d грешки в знаците за интервали"
-#: apply.c:4892 apply.c:4907
+#: apply.c:4870 apply.c:4885
#, c-format
msgid "%d line adds whitespace errors."
msgid_plural "%d lines add whitespace errors."
msgstr[0] "%d ред добавя грешки в знаците за интервали."
msgstr[1] "%d реда добавят грешки в знаците за интервали."
-#: apply.c:4900
+#: apply.c:4878
#, c-format
msgid "%d line applied after fixing whitespace errors."
msgid_plural "%d lines applied after fixing whitespace errors."
@@ -703,139 +707,140 @@ msgstr[0] ""
msgstr[1] ""
"Добавени са %d реда след корекцията на грешките в знаците за интервали."
-#: apply.c:4916 builtin/add.c:515 builtin/mv.c:298 builtin/rm.c:390
+#: apply.c:4894 builtin/add.c:539 builtin/mv.c:298 builtin/rm.c:390
msgid "Unable to write new index file"
msgstr "Новият индекс не може да бъде записан"
-#: apply.c:4947 apply.c:4950 builtin/am.c:2256 builtin/am.c:2259
-#: builtin/clone.c:116 builtin/fetch.c:115 builtin/pull.c:187
-#: builtin/submodule--helper.c:301 builtin/submodule--helper.c:622
-#: builtin/submodule--helper.c:625 builtin/submodule--helper.c:992
-#: builtin/submodule--helper.c:995 builtin/submodule--helper.c:1212
+#: apply.c:4921 apply.c:4924 builtin/am.c:2220 builtin/am.c:2223
+#: builtin/clone.c:116 builtin/fetch.c:116 builtin/pull.c:193
+#: builtin/submodule--helper.c:369 builtin/submodule--helper.c:860
+#: builtin/submodule--helper.c:863 builtin/submodule--helper.c:1230
+#: builtin/submodule--helper.c:1233 builtin/submodule--helper.c:1450
#: git-add--interactive.perl:197
msgid "path"
msgstr "път"
-#: apply.c:4948
+#: apply.c:4922
msgid "don't apply changes matching the given path"
msgstr "без прилагане на промените напасващи на дадения път"
-#: apply.c:4951
+#: apply.c:4925
msgid "apply changes matching the given path"
msgstr "прилагане на промените напасващи на дадения път"
-#: apply.c:4953 builtin/am.c:2265
+#: apply.c:4927 builtin/am.c:2229
msgid "num"
msgstr "БРОЙ"
-#: apply.c:4954
+#: apply.c:4928
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "премахване на този БРОЙ водещи елементи от пътищата в разликата"
-#: apply.c:4957
+#: apply.c:4931
msgid "ignore additions made by the patch"
msgstr "игнориране на редовете добавени от тази кръпка"
-#: apply.c:4959
+#: apply.c:4933
msgid "instead of applying the patch, output diffstat for the input"
msgstr "извеждане на статистика на промените без прилагане на кръпката"
-#: apply.c:4963
+#: apply.c:4937
msgid "show number of added and deleted lines in decimal notation"
msgstr "извеждане на броя на добавените и изтритите редове"
-#: apply.c:4965
+#: apply.c:4939
msgid "instead of applying the patch, output a summary for the input"
msgstr "извеждане на статистика на входните данни без прилагане на кръпката"
-#: apply.c:4967
+#: apply.c:4941
msgid "instead of applying the patch, see if the patch is applicable"
msgstr "проверка дали кръпката може да се приложи, без действително прилагане"
-#: apply.c:4969
+#: apply.c:4943
msgid "make sure the patch is applicable to the current index"
msgstr "проверка дали кръпката може да бъде приложена към текущия индекс"
-#: apply.c:4971
+#: apply.c:4945
msgid "apply a patch without touching the working tree"
msgstr "прилагане на кръпката без промяна на работното дърво"
-#: apply.c:4973
+#: apply.c:4947
msgid "accept a patch that touches outside the working area"
msgstr "прилагане на кръпка, която променя и файлове извън работното дърво"
-#: apply.c:4975
+#: apply.c:4949
msgid "also apply the patch (use with --stat/--summary/--check)"
msgstr ""
"кръпката да бъде приложена. Опцията се комбинира с „--check“/„--stat“/„--"
"summary“"
-#: apply.c:4977
+#: apply.c:4951
msgid "attempt three-way merge if a patch does not apply"
msgstr "пробване с тройно сливане, ако кръпката не може да се приложи директно"
-#: apply.c:4979
+#: apply.c:4953
msgid "build a temporary index based on embedded index information"
msgstr ""
"създаване на временен индекс на база на включената информация за индекса"
-#: apply.c:4982 builtin/checkout-index.c:170 builtin/ls-files.c:513
+#: apply.c:4956 builtin/checkout-index.c:168 builtin/ls-files.c:515
msgid "paths are separated with NUL character"
msgstr "разделяне на пътищата с нулевия знак „NUL“"
-#: apply.c:4984
+#: apply.c:4958
msgid "ensure at least <n> lines of context match"
msgstr "да се осигури контекст от поне такъв БРОЙ съвпадащи редове"
-#: apply.c:4985 builtin/am.c:2244 builtin/interpret-trailers.c:95
+#: apply.c:4959 builtin/am.c:2208 builtin/interpret-trailers.c:95
#: builtin/interpret-trailers.c:97 builtin/interpret-trailers.c:99
+#: builtin/pack-objects.c:3009
msgid "action"
msgstr "действие"
-#: apply.c:4986
+#: apply.c:4960
msgid "detect new or modified lines that have whitespace errors"
msgstr "засичане на нови или променени редове с грешки в знаците за интервали"
-#: apply.c:4989 apply.c:4992
+#: apply.c:4963 apply.c:4966
msgid "ignore changes in whitespace when finding context"
msgstr ""
"игнориране на промените в знаците за интервали при откриване на контекста"
-#: apply.c:4995
+#: apply.c:4969
msgid "apply the patch in reverse"
msgstr "прилагане на кръпката в обратна посока"
-#: apply.c:4997
+#: apply.c:4971
msgid "don't expect at least one line of context"
msgstr "без изискване на дори и един ред контекст"
-#: apply.c:4999
+#: apply.c:4973
msgid "leave the rejected hunks in corresponding *.rej files"
msgstr "оставяне на отхвърлените парчета във файлове с разширение „.rej“"
-#: apply.c:5001
+#: apply.c:4975
msgid "allow overlapping hunks"
msgstr "позволяване на застъпващи се парчета"
-#: apply.c:5002 builtin/add.c:272 builtin/check-ignore.c:21
-#: builtin/commit.c:1347 builtin/count-objects.c:96 builtin/fsck.c:640
-#: builtin/log.c:1889 builtin/mv.c:123 builtin/read-tree.c:125
+#: apply.c:4976 builtin/add.c:292 builtin/check-ignore.c:21
+#: builtin/commit.c:1361 builtin/count-objects.c:96 builtin/fsck.c:640
+#: builtin/log.c:1896 builtin/mv.c:123 builtin/read-tree.c:125
msgid "be verbose"
msgstr "повече подробности"
-#: apply.c:5004
+#: apply.c:4978
msgid "tolerate incorrectly detected missing new-line at the end of file"
msgstr "пренебрегване на неправилно липсващ знак за нов ред в края на файл"
-#: apply.c:5007
+#: apply.c:4981
msgid "do not trust the line counts in the hunk headers"
msgstr "без доверяване на номерата на редовете в заглавните части на парчетата"
-#: apply.c:5009 builtin/am.c:2253
+#: apply.c:4983 builtin/am.c:2217
msgid "root"
msgstr "НАЧАЛНА_ДИРЕКТОРИЯ"
-#: apply.c:5010
+#: apply.c:4984
msgid "prepend <root> to all filenames"
msgstr "добавяне на тази НАЧАЛНА_ДИРЕКТОРИЯ към имената на всички файлове"
@@ -858,7 +863,7 @@ msgstr ""
msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote ХРАНИЛИЩЕ [--exec КОМАНДА] --list"
-#: archive.c:351 builtin/add.c:156 builtin/add.c:494 builtin/rm.c:299
+#: archive.c:351 builtin/add.c:176 builtin/add.c:515 builtin/rm.c:299
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "пътят „%s“ не съвпада с никой файл"
@@ -871,7 +876,7 @@ msgstr "ФОРМАТ"
msgid "archive format"
msgstr "ФОРМАТ на архива"
-#: archive.c:437 builtin/log.c:1452
+#: archive.c:437 builtin/log.c:1459
msgid "prefix"
msgstr "ПРЕФИКС"
@@ -879,9 +884,9 @@ msgstr "ПРЕФИКС"
msgid "prepend prefix to each pathname in the archive"
msgstr "добавяне на този ПРЕФИКС към всеки път в архива"
-#: archive.c:439 builtin/blame.c:693 builtin/blame.c:694 builtin/config.c:61
-#: builtin/fast-export.c:1005 builtin/fast-export.c:1007 builtin/grep.c:859
-#: builtin/hash-object.c:102 builtin/ls-files.c:547 builtin/ls-files.c:550
+#: archive.c:439 builtin/blame.c:693 builtin/blame.c:694 builtin/config.c:62
+#: builtin/fast-export.c:1005 builtin/fast-export.c:1007 builtin/grep.c:861
+#: builtin/hash-object.c:102 builtin/ls-files.c:551 builtin/ls-files.c:554
#: builtin/notes.c:405 builtin/notes.c:568 builtin/read-tree.c:120
#: parse-options.h:153
msgid "file"
@@ -916,7 +921,7 @@ msgid "list supported archive formats"
msgstr "извеждане на списъка с поддържаните формати"
#: archive.c:458 builtin/archive.c:90 builtin/clone.c:106 builtin/clone.c:109
-#: builtin/submodule--helper.c:634 builtin/submodule--helper.c:1001
+#: builtin/submodule--helper.c:872 builtin/submodule--helper.c:1239
msgid "repo"
msgstr "хранилище"
@@ -967,22 +972,22 @@ msgstr ""
"Отрицателните шаблони се игнорират в атрибутите на git.\n"
"Ако ви трябва начална удивителна, ползвайте „\\!“."
-#: bisect.c:447
+#: bisect.c:458
#, c-format
msgid "Badly quoted content in file '%s': %s"
msgstr "Неправилно цитирано съдържание във файла „%s“: %s"
-#: bisect.c:655
+#: bisect.c:666
#, c-format
msgid "We cannot bisect more!\n"
msgstr "Повече не може да се търси двоично!\n"
-#: bisect.c:708
+#: bisect.c:720
#, c-format
msgid "Not a valid commit name %s"
msgstr "Неправилно име на подаване „%s“"
-#: bisect.c:732
+#: bisect.c:744
#, c-format
msgid ""
"The merge base %s is bad.\n"
@@ -991,7 +996,7 @@ msgstr ""
"Неправилна база за сливане: %s.\n"
"Следователно грешката е коригирана между „%s“ и [%s].\n"
-#: bisect.c:737
+#: bisect.c:749
#, c-format
msgid ""
"The merge base %s is new.\n"
@@ -1000,7 +1005,7 @@ msgstr ""
"Нова база за сливане: %s.\n"
"Свойството е променено между „%s“ и [%s].\n"
-#: bisect.c:742
+#: bisect.c:754
#, c-format
msgid ""
"The merge base %s is %s.\n"
@@ -1009,7 +1014,7 @@ msgstr ""
"Базата за сливане „%s“ е %s.\n"
"Следователно първото %s подаване е между „%s“ и [%s].\n"
-#: bisect.c:750
+#: bisect.c:762
#, c-format
msgid ""
"Some %s revs are not ancestors of the %s rev.\n"
@@ -1020,7 +1025,7 @@ msgstr ""
"Двоичното търсене с git bisect няма да работи правилно.\n"
"Дали не сте объркали указателите „%s“ и „%s“?\n"
-#: bisect.c:763
+#: bisect.c:775
#, c-format
msgid ""
"the merge base between %s and [%s] must be skipped.\n"
@@ -1031,36 +1036,36 @@ msgstr ""
"Не може да сме сигурни, че първото %s подаване е между „%s“ и „%s“.\n"
"Двоичното търсене продължава."
-#: bisect.c:798
+#: bisect.c:810
#, c-format
msgid "Bisecting: a merge base must be tested\n"
msgstr "Двоично търсене: трябва да се провери база за сливане\n"
-#: bisect.c:850
+#: bisect.c:862
#, c-format
msgid "a %s revision is needed"
msgstr "необходима е версия „%s“"
-#: bisect.c:867 builtin/notes.c:175 builtin/tag.c:234
+#: bisect.c:879 builtin/notes.c:175 builtin/tag.c:234
#, c-format
msgid "could not create file '%s'"
msgstr "файлът „%s“ не може да бъде създаден"
-#: bisect.c:918
+#: bisect.c:930
#, c-format
msgid "could not read file '%s'"
msgstr "файлът „%s“ не може да бъде прочетен"
-#: bisect.c:948
+#: bisect.c:960
msgid "reading bisect refs failed"
msgstr "неуспешно прочитане на указателите за двоично търсене"
-#: bisect.c:968
+#: bisect.c:979
#, c-format
msgid "%s was both %s and %s\n"
msgstr "„%s“ e както „%s“, така и „%s“\n"
-#: bisect.c:976
+#: bisect.c:987
#, c-format
msgid ""
"No testable commit found.\n"
@@ -1069,7 +1074,7 @@ msgstr ""
"Липсва подходящо за тестване подаване.\n"
"Проверете параметрите за пътищата.\n"
-#: bisect.c:995
+#: bisect.c:1006
#, c-format
msgid "(roughly %d step)"
msgid_plural "(roughly %d steps)"
@@ -1079,7 +1084,7 @@ msgstr[1] "(приблизително %d стъпки)"
#. TRANSLATORS: the last %s will be replaced with "(roughly %d
#. steps)" translation.
#.
-#: bisect.c:1001
+#: bisect.c:1012
#, 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"
@@ -1100,9 +1105,9 @@ msgstr ""
"Едновременното задаване на опциите „--reverse“ и „--first-parent“ изисква "
"указването на крайно подаване"
-#: blame.c:1797 bundle.c:169 ref-filter.c:1932 sequencer.c:1168
-#: sequencer.c:2351 builtin/commit.c:1065 builtin/log.c:357 builtin/log.c:911
-#: builtin/log.c:1361 builtin/log.c:1690 builtin/log.c:1938 builtin/merge.c:369
+#: blame.c:1797 bundle.c:169 ref-filter.c:1981 sequencer.c:1177
+#: sequencer.c:2370 builtin/commit.c:1066 builtin/log.c:364 builtin/log.c:918
+#: builtin/log.c:1368 builtin/log.c:1697 builtin/log.c:1945 builtin/merge.c:369
#: builtin/shortlog.c:191
msgid "revision walk setup failed"
msgstr "неуспешно настройване на обхождането на версиите"
@@ -1194,31 +1199,31 @@ msgstr "Настройките за следения клон не могат д
msgid "Not tracking: ambiguous information for ref %s"
msgstr "Няма следене: информацията за указателя „%s“ не е еднозначна"
-#: branch.c:185
+#: branch.c:189
#, c-format
msgid "'%s' is not a valid branch name."
msgstr "„%s“ не е позволено име за клон."
-#: branch.c:190
+#: branch.c:208
#, c-format
msgid "A branch named '%s' already exists."
msgstr "Вече съществува клон с име „%s“."
-#: branch.c:197
+#: branch.c:213
msgid "Cannot force update the current branch."
msgstr "Текущият клон не може да бъде принудително обновен."
-#: branch.c:217
+#: branch.c:233
#, c-format
msgid "Cannot setup tracking information; starting point '%s' is not a branch."
msgstr "Зададените настройки за следенето са грешни — началото „%s“ не е клон."
-#: branch.c:219
+#: branch.c:235
#, c-format
msgid "the requested upstream branch '%s' does not exist"
msgstr "заявеният отдалечен клон „%s“ не съществува"
-#: branch.c:221
+#: branch.c:237
msgid ""
"\n"
"If you are planning on basing your work on an upstream\n"
@@ -1237,27 +1242,27 @@ msgstr ""
"може да използвате „git push -u“, за да настроите към кой клон да се "
"изтласква."
-#: branch.c:264
+#: branch.c:280
#, c-format
msgid "Not a valid object name: '%s'."
msgstr "Неправилно име на обект: „%s“"
-#: branch.c:284
+#: branch.c:300
#, c-format
msgid "Ambiguous object name: '%s'."
msgstr "Името на обект не е еднозначно: „%s“"
-#: branch.c:289
+#: branch.c:305
#, c-format
msgid "Not a valid branch point: '%s'."
msgstr "Неправилно място за начало на клон: „%s“"
-#: branch.c:343
+#: branch.c:359
#, c-format
msgid "'%s' is already checked out at '%s'"
msgstr "„%s“ вече е изтеглен в „%s“"
-#: branch.c:366
+#: branch.c:382
#, c-format
msgid "HEAD of working tree %s is not updated"
msgstr "Указателят „HEAD“ на работното дърво „%s“ не е обновен"
@@ -1272,9 +1277,8 @@ msgstr "Файлът „%s“ не изглежда да е пратка на gi
msgid "unrecognized header: %s%s (%d)"
msgstr "непозната заглавна част: %s%s (%d)"
-#: bundle.c:88 sequencer.c:1346 sequencer.c:1793 sequencer.c:2500
-#: sequencer.c:2583 sequencer.c:2609 sequencer.c:2687 sequencer.c:2807
-#: sequencer.c:2949 builtin/commit.c:782
+#: bundle.c:88 sequencer.c:1360 sequencer.c:1807 sequencer.c:2637
+#: sequencer.c:2663 sequencer.c:2754 sequencer.c:2856 builtin/commit.c:782
#, c-format
msgid "could not open '%s'"
msgstr "„%s“ не може да се отвори"
@@ -1319,7 +1323,7 @@ msgid "ref '%s' is excluded by the rev-list options"
msgstr ""
"указателят „%s“ не е бил включен поради опциите зададени на „git rev-list“"
-#: bundle.c:453 builtin/log.c:174 builtin/log.c:1597 builtin/shortlog.c:296
+#: bundle.c:453 builtin/log.c:181 builtin/log.c:1604 builtin/shortlog.c:296
#, c-format
msgid "unrecognized argument: %s"
msgstr "непознат аргумент: %s"
@@ -1342,8 +1346,8 @@ msgstr "Командата „git index-pack“ не завърши успешн
msgid "invalid color value: %.*s"
msgstr "неправилна стойност за цвят: %.*s"
-#: commit.c:41 sequencer.c:1600 builtin/am.c:421 builtin/am.c:465
-#: builtin/am.c:1467 builtin/am.c:2105
+#: commit.c:41 sequencer.c:1614 builtin/am.c:421 builtin/am.c:465
+#: builtin/am.c:1434 builtin/am.c:2069
#, c-format
msgid "could not parse %s"
msgstr "„%s“ не може да се анализира"
@@ -1353,7 +1357,7 @@ msgstr "„%s“ не може да се анализира"
msgid "%s %s is not a commit!"
msgstr "%s %s не е подаване!"
-#: commit.c:1517
+#: commit.c:1524
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"
@@ -1363,169 +1367,174 @@ msgstr ""
"Може да поправите подаването заедно със съобщението или може да\n"
"зададете ползваното кодиране в настройката „i18n.commitencoding“.\n"
-#: compat/obstack.c:406 compat/obstack.c:408
+#: compat/obstack.c:405 compat/obstack.c:407
msgid "memory exhausted"
msgstr "паметта свърши"
-#: config.c:187
+#: config.c:186
msgid "relative config include conditionals must come from files"
msgstr "относителните условни изрази за вмъкване трябва да идват от файлове"
-#: config.c:721
+#: config.c:720
#, c-format
msgid "bad config line %d in blob %s"
msgstr "неправилен ред за настройки %d в BLOB „%s“"
-#: config.c:725
+#: config.c:724
#, c-format
msgid "bad config line %d in file %s"
msgstr "неправилен ред за настройки %d във файла „%s“"
-#: config.c:729
+#: config.c:728
#, c-format
msgid "bad config line %d in standard input"
msgstr "неправилен ред за настройки %d на стандартния вход"
-#: config.c:733
+#: config.c:732
#, c-format
msgid "bad config line %d in submodule-blob %s"
msgstr "неправилен ред за настройки %d в BLOB за подмодул „%s“"
-#: config.c:737
+#: config.c:736
#, c-format
msgid "bad config line %d in command line %s"
msgstr "неправилен ред за настройки %d на командния ред „%s“"
-#: config.c:741
+#: config.c:740
#, c-format
msgid "bad config line %d in %s"
msgstr "неправилен ред за настройки %d в „%s“"
-#: config.c:869
+#: config.c:868
msgid "out of range"
msgstr "извън диапазона"
-#: config.c:869
+#: config.c:868
msgid "invalid unit"
msgstr "неправилна мерна единица"
-#: config.c:875
+#: config.c:874
#, c-format
msgid "bad numeric config value '%s' for '%s': %s"
msgstr "неправилна числова стойност „%s“ за „%s“: %s"
-#: config.c:880
+#: config.c:879
#, c-format
msgid "bad numeric config value '%s' for '%s' in blob %s: %s"
msgstr "неправилна числова стойност „%s“ за „%s“ в BLOB „%s“: %s"
-#: config.c:883
+#: config.c:882
#, c-format
msgid "bad numeric config value '%s' for '%s' in file %s: %s"
msgstr "неправилна числова стойност „%s“ за „%s“ във файла „%s“: %s"
-#: config.c:886
+#: config.c:885
#, c-format
msgid "bad numeric config value '%s' for '%s' in standard input: %s"
msgstr "неправилна числова стойност „%s“ за „%s“ на стандартния вход: %s"
-#: config.c:889
+#: config.c:888
#, c-format
msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
msgstr "неправилна числова стойност „%s“ за „%s“ в BLOB от подмодул „%s“: %s"
-#: config.c:892
+#: config.c:891
#, c-format
msgid "bad numeric config value '%s' for '%s' in command line %s: %s"
msgstr "неправилна числова стойност „%s“ за „%s“ на командния ред „%s“: %s"
-#: config.c:895
+#: config.c:894
#, c-format
msgid "bad numeric config value '%s' for '%s' in %s: %s"
msgstr "неправилна числова стойност „%s“ за „%s“ в %s: %s"
-#: config.c:990
+#: config.c:989
#, c-format
msgid "failed to expand user dir in: '%s'"
msgstr "домашната папка на потребителя не може да бъде открита: „%s“"
-#: config.c:1085 config.c:1096
+#: config.c:998
+#, c-format
+msgid "'%s' for '%s' is not a valid timestamp"
+msgstr "„%s“ не е правилна стойност за време за „%s“"
+
+#: config.c:1094 config.c:1105
#, c-format
msgid "bad zlib compression level %d"
msgstr "неправилно ниво на компресиране: %d"
-#: config.c:1213
+#: config.c:1222
#, c-format
msgid "invalid mode for object creation: %s"
msgstr "неправилен режим за създаването на обекти: %s"
-#: config.c:1372
+#: config.c:1378
#, c-format
msgid "bad pack compression level %d"
msgstr "неправилно ниво на компресиране при пакетиране: %d"
-#: config.c:1568
+#: config.c:1574
msgid "unable to parse command-line config"
msgstr "неправилни настройки от командния ред"
-#: config.c:1900
+#: config.c:1906
msgid "unknown error occurred while reading the configuration files"
msgstr "неочаквана грешка при изчитането на конфигурационните файлове"
-#: config.c:2087
+#: config.c:2093
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Неправилен %s: „%s“"
-#: config.c:2130
+#: config.c:2136
#, c-format
msgid "unknown core.untrackedCache value '%s'; using 'keep' default value"
msgstr ""
-"непозната стойност „%s“ за настройката „core.untrackedCache“. Ще се ползва "
+"непозната стойност „%s“ за настройката „core.untrackedCache“. Ще се ползва "
"стандартната стойност „keep“ (запазване)"
-#: config.c:2156
+#: config.c:2162
#, c-format
msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100"
msgstr ""
"стойността на „splitIndex.maxPercentChange“ трябва да е между 1 и 100, а не "
"%d"
-#: config.c:2167
+#: config.c:2187
#, c-format
msgid "unable to parse '%s' from command-line config"
msgstr "неразпозната стойност „%s“ от командния ред"
-#: config.c:2169
+#: config.c:2189
#, c-format
msgid "bad config variable '%s' in file '%s' at line %d"
msgstr "неправилна настройка „%s“ във файла „%s“ на ред №%d"
-#: config.c:2228
+#: config.c:2248
#, c-format
msgid "%s has multiple values"
msgstr "зададени са няколко стойности за „%s“"
-#: config.c:2571 config.c:2789
+#: config.c:2591 config.c:2808
#, c-format
msgid "fstat on %s failed"
msgstr "неуспешно изпълнение на „fstat“ върху „%s“"
-#: config.c:2678
+#: config.c:2698
#, c-format
msgid "could not set '%s' to '%s'"
msgstr "„%s“ не може да се зададе да е „%s“"
-#: config.c:2680 builtin/remote.c:776
+#: config.c:2700 builtin/remote.c:776
#, c-format
msgid "could not unset '%s'"
msgstr "„%s“ не може да се премахне"
-#: connect.c:50
+#: connect.c:52
msgid "The remote end hung up upon initial contact"
msgstr "Отдалеченото хранилище прекъсна връзката веднага след отварянето ѝ"
-#: connect.c:52
+#: connect.c:54
msgid ""
"Could not read from remote repository.\n"
"\n"
@@ -1658,7 +1667,7 @@ msgstr[1] "преди %<PRIuMAX> години"
msgid "failed to read orderfile '%s'"
msgstr "файлът с подредбата на съответствията „%s“ не може да бъде прочетен"
-#: diffcore-rename.c:536
+#: diffcore-rename.c:535
msgid "Performing inexact rename detection"
msgstr "Търсене на преименувания на обекти съчетани с промени"
@@ -1693,7 +1702,7 @@ msgstr ""
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "Непозната стойност „%s“ за настройката „diff.submodule“"
-#: diff.c:398
+#: diff.c:401
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
@@ -1702,23 +1711,23 @@ msgstr ""
"Грешки в настройката „diff.dirstat“:\n"
"%s"
-#: diff.c:3861
+#: diff.c:3799
#, c-format
msgid "external diff died, stopping at %s"
msgstr ""
"външната програма за разлики завърши неуспешно. Спиране на работата при „%s“"
-#: diff.c:4189
+#: diff.c:4127
msgid "--name-only, --name-status, --check and -s are mutually exclusive"
msgstr ""
"Опциите „--name-only“, „--name-status“, „--check“ и „-s“ са несъвместими "
"една с друга"
-#: diff.c:4279
+#: diff.c:4215
msgid "--follow requires exactly one pathspec"
msgstr "Опцията „--follow“ изисква точно един път"
-#: diff.c:4445
+#: diff.c:4381
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
@@ -1727,52 +1736,57 @@ msgstr ""
"Неразпознат параметър към опцията „--dirstat/-X“:\n"
"%s"
-#: diff.c:4459
+#: diff.c:4395
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Неразпознат параметър към опцията „--submodule“: „%s“"
-#: diff.c:5505
+#: diff.c:5446
msgid "inexact rename detection was skipped due to too many files."
msgstr ""
"търсенето на преименувания на обекти съчетани с промени се прескача поради "
"многото файлове."
-#: diff.c:5508
+#: diff.c:5449
msgid "only found copies from modified paths due to too many files."
msgstr ""
"установени са точните копия на променените пътища поради многото файлове."
-#: diff.c:5511
+#: diff.c:5452
#, c-format
msgid ""
"you may want to set your %s variable to at least %d and retry the command."
msgstr "задайте променливата „%s“ да е поне %d и отново изпълнете командата."
-#: dir.c:1983
+#: dir.c:2100
msgid "failed to get kernel name and information"
msgstr "името и версията на ядрото не бяха получени"
-#: dir.c:2102
+#: dir.c:2219
msgid "Untracked cache is disabled on this system or location."
msgstr ""
"Кеша за неследените файлове е изключен на тази система или местоположение."
-#: dir.c:2885 dir.c:2890
+#: dir.c:3002 dir.c:3007
#, c-format
msgid "could not create directories for %s"
msgstr "директориите за „%s“ не може да бъдат създадени"
-#: dir.c:2915
+#: dir.c:3032
#, c-format
msgid "could not migrate git directory from '%s' to '%s'"
msgstr "директорията на git не може да се мигрира от „%s“ до „%s“"
-#: entry.c:176
+#: editor.c:61
+#, c-format
+msgid "hint: Waiting for your editor to close the file...%c"
+msgstr "Подсказка: чака се редакторът ви да затвори файла …%c"
+
+#: entry.c:177
msgid "Filtering content"
msgstr "Филтриране на съдържанието"
-#: entry.c:417
+#: entry.c:435
#, c-format
msgid "could not stat file '%s'"
msgstr "неуспешно изпълнение на „stat“ върху файла „%s“"
@@ -1843,7 +1857,7 @@ msgstr "неправилно подаване: „%s“"
msgid "giving up"
msgstr "преустановяване"
-#: fetch-pack.c:534 progress.c:242
+#: fetch-pack.c:534 progress.c:229
msgid "done"
msgstr "действието завърши"
@@ -1857,104 +1871,104 @@ msgstr "получено бе %s (%d) %s"
msgid "Marking %s as complete"
msgstr "Отбелязване на „%s“ като пълно"
-#: fetch-pack.c:776
+#: fetch-pack.c:777
#, c-format
msgid "already have %s (%s)"
msgstr "вече има „%s“ (%s)"
-#: fetch-pack.c:814
+#: fetch-pack.c:815
msgid "fetch-pack: unable to fork off sideband demultiplexer"
msgstr "fetch-pack: не може да се създаде процес за демултиплексора"
-#: fetch-pack.c:822
+#: fetch-pack.c:823
msgid "protocol error: bad pack header"
msgstr "протоколна грешка: неправилна заглавна част на пакет"
-#: fetch-pack.c:878
+#: fetch-pack.c:879
#, c-format
msgid "fetch-pack: unable to fork off %s"
msgstr "fetch-pack: не може да се създаде процес за „%s“"
-#: fetch-pack.c:894
+#: fetch-pack.c:895
#, c-format
msgid "%s failed"
msgstr "неуспешно изпълнение на „%s“"
-#: fetch-pack.c:896
+#: fetch-pack.c:897
msgid "error in sideband demultiplexer"
msgstr "грешка в демултиплексора"
-#: fetch-pack.c:923
+#: fetch-pack.c:924
msgid "Server does not support shallow clients"
msgstr "Сървърът не поддържа плитки клиенти"
-#: fetch-pack.c:927
+#: fetch-pack.c:928
msgid "Server supports multi_ack_detailed"
msgstr "Сървърът поддържа „multi_ack_detailed“"
-#: fetch-pack.c:930
+#: fetch-pack.c:931
msgid "Server supports no-done"
msgstr "Сървърът поддържа „no-done“"
-#: fetch-pack.c:936
+#: fetch-pack.c:937
msgid "Server supports multi_ack"
msgstr "Сървърът поддържа „multi_ack“"
-#: fetch-pack.c:940
+#: fetch-pack.c:941
msgid "Server supports side-band-64k"
msgstr "Сървърът поддържа „side-band-64k“"
-#: fetch-pack.c:944
+#: fetch-pack.c:945
msgid "Server supports side-band"
msgstr "Сървърът поддържа „side-band“"
-#: fetch-pack.c:948
+#: fetch-pack.c:949
msgid "Server supports allow-tip-sha1-in-want"
msgstr "Сървърът поддържа „allow-tip-sha1-in-want“"
-#: fetch-pack.c:952
+#: fetch-pack.c:953
msgid "Server supports allow-reachable-sha1-in-want"
msgstr "Сървърът поддържа „allow-reachable-sha1-in-want“"
-#: fetch-pack.c:962
+#: fetch-pack.c:963
msgid "Server supports ofs-delta"
msgstr "Сървърът поддържа „ofs-delta“"
-#: fetch-pack.c:969
+#: fetch-pack.c:970
#, c-format
msgid "Server version is %.*s"
msgstr "Версията на сървъра е: %.*s"
-#: fetch-pack.c:975
+#: fetch-pack.c:976
msgid "Server does not support --shallow-since"
msgstr "Сървърът не поддържа опцията „--shallow-since“"
-#: fetch-pack.c:979
+#: fetch-pack.c:980
msgid "Server does not support --shallow-exclude"
msgstr "Сървърът не поддържа опцията „--shallow-exclude“"
-#: fetch-pack.c:981
+#: fetch-pack.c:982
msgid "Server does not support --deepen"
msgstr "Сървърът не поддържа опцията „--deepen“"
-#: fetch-pack.c:992
+#: fetch-pack.c:993
msgid "no common commits"
msgstr "няма общи подавания"
-#: fetch-pack.c:1004
+#: fetch-pack.c:1005
msgid "git fetch-pack: fetch failed."
msgstr "git fetch-pack: неуспешно доставяне."
-#: fetch-pack.c:1166
+#: fetch-pack.c:1167
msgid "no matching remote head"
msgstr "не може да бъде открит подходящ връх от отдалеченото хранилище"
-#: fetch-pack.c:1188
+#: fetch-pack.c:1189
#, c-format
msgid "no such remote ref %s"
msgstr "такъв отдалечен указател няма: %s"
-#: fetch-pack.c:1191
+#: fetch-pack.c:1192
#, c-format
msgid "Server does not allow request for unadvertised object %s"
msgstr "Сървърът не позволява заявка за необявен „%s“"
@@ -1977,17 +1991,17 @@ msgstr "Програмата не успя да запише самостоят
msgid "ignore invalid color '%.*s' in log.graphColors"
msgstr "прескачане на неправилния цвят „%.*s“ в „log.graphColors“"
-#: grep.c:1970
+#: grep.c:2017
#, c-format
msgid "'%s': unable to read %s"
msgstr "„%s“: файлът сочен от „%s“ не може да бъде прочетен"
-#: grep.c:1987 builtin/clone.c:404 builtin/diff.c:81 builtin/rm.c:134
+#: grep.c:2034 builtin/clone.c:404 builtin/diff.c:81 builtin/rm.c:134
#, c-format
msgid "failed to stat '%s'"
msgstr "не може да бъде получена информация чрез „stat“ за „%s“"
-#: grep.c:1998
+#: grep.c:2045
#, c-format
msgid "'%s': short read"
msgstr "„%s“: изчитането върна по-малко байтове от очакваното"
@@ -2061,12 +2075,12 @@ msgstr[1] ""
msgid "git version [<options>]"
msgstr "git version [ОПЦИЯ…]"
-#: help.c:456
+#: help.c:462
#, c-format
msgid "%s: %s - %s"
msgstr "%s: %s — %s"
-#: help.c:460
+#: help.c:466
msgid ""
"\n"
"Did you mean this?"
@@ -2142,6 +2156,15 @@ msgstr "името съдържа само непозволени знаци:
msgid "invalid date format: %s"
msgstr "неправилен формат на дата: %s"
+#: list-objects-filter-options.c:30
+msgid "multiple object filter types cannot be combined"
+msgstr "не може да комбинирате филтри по различен вид обекти"
+
+#: list-objects-filter-options.c:41 list-objects-filter-options.c:68
+#, c-format
+msgid "invalid filter-spec expression '%s'"
+msgstr "указан е неправилен израз за филтър: „%s“"
+
#: lockfile.c:151
#, c-format
msgid ""
@@ -2166,12 +2189,12 @@ msgstr ""
msgid "Unable to create '%s.lock': %s"
msgstr "Файлът-ключалка „%s.lock“ не може да бъде създаден: %s"
-#: merge.c:41
+#: merge.c:74
msgid "failed to read the cache"
msgstr "кешът не може да бъде прочетен"
-#: merge.c:96 builtin/am.c:1978 builtin/am.c:2013 builtin/checkout.c:380
-#: builtin/checkout.c:595 builtin/clone.c:754
+#: merge.c:128 builtin/am.c:1943 builtin/am.c:1977 builtin/checkout.c:379
+#: builtin/checkout.c:600 builtin/clone.c:754
msgid "unable to write new index file"
msgstr "неуспешно записване на новия индекс"
@@ -2370,7 +2393,7 @@ msgstr "Прескачане на „%s“ (слетият резултат е
msgid "Auto-merging %s"
msgstr "Автоматично сливане на „%s“"
-#: merge-recursive.c:1775 git-submodule.sh:944
+#: merge-recursive.c:1775 git-submodule.sh:932
msgid "submodule"
msgstr "ПОДМОДУЛ"
@@ -2392,48 +2415,54 @@ msgstr "файл/директория"
msgid "directory/file"
msgstr "директория/файл"
-#: merge-recursive.c:1908
+#: merge-recursive.c:1909
#, c-format
msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
msgstr ""
"КОНФЛИКТ (%s): Съществува директория на име „%s“ в „%s“. Добавяне на „%s“ "
"като „%s“"
-#: merge-recursive.c:1917
+#: merge-recursive.c:1918
#, c-format
msgid "Adding %s"
msgstr "Добавяне на „%s“"
-#: merge-recursive.c:1954
+#: merge-recursive.c:1958
+#, c-format
+msgid "Dirty index: cannot merge (dirty: %s)"
+msgstr ""
+"Индексът не е чист: кръпките не могат да бъдат приложени (замърсени са: %s)"
+
+#: merge-recursive.c:1962
msgid "Already up to date!"
msgstr "Вече е обновено!"
-#: merge-recursive.c:1963
+#: merge-recursive.c:1971
#, c-format
msgid "merging of trees %s and %s failed"
msgstr "неуспешно сливане на дърветата „%s“ и „%s“"
-#: merge-recursive.c:2060
+#: merge-recursive.c:2068
msgid "Merging:"
msgstr "Сливане:"
-#: merge-recursive.c:2073
+#: merge-recursive.c:2081
#, c-format
msgid "found %u common ancestor:"
msgid_plural "found %u common ancestors:"
msgstr[0] "открит е %u общ предшественик:"
msgstr[1] "открити са %u общи предшественици:"
-#: merge-recursive.c:2112
+#: merge-recursive.c:2120
msgid "merge returned no commit"
msgstr "сливането не върна подаване"
-#: merge-recursive.c:2175
+#: merge-recursive.c:2183
#, c-format
msgid "Could not parse object '%s'"
msgstr "Неуспешен анализ на обекта „%s“"
-#: merge-recursive.c:2189 builtin/merge.c:655 builtin/merge.c:814
+#: merge-recursive.c:2197 builtin/merge.c:656 builtin/merge.c:815
msgid "Unable to write index."
msgstr "Индексът не може да бъде прочетен"
@@ -2614,16 +2643,7 @@ msgstr "„%s“ (клавиш: „%c“)"
msgid "%s: pathspec magic not supported by this command: %s"
msgstr "%s: магическите пътища не се поддържат от командата „%s“"
-#: pathspec.c:571
-msgid ""
-"empty strings as pathspecs will be made invalid in upcoming releases. please "
-"use . instead if you meant to match all paths"
-msgstr ""
-"възможно е празните низове да се окажат неправилни шаблони за пътища в "
-"следващи версии на Git. Ако искате съвпадение с всички пътища, използвайте: "
-"„.“"
-
-#: pathspec.c:595
+#: pathspec.c:592
#, c-format
msgid "pathspec '%s' is beyond a symbolic link"
msgstr "пътят „%s“ е след символна връзка"
@@ -2632,7 +2652,7 @@ msgstr "пътят „%s“ е след символна връзка"
msgid "unable to parse --pretty format"
msgstr "аргументът към опцията „--pretty“ не може да се анализира"
-#: read-cache.c:1443
+#: read-cache.c:1472
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
@@ -2641,7 +2661,7 @@ msgstr ""
"Зададена е неправилна стойност на настройката „index.version“.\n"
"Ще се ползва версия %i"
-#: read-cache.c:1453
+#: read-cache.c:1482
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
@@ -2651,52 +2671,52 @@ msgstr ""
"„GIT_INDEX_VERSION“.\n"
"Ще се ползва версия %i"
-#: read-cache.c:2316 builtin/merge.c:1046
+#: read-cache.c:2370 sequencer.c:2731 wrapper.c:658 builtin/merge.c:1048
#, c-format
msgid "could not close '%s'"
msgstr "„%s“ не може да се затвори"
-#: read-cache.c:2394 sequencer.c:1355 sequencer.c:2077
+#: read-cache.c:2442 sequencer.c:1369 sequencer.c:2096
#, c-format
msgid "could not stat '%s'"
msgstr "неуспешно изпълнение на „stat“ върху „%s“"
-#: read-cache.c:2407
+#: read-cache.c:2455
#, c-format
msgid "unable to open git dir: %s"
msgstr "не може да се отвори директорията на git: %s"
-#: read-cache.c:2419
+#: read-cache.c:2467
#, c-format
msgid "unable to unlink: %s"
msgstr "неуспешно изтриване на „%s“"
-#: refs.c:638
+#: refs.c:706
#, c-format
msgid "Could not open '%s' for writing"
msgstr "„%s“ не може да бъде отворен за запис"
-#: refs.c:1779
+#: refs.c:1850
msgid "ref updates forbidden inside quarantine environment"
msgstr "обновяванията на указатели са забранени в среди под карантина"
-#: refs/files-backend.c:1136
+#: refs/files-backend.c:1189
#, c-format
msgid "could not remove reference %s"
msgstr "Указателят „%s“ не може да бъде изтрит"
-#: refs/files-backend.c:1150 refs/packed-backend.c:1430
-#: refs/packed-backend.c:1440
+#: refs/files-backend.c:1203 refs/packed-backend.c:1524
+#: refs/packed-backend.c:1534
#, c-format
msgid "could not delete reference %s: %s"
msgstr "Указателят „%s“ не може да бъде изтрит: %s"
-#: refs/files-backend.c:1153 refs/packed-backend.c:1443
+#: refs/files-backend.c:1206 refs/packed-backend.c:1537
#, c-format
msgid "could not delete references: %s"
msgstr "Указателите не може да бъдат изтрити: %s"
-#: ref-filter.c:35 wt-status.c:1811
+#: ref-filter.c:35 wt-status.c:1816
msgid "gone"
msgstr "изтрит"
@@ -2715,157 +2735,157 @@ msgstr "назад с %d"
msgid "ahead %d, behind %d"
msgstr "напред с %d, назад с %d"
-#: ref-filter.c:104
+#: ref-filter.c:107
#, c-format
msgid "expected format: %%(color:<color>)"
msgstr "очакван формат: %%(color:ЦВЯТ)"
-#: ref-filter.c:106
+#: ref-filter.c:109
#, c-format
msgid "unrecognized color: %%(color:%s)"
msgstr "непознат цвят: %%(color:%s)"
-#: ref-filter.c:126
+#: ref-filter.c:129
#, c-format
msgid "Integer value expected refname:lstrip=%s"
msgstr "очаква се цяло число за „refname:lstrip=%s“"
-#: ref-filter.c:130
+#: ref-filter.c:133
#, c-format
msgid "Integer value expected refname:rstrip=%s"
msgstr "очаква се цяло число за „refname:rstrip=%s“"
-#: ref-filter.c:132
+#: ref-filter.c:135
#, c-format
msgid "unrecognized %%(%s) argument: %s"
msgstr "непознат аргумент за „%%(%s)“: %s"
-#: ref-filter.c:172
+#: ref-filter.c:184
#, c-format
msgid "%%(body) does not take arguments"
msgstr "%%(body) не приема аргументи"
-#: ref-filter.c:179
+#: ref-filter.c:191
#, c-format
msgid "%%(subject) does not take arguments"
msgstr "%%(subject) не приема аргументи"
-#: ref-filter.c:186
+#: ref-filter.c:209
#, c-format
-msgid "%%(trailers) does not take arguments"
-msgstr "%%(trailers) не приема аргументи"
+msgid "unknown %%(trailers) argument: %s"
+msgstr "непознат аргумент „%%(trailers)“: %s"
-#: ref-filter.c:205
+#: ref-filter.c:232
#, c-format
msgid "positive value expected contents:lines=%s"
msgstr "очаква се положителна стойност за „contents:lines=%s“"
-#: ref-filter.c:207
+#: ref-filter.c:234
#, c-format
msgid "unrecognized %%(contents) argument: %s"
msgstr "непознат аргумент за %%(contents): %s"
-#: ref-filter.c:220
+#: ref-filter.c:247
#, c-format
msgid "positive value expected objectname:short=%s"
msgstr "очаква се положителна стойност за „objectname:short=%s“"
-#: ref-filter.c:224
+#: ref-filter.c:251
#, c-format
msgid "unrecognized %%(objectname) argument: %s"
msgstr "непознат аргумент за %%(objectname): %s"
-#: ref-filter.c:251
+#: ref-filter.c:278
#, c-format
msgid "expected format: %%(align:<width>,<position>)"
msgstr "очакван формат: %%(align:ШИРОЧИНА,ПОЗИЦИЯ)"
-#: ref-filter.c:263
+#: ref-filter.c:290
#, c-format
msgid "unrecognized position:%s"
msgstr "непозната позиция: %s"
-#: ref-filter.c:267
+#: ref-filter.c:294
#, c-format
msgid "unrecognized width:%s"
msgstr "непозната широчина: %s"
-#: ref-filter.c:273
+#: ref-filter.c:300
#, c-format
msgid "unrecognized %%(align) argument: %s"
msgstr "непознат аргумент за %%(align): %s"
-#: ref-filter.c:277
+#: ref-filter.c:304
#, c-format
msgid "positive width expected with the %%(align) atom"
msgstr "очаква се положителна широчина с лексемата „%%(align)“"
-#: ref-filter.c:292
+#: ref-filter.c:319
#, c-format
msgid "unrecognized %%(if) argument: %s"
msgstr "непознат аргумент за „%%(if)“: %s"
-#: ref-filter.c:382
+#: ref-filter.c:409
#, c-format
msgid "malformed field name: %.*s"
msgstr "неправилно име на обект: „%.*s“"
-#: ref-filter.c:408
+#: ref-filter.c:435
#, c-format
msgid "unknown field name: %.*s"
msgstr "непознато име на обект: „%.*s“"
-#: ref-filter.c:520
+#: ref-filter.c:547
#, c-format
msgid "format: %%(if) atom used without a %%(then) atom"
msgstr "формат: лексемата %%(if) е използвана без съответната ѝ %%(then)"
-#: ref-filter.c:580
+#: ref-filter.c:607
#, c-format
msgid "format: %%(then) atom used without an %%(if) atom"
msgstr "формат: лексемата %%(then) е използвана без съответната ѝ %%(if)"
-#: ref-filter.c:582
+#: ref-filter.c:609
#, c-format
msgid "format: %%(then) atom used more than once"
msgstr "формат: лексемата %%(then) е използвана повече от един път"
-#: ref-filter.c:584
+#: ref-filter.c:611
#, c-format
msgid "format: %%(then) atom used after %%(else)"
msgstr "формат: лексемата %%(then) е използвана след %%(else)"
-#: ref-filter.c:610
+#: ref-filter.c:637
#, c-format
msgid "format: %%(else) atom used without an %%(if) atom"
msgstr "формат: лексемата %%(else) е използвана без съответната ѝ %%(if)"
-#: ref-filter.c:612
+#: ref-filter.c:639
#, c-format
msgid "format: %%(else) atom used without a %%(then) atom"
msgstr "формат: лексемата %%(else) е използвана без съответната ѝ %%(then)"
-#: ref-filter.c:614
+#: ref-filter.c:641
#, c-format
msgid "format: %%(else) atom used more than once"
msgstr "формат: лексемата %%(else) е използвана повече от един път"
-#: ref-filter.c:627
+#: ref-filter.c:654
#, c-format
msgid "format: %%(end) atom used without corresponding atom"
msgstr "формат: лексемата %%(end) е използвана без съответната ѝ"
-#: ref-filter.c:682
+#: ref-filter.c:709
#, c-format
msgid "malformed format string %s"
msgstr "неправилен форматиращ низ „%s“"
-#: ref-filter.c:1268
+#: ref-filter.c:1313
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(извън клон, пребазиране на „%s“)"
-#: ref-filter.c:1271
+#: ref-filter.c:1316
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(извън клон, двоично търсене от „%s“)"
@@ -2873,7 +2893,7 @@ msgstr "(извън клон, двоично търсене от „%s“)"
#. TRANSLATORS: make sure this matches "HEAD
#. detached at " in wt-status.c
#.
-#: ref-filter.c:1279
+#: ref-filter.c:1324
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(Указателят „HEAD“ не е свързан и е при „%s“)"
@@ -2881,139 +2901,139 @@ msgstr "(Указателят „HEAD“ не е свързан и е при „
#. TRANSLATORS: make sure this matches "HEAD
#. detached from " in wt-status.c
#.
-#: ref-filter.c:1286
+#: ref-filter.c:1331
#, c-format
msgid "(HEAD detached from %s)"
msgstr "Указателят „HEAD“ не е свързан и е отделѐн от „%s“"
-#: ref-filter.c:1290
+#: ref-filter.c:1335
msgid "(no branch)"
msgstr "(извън клон)"
-#: ref-filter.c:1439 ref-filter.c:1470
+#: ref-filter.c:1488 ref-filter.c:1519
#, c-format
msgid "missing object %s for %s"
msgstr "обектът „%s“ липсва за „%s“"
-#: ref-filter.c:1442 ref-filter.c:1473
+#: ref-filter.c:1491 ref-filter.c:1522
#, c-format
msgid "parse_object_buffer failed on %s for %s"
msgstr "неуспешно анализиране чрез „parse_object_buffer“ на „%s“ за „%s“"
-#: ref-filter.c:1773
+#: ref-filter.c:1822
#, c-format
msgid "malformed object at '%s'"
msgstr "обект със сгрешен формат при „%s“"
-#: ref-filter.c:1840
+#: ref-filter.c:1889
#, c-format
msgid "ignoring ref with broken name %s"
msgstr "игнориране на указателя с грешно име „%s“"
-#: ref-filter.c:1845
+#: ref-filter.c:1894
#, c-format
msgid "ignoring broken ref %s"
msgstr "игнориране на повредения указател „%s“"
-#: ref-filter.c:2107
+#: ref-filter.c:2156
#, c-format
msgid "format: %%(end) atom missing"
msgstr "грешка във форма̀та: липсва лексемата %%(end)"
-#: ref-filter.c:2201
+#: ref-filter.c:2250
#, c-format
msgid "malformed object name %s"
msgstr "неправилно име на обект „%s“"
-#: remote.c:750
+#: remote.c:780
#, c-format
msgid "Cannot fetch both %s and %s to %s"
msgstr "Невъзможно е да се доставят едновременно и „%s“, и „%s“ към „%s“"
-#: remote.c:754
+#: remote.c:784
#, c-format
msgid "%s usually tracks %s, not %s"
msgstr "„%s“ обикновено следи „%s“, а не „%s“"
-#: remote.c:758
+#: remote.c:788
#, c-format
msgid "%s tracks both %s and %s"
msgstr "„%s“ следи както „%s“, така и „%s“"
-#: remote.c:766
+#: remote.c:796
msgid "Internal error"
msgstr "Вътрешна грешка"
-#: remote.c:1681 remote.c:1783
+#: remote.c:1711 remote.c:1813
msgid "HEAD does not point to a branch"
msgstr "Указателят „HEAD“ не сочи към клон"
-#: remote.c:1690
+#: remote.c:1720
#, c-format
msgid "no such branch: '%s'"
msgstr "няма клон на име „%s“"
-#: remote.c:1693
+#: remote.c:1723
#, c-format
msgid "no upstream configured for branch '%s'"
msgstr "не е зададен клон-източник за клона „%s“"
-#: remote.c:1699
+#: remote.c:1729
#, c-format
msgid "upstream branch '%s' not stored as a remote-tracking branch"
msgstr "клонът-източник „%s“ не е съхранен като следящ клон"
-#: remote.c:1714
+#: remote.c:1744
#, c-format
msgid "push destination '%s' on remote '%s' has no local tracking branch"
msgstr ""
"липсва локален следящ клон за местоположението за изтласкване „%s“ в "
"хранилището „%s“"
-#: remote.c:1726
+#: remote.c:1756
#, c-format
msgid "branch '%s' has no remote for pushing"
msgstr "няма информация клонът „%s“ да следи някой друг"
-#: remote.c:1737
+#: remote.c:1767
#, c-format
msgid "push refspecs for '%s' do not include '%s'"
msgstr "указателят за изтласкване на „%s“ не включва „%s“"
-#: remote.c:1750
+#: remote.c:1780
msgid "push has no destination (push.default is 'nothing')"
msgstr "указателят за изтласкване не включва цел („push.default“ е „nothing“)"
-#: remote.c:1772
+#: remote.c:1802
msgid "cannot resolve 'simple' push to a single destination"
msgstr "простото (simple) изтласкване не съответства на една цел"
-#: remote.c:2076
+#: remote.c:2106
#, c-format
msgid "Your branch is based on '%s', but the upstream is gone.\n"
msgstr "Този клон следи „%s“, но следеният клон е изтрит.\n"
-#: remote.c:2080
+#: remote.c:2110
msgid " (use \"git branch --unset-upstream\" to fixup)\n"
msgstr " (за да коригирате това, използвайте „git branch --unset-upstream“)\n"
-#: remote.c:2083
+#: remote.c:2113
#, c-format
msgid "Your branch is up to date with '%s'.\n"
msgstr "Клонът е актуализиран към „%s“.\n"
-#: remote.c:2087
+#: remote.c:2117
#, 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] "Клонът ви е с %2$d подаване пред „%1$s“.\n"
msgstr[1] "Клонът ви е с %2$d подавания пред „%1$s“.\n"
-#: remote.c:2093
+#: remote.c:2123
msgid " (use \"git push\" to publish your local commits)\n"
msgstr " (публикувайте локалните си промени чрез „git push“)\n"
-#: remote.c:2096
+#: remote.c:2126
#, c-format
msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
msgid_plural ""
@@ -3021,11 +3041,11 @@ msgid_plural ""
msgstr[0] "Клонът ви е с %2$d подаване зад „%1$s“ и може да бъде превъртян.\n"
msgstr[1] "Клонът ви е с %2$d подавания зад „%1$s“ и може да бъде превъртян.\n"
-#: remote.c:2104
+#: remote.c:2134
msgid " (use \"git pull\" to update your local branch)\n"
msgstr " (обновете локалния си клон чрез „git pull“)\n"
-#: remote.c:2107
+#: remote.c:2137
#, c-format
msgid ""
"Your branch and '%s' have diverged,\n"
@@ -3040,47 +3060,57 @@ msgstr[1] ""
"Текущият клон се е отделил от „%s“,\n"
"двата имат съответно по %d и %d несъвпадащи подавания.\n"
-#: remote.c:2117
+#: remote.c:2147
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (слейте отдалечения клон в локалния чрез „git pull“)\n"
-#: revision.c:2256
+#: revision.c:2268
msgid "your current branch appears to be broken"
msgstr "Текущият клон е повреден"
-#: revision.c:2259
+#: revision.c:2271
#, c-format
msgid "your current branch '%s' does not have any commits yet"
msgstr "Текущият клон „%s“ е без подавания "
-#: revision.c:2453
+#: revision.c:2465
msgid "--first-parent is incompatible with --bisect"
msgstr "опциите „--first-parent“ и „--bisect“ са несъвместими"
-#: run-command.c:644
+#: run-command.c:645
msgid "open /dev/null failed"
msgstr "неуспешно отваряне на „/dev/null“"
-#: send-pack.c:151
+#: run-command.c:1188
+#, c-format
+msgid ""
+"The '%s' hook was ignored because it's not set as executable.\n"
+"You can disable this warning with `git config advice.ignoredHook false`."
+msgstr ""
+"Куката „%s“ се прескача, защото липсват права за изпълнение.\n"
+"За да изключите това предупреждение, изпълнете:\n"
+" git config advice.ignoredHook false"
+
+#: send-pack.c:141
#, c-format
msgid "unable to parse remote unpack status: %s"
msgstr ""
"състоянието от отдалеченото разпакетиране не може да бъде анализирано: %s"
-#: send-pack.c:153
+#: send-pack.c:143
#, c-format
msgid "remote unpack failed: %s"
msgstr "неуспешно отдалечено разпакетиране: %s"
-#: send-pack.c:316
+#: send-pack.c:306
msgid "failed to sign the push certificate"
msgstr "сертификатът за изтласкване не може да бъде подписан"
-#: send-pack.c:429
+#: send-pack.c:419
msgid "the receiving end does not support --signed push"
msgstr "отсрещната страна не поддържа изтласкване с опцията „--signed“"
-#: send-pack.c:431
+#: send-pack.c:421
msgid ""
"not sending a push certificate since the receiving end does not support --"
"signed push"
@@ -3088,11 +3118,11 @@ msgstr ""
"отсрещната страна не поддържа изтласкване с опцията „--signed“, затова не се "
"използва сертификат"
-#: send-pack.c:443
+#: send-pack.c:433
msgid "the receiving end does not support --atomic push"
msgstr "получаващата страна не поддържа изтласкване с опцията „--atomic“"
-#: send-pack.c:448
+#: send-pack.c:438
msgid "the receiving end does not support push options"
msgstr "отсрещната страна не поддържа опции при изтласкване"
@@ -3131,13 +3161,13 @@ msgstr ""
"пътища с „git add ПЪТ…“ или „git rm ПЪТ…“, след което\n"
"подайте резултата с командата „git commit'“."
-#: sequencer.c:297 sequencer.c:1704
+#: sequencer.c:297 sequencer.c:1718
#, c-format
msgid "could not lock '%s'"
msgstr "„%s“ не може да се заключи"
-#: sequencer.c:300 sequencer.c:1581 sequencer.c:1709 sequencer.c:1723
-#: sequencer.c:2733 sequencer.c:2749
+#: sequencer.c:300 sequencer.c:1595 sequencer.c:1723 sequencer.c:1737
+#: sequencer.c:2729 sequencer.c:2800 wrapper.c:656
#, c-format
msgid "could not write to '%s'"
msgstr "в „%s“ не може да се пише"
@@ -3147,13 +3177,13 @@ msgstr "в „%s“ не може да се пише"
msgid "could not write eol to '%s'"
msgstr "краят на ред не може да се запише в „%s“"
-#: sequencer.c:308 sequencer.c:1586 sequencer.c:1711
+#: sequencer.c:308 sequencer.c:1600 sequencer.c:1725
#, c-format
msgid "failed to finalize '%s'."
msgstr "„%s“ не може да се завърши."
-#: sequencer.c:332 sequencer.c:819 sequencer.c:1607 builtin/am.c:259
-#: builtin/commit.c:754 builtin/merge.c:1044
+#: sequencer.c:332 sequencer.c:829 sequencer.c:1621 builtin/am.c:259
+#: builtin/commit.c:754 builtin/merge.c:1046
#, c-format
msgid "could not read '%s'"
msgstr "файлът „%s“ не може да бъде прочетен"
@@ -3175,20 +3205,20 @@ msgstr "%s: превъртане"
#. TRANSLATORS: %s will be "revert", "cherry-pick" or
#. "rebase -i".
#.
-#: sequencer.c:474
+#: sequencer.c:477
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: новият индекс не може да бъде запазен"
-#: sequencer.c:493
-msgid "could not resolve HEAD commit\n"
-msgstr "подаването сочено от указателя „HEAD“ не може да бъде открито\n"
+#: sequencer.c:496
+msgid "could not resolve HEAD commit"
+msgstr "подаването, сочено от указателя „HEAD“, не може да бъде открито"
-#: sequencer.c:513
-msgid "unable to update cache tree\n"
-msgstr "дървото на кеша не може да бъде обновено\n"
+#: sequencer.c:516
+msgid "unable to update cache tree"
+msgstr "дървото на кеша не може да бъде обновено"
-#: sequencer.c:597
+#: sequencer.c:600
#, c-format
msgid ""
"you have staged changes in your working tree\n"
@@ -3217,17 +3247,17 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: sequencer.c:699
+#: sequencer.c:702
#, c-format
-msgid "could not parse commit %s\n"
-msgstr "подаването „%s“ не може да бъде анализирано\n"
+msgid "could not parse commit %s"
+msgstr "подаването „%s“ не може да бъде анализирано"
-#: sequencer.c:704
+#: sequencer.c:707
#, c-format
-msgid "could not parse parent commit %s\n"
-msgstr "родителското подаване „%s“ не може да бъде анализирано\n"
+msgid "could not parse parent commit %s"
+msgstr "родителското подаване „%s“ не може да бъде анализирано"
-#: sequencer.c:826
+#: sequencer.c:836
#, c-format
msgid ""
"unexpected 1st line of squash message:\n"
@@ -3238,7 +3268,7 @@ msgstr ""
"\n"
" %.*s"
-#: sequencer.c:832
+#: sequencer.c:842
#, c-format
msgid ""
"invalid 1st line of squash message:\n"
@@ -3249,240 +3279,250 @@ msgstr ""
"\n"
" %.*s"
-#: sequencer.c:838 sequencer.c:863
+#: sequencer.c:848 sequencer.c:873
#, c-format
msgid "This is a combination of %d commits."
msgstr "Това е обединение от %d подавания"
-#: sequencer.c:847 sequencer.c:2681
+#: sequencer.c:857 sequencer.c:2748
msgid "need a HEAD to fixup"
msgstr "За смачкване ви трябва указател „HEAD“"
-#: sequencer.c:849
+#: sequencer.c:859
msgid "could not read HEAD"
msgstr "указателят „HEAD“ не може да се прочете"
-#: sequencer.c:851
+#: sequencer.c:861
msgid "could not read HEAD's commit message"
msgstr ""
"съобщението за подаване към указателя „HEAD“ не може да бъде прочетено: %s"
-#: sequencer.c:857
+#: sequencer.c:867
#, c-format
msgid "cannot write '%s'"
msgstr "„%s“ не може да се запази"
-#: sequencer.c:866 git-rebase--interactive.sh:446
+#: sequencer.c:876 git-rebase--interactive.sh:446
msgid "This is the 1st commit message:"
msgstr "Това е 1-то съобщение при подаване:"
-#: sequencer.c:874
+#: sequencer.c:884
#, c-format
msgid "could not read commit message of %s"
msgstr "съобщението за подаване към „%s“ не може да бъде прочетено"
-#: sequencer.c:881
+#: sequencer.c:891
#, c-format
msgid "This is the commit message #%d:"
msgstr "Това е съобщение при подаване №%d:"
-#: sequencer.c:886
+#: sequencer.c:896
#, c-format
msgid "The commit message #%d will be skipped:"
msgstr "Съобщение при подаване №%d ще бъде прескочено:"
-#: sequencer.c:891
+#: sequencer.c:901
#, c-format
msgid "unknown command: %d"
msgstr "непозната команда: %d"
-#: sequencer.c:957
+#: sequencer.c:967
msgid "your index file is unmerged."
msgstr "индексът не е слят."
-#: sequencer.c:975
+#: sequencer.c:986
#, c-format
msgid "commit %s is a merge but no -m option was given."
msgstr "подаването „%s“ е сливане, но не е дадена опцията „-m“"
-#: sequencer.c:983
+#: sequencer.c:994
#, c-format
msgid "commit %s does not have parent %d"
msgstr "подаването „%s“ няма родител %d"
-#: sequencer.c:987
+#: sequencer.c:998
#, c-format
msgid "mainline was specified but commit %s is not a merge."
msgstr "указано е базово подаване, но подаването „%s“ не е сливане."
-#: sequencer.c:993
+#: sequencer.c:1004
#, c-format
msgid "cannot get commit message for %s"
msgstr "неуспешно извличане на съобщението за подаване на „%s“"
#. TRANSLATORS: The first %s will be a "todo" command like
#. "revert" or "pick", the second %s a SHA1.
-#: sequencer.c:1014
+#: sequencer.c:1023
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: неразпозната стойност за родителското подаване „%s“"
-#: sequencer.c:1077 sequencer.c:1853
+#: sequencer.c:1086 sequencer.c:1867
#, c-format
msgid "could not rename '%s' to '%s'"
msgstr "„%s“ не може да се преименува на „%s“"
-#: sequencer.c:1128
+#: sequencer.c:1137
#, c-format
msgid "could not revert %s... %s"
msgstr "подаването „%s“… не може да бъде отменено: „%s“"
-#: sequencer.c:1129
+#: sequencer.c:1138
#, c-format
msgid "could not apply %s... %s"
msgstr "подаването „%s“… не може да бъде приложено: „%s“"
-#: sequencer.c:1171
+#: sequencer.c:1180
msgid "empty commit set passed"
msgstr "зададено е празно множество от подавания"
-#: sequencer.c:1181
+#: sequencer.c:1190
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: неуспешно изчитане на индекса"
-#: sequencer.c:1188
+#: sequencer.c:1196
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: неуспешно обновяване на индекса"
-#: sequencer.c:1308
+#: sequencer.c:1270
+#, c-format
+msgid "%s does not accept arguments: '%s'"
+msgstr "„%s“ не приема аргументи: „%s“"
+
+#: sequencer.c:1279
+#, c-format
+msgid "missing arguments for %s"
+msgstr "„%s“ изисква аргументи"
+
+#: sequencer.c:1322
#, c-format
msgid "invalid line %d: %.*s"
msgstr "неправилен ред %d: %.*s"
-#: sequencer.c:1316
+#: sequencer.c:1330
#, c-format
msgid "cannot '%s' without a previous commit"
msgstr "Без предишно подаване не може да се изпълни „%s“"
-#: sequencer.c:1349 sequencer.c:2503 sequencer.c:2588 sequencer.c:2614
-#: sequencer.c:2691 sequencer.c:2810 sequencer.c:2951
+#: sequencer.c:1363 sequencer.c:2525 sequencer.c:2560 sequencer.c:2642
+#: sequencer.c:2668 sequencer.c:2758 sequencer.c:2859
#, c-format
msgid "could not read '%s'."
msgstr "от „%s“ не може да се чете."
-#: sequencer.c:1361
+#: sequencer.c:1375
msgid "please fix this using 'git rebase --edit-todo'."
msgstr "коригирайте това чрез „git rebase --edit-todo“."
-#: sequencer.c:1363
+#: sequencer.c:1377
#, c-format
msgid "unusable instruction sheet: '%s'"
msgstr "неизползваем файл с описание на предстоящите действия: „%s“"
-#: sequencer.c:1368
+#: sequencer.c:1382
msgid "no commits parsed."
msgstr "никое от подаванията не може да се разпознае."
-#: sequencer.c:1379
+#: sequencer.c:1393
msgid "cannot cherry-pick during a revert."
msgstr ""
"по време на отмяна на подаване не може да се извърши отбиране на подаване."
-#: sequencer.c:1381
+#: sequencer.c:1395
msgid "cannot revert during a cherry-pick."
msgstr "по време на отбиране не може да се извърши отмяна на подаване."
-#: sequencer.c:1448
+#: sequencer.c:1462
#, c-format
msgid "invalid key: %s"
msgstr "неправилен ключ: „%s“"
-#: sequencer.c:1451
+#: sequencer.c:1465
#, c-format
msgid "invalid value for %s: %s"
msgstr "неправилна стойност за „%s“: „%s“"
-#: sequencer.c:1517
+#: sequencer.c:1531
#, c-format
msgid "malformed options sheet: '%s'"
msgstr "неправилен файл с опции: „%s“"
-#: sequencer.c:1555
+#: sequencer.c:1569
msgid "a cherry-pick or revert is already in progress"
msgstr ""
"в момента вече се извършва отбиране на подавания или пребазиране на клона"
-#: sequencer.c:1556
+#: sequencer.c:1570
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "използвайте „git cherry-pick (--continue | --quit | --abort)“"
-#: sequencer.c:1559
+#: sequencer.c:1573
#, c-format
msgid "could not create sequencer directory '%s'"
msgstr "директорията за секвенсора „%s“ не може да бъде създадена"
-#: sequencer.c:1574
+#: sequencer.c:1588
msgid "could not lock HEAD"
msgstr "указателят „HEAD“ не може да се заключи"
-#: sequencer.c:1632 sequencer.c:2211
+#: sequencer.c:1646 sequencer.c:2230
msgid "no cherry-pick or revert in progress"
msgstr ""
"в момента не се извършва отбиране на подавания или пребазиране на клона"
-#: sequencer.c:1634
+#: sequencer.c:1648
msgid "cannot resolve HEAD"
msgstr "Подаването сочено от указателя „HEAD“ не може да бъде открито"
-#: sequencer.c:1636 sequencer.c:1671
+#: sequencer.c:1650 sequencer.c:1685
msgid "cannot abort from a branch yet to be born"
msgstr ""
"действието не може да бъде преустановено, когато сте на клон, който тепърва "
"предстои да бъде създаден"
-#: sequencer.c:1657 builtin/grep.c:711
+#: sequencer.c:1671 builtin/grep.c:713
#, c-format
msgid "cannot open '%s'"
msgstr "„%s“ не може да бъде отворен"
-#: sequencer.c:1659
+#: sequencer.c:1673
#, c-format
msgid "cannot read '%s': %s"
msgstr "„%s“ не може да бъде прочетен: %s"
-#: sequencer.c:1660
+#: sequencer.c:1674
msgid "unexpected end of file"
msgstr "неочакван край на файл"
-#: sequencer.c:1666
+#: sequencer.c:1680
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr ""
"запазеният преди започването на отбирането файл за указателя „HEAD“ — „%s“ е "
"повреден"
-#: sequencer.c:1677
+#: sequencer.c:1691
msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!"
msgstr ""
"Изглежда указателят „HEAD“ е променен. Проверете към какво сочи.\n"
"Не се правят промени."
-#: sequencer.c:1818 sequencer.c:2109
+#: sequencer.c:1832 sequencer.c:2128
msgid "cannot read HEAD"
msgstr "указателят „HEAD“ не може да бъде прочетен"
-#: sequencer.c:1858 builtin/difftool.c:640
+#: sequencer.c:1872 builtin/difftool.c:639
#, c-format
msgid "could not copy '%s' to '%s'"
msgstr "„%s“ не може да се копира като „%s“"
-#: sequencer.c:1874
+#: sequencer.c:1891
msgid "could not read index"
msgstr "индексът не може да бъде прочетен"
-#: sequencer.c:1879
+#: sequencer.c:1896
#, c-format
msgid ""
"execution failed: %s\n"
@@ -3497,11 +3537,11 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:1885
+#: sequencer.c:1902
msgid "and made changes to the index and/or the working tree\n"
msgstr "и промени индекса и/или работното дърво\n"
-#: sequencer.c:1891
+#: sequencer.c:1908
#, c-format
msgid ""
"execution succeeded: %s\n"
@@ -3518,17 +3558,17 @@ msgstr ""
" git rebase --continue\n"
"\n"
-#: sequencer.c:1948
+#: sequencer.c:1967
#, c-format
msgid "Applied autostash.\n"
msgstr "Автоматично скатаното е приложено.\n"
-#: sequencer.c:1960
+#: sequencer.c:1979
#, c-format
msgid "cannot store %s"
msgstr "„%s“ не може да бъде запазен"
-#: sequencer.c:1963 git-rebase.sh:175
+#: sequencer.c:1982 git-rebase.sh:175
#, c-format
msgid ""
"Applying autostash resulted in conflicts.\n"
@@ -3539,57 +3579,57 @@ msgstr ""
"надеждно скатани. Можете да пробвате да ги приложите чрез „git stash pop“\n"
"или да ги изхвърлите чрез „git stash drop“, когато поискате.\n"
-#: sequencer.c:2045
+#: sequencer.c:2064
#, c-format
msgid "Stopped at %s... %.*s\n"
msgstr "Спиране при „%s“… %.*s\n"
-#: sequencer.c:2087
+#: sequencer.c:2106
#, c-format
msgid "unknown command %d"
msgstr "непозната команда %d"
-#: sequencer.c:2117
+#: sequencer.c:2136
msgid "could not read orig-head"
msgstr "указателят за „orig-head“ не може да се прочете"
-#: sequencer.c:2122 sequencer.c:2678
+#: sequencer.c:2141 sequencer.c:2745
msgid "could not read 'onto'"
msgstr "указателят за „onto“ не може да се прочете"
-#: sequencer.c:2129
+#: sequencer.c:2148
#, c-format
msgid "could not update %s"
msgstr "„%s“ не може да се обнови"
-#: sequencer.c:2136
+#: sequencer.c:2155
#, c-format
msgid "could not update HEAD to %s"
msgstr "„HEAD“ не може да бъде обновен до „%s“"
-#: sequencer.c:2220
+#: sequencer.c:2239
msgid "cannot rebase: You have unstaged changes."
msgstr "не може да пребазирате, защото има промени, които не са в индекса."
-#: sequencer.c:2225
+#: sequencer.c:2244
msgid "could not remove CHERRY_PICK_HEAD"
msgstr "указателят „CHERRY_PICK_HEAD“ не може да бъде изтрит"
-#: sequencer.c:2234
+#: sequencer.c:2253
msgid "cannot amend non-existing commit"
msgstr "несъществуващо подаване не може да се поправи"
-#: sequencer.c:2236
+#: sequencer.c:2255
#, c-format
msgid "invalid file: '%s'"
msgstr "неправилен файл: „%s“"
-#: sequencer.c:2238
+#: sequencer.c:2257
#, c-format
msgid "invalid contents: '%s'"
msgstr "неправилно съдържание: „%s“"
-#: sequencer.c:2241
+#: sequencer.c:2260
msgid ""
"\n"
"You have uncommitted changes in your working tree. Please, commit them\n"
@@ -3599,50 +3639,46 @@ msgstr ""
"В работното дърво има неподадени промени. Първо ги подайте, а след това\n"
"отново изпълнете „git rebase --continue“."
-#: sequencer.c:2251
+#: sequencer.c:2270
msgid "could not commit staged changes."
msgstr "промените в индекса не могат да бъдат подадени."
-#: sequencer.c:2331
+#: sequencer.c:2350
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: не може да се отбере „%s“"
-#: sequencer.c:2335
+#: sequencer.c:2354
#, c-format
msgid "%s: bad revision"
msgstr "%s: неправилна версия"
-#: sequencer.c:2368
+#: sequencer.c:2387
msgid "can't revert as initial commit"
msgstr "първоначалното подаване не може да бъде отменено"
-#: sequencer.c:2471
+#: sequencer.c:2492
msgid "make_script: unhandled options"
msgstr "make_script: неподдържани опции"
-#: sequencer.c:2474
+#: sequencer.c:2495
msgid "make_script: error preparing revisions"
msgstr "make_script: грешка при подготовката на версии"
-#: sequencer.c:2510
+#: sequencer.c:2529 sequencer.c:2564
#, c-format
msgid "unusable todo list: '%s'"
msgstr "неуспешно изтриване на списъка за изпълнение: „%s“"
-#: sequencer.c:2516
+#: sequencer.c:2615
#, c-format
-msgid "unable to open '%s' for writing"
-msgstr "„%s“ не може да бъде отворен за запис"
-
-#: sequencer.c:2561
-#, c-format
-msgid "unrecognized setting %s for optionrebase.missingCommitsCheck. Ignoring."
+msgid ""
+"unrecognized setting %s for option rebase.missingCommitsCheck. Ignoring."
msgstr ""
-"Непозната стойност „%s“ за настройката „optionrebase.missingCommitsCheck“. "
+"Непозната стойност „%s“ за настройката „rebase.missingCommitsCheck“. "
"Настройката се прескача."
-#: sequencer.c:2641
+#: sequencer.c:2695
#, c-format
msgid ""
"Warning: some commits may have been dropped accidentally.\n"
@@ -3651,7 +3687,7 @@ msgstr ""
"Предупреждение: някои подавания може да са пропуснати.\n"
"Пропуснати подавания (новите са най-отгоре):\n"
-#: sequencer.c:2648
+#: sequencer.c:2702
#, c-format
msgid ""
"To avoid this message, use \"drop\" to explicitly remove a commit.\n"
@@ -3668,7 +3704,7 @@ msgstr ""
"предупреждение)\n"
"или „error“ (считане за грешка).\n"
-#: sequencer.c:2660
+#: sequencer.c:2714
#, c-format
msgid ""
"You can fix this with 'git rebase --edit-todo' and then run 'git rebase --"
@@ -3679,31 +3715,21 @@ msgstr ""
"continue“ след това.\n"
"Може и да преустановите пребазирането с командата „git rebase --abort“.\n"
-#: sequencer.c:2708
-#, c-format
-msgid "could not parse commit '%s'"
-msgstr "подаването „%s“ не може да бъде анализирано"
-
-#: sequencer.c:2727 sequencer.c:2742 wrapper.c:225 wrapper.c:395
-#: builtin/am.c:775
+#: sequencer.c:2727 sequencer.c:2794 wrapper.c:225 wrapper.c:395
+#: builtin/am.c:779
#, c-format
msgid "could not open '%s' for writing"
msgstr "„%s“ не може да бъде отворен за запис"
-#: sequencer.c:2756
+#: sequencer.c:2775
#, c-format
-msgid "could not truncate '%s'"
-msgstr "неуспешно отрязване чрез „truncate“ върху „%s“"
+msgid "could not parse commit '%s'"
+msgstr "подаването „%s“ не може да бъде анализирано"
-#: sequencer.c:2848
+#: sequencer.c:2897
msgid "the script was already rearranged."
msgstr "скриптът вече е преподреден."
-#: sequencer.c:2953
-#, c-format
-msgid "could not finish '%s'"
-msgstr "„%s“ не може да се завърши"
-
#: setup.c:171
#, c-format
msgid ""
@@ -3740,36 +3766,36 @@ msgstr ""
"\n"
" git КОМАНДА [ВЕРСИЯ…] -- [ФАЙЛ…]"
-#: setup.c:499
+#: setup.c:501
#, c-format
msgid "Expected git repo version <= %d, found %d"
msgstr "Очаква се версия на хранилището на git <= %d, а не %d"
-#: setup.c:507
+#: setup.c:509
msgid "unknown repository extensions found:"
msgstr "открити са непознати разширения в хранилището:"
-#: setup.c:806
+#: setup.c:811
#, c-format
msgid "Not a git repository (or any of the parent directories): %s"
msgstr ""
"Нито тази, нито която и да е от по-горните директории, не е хранилище на "
"git: %s"
-#: setup.c:808 builtin/index-pack.c:1653
+#: setup.c:813 builtin/index-pack.c:1653
msgid "Cannot come back to cwd"
msgstr "Процесът не може да се върне към предишната работна директория"
-#: setup.c:1046
+#: setup.c:1052
msgid "Unable to read current working directory"
msgstr "Текущата работна директория не може да бъде прочетена"
-#: setup.c:1058 setup.c:1064
+#: setup.c:1064 setup.c:1070
#, c-format
msgid "Cannot change to '%s'"
msgstr "Не може да се влезе в директорията „%s“"
-#: setup.c:1077
+#: setup.c:1083
#, c-format
msgid ""
"Not a git repository (or any parent up to mount point %s)\n"
@@ -3780,7 +3806,7 @@ msgstr ""
"Git работи в рамките на една файлова система, защото променливата на средата "
"„GIT_DISCOVERY_ACROSS_FILESYSTEM“ не е зададена."
-#: setup.c:1159
+#: setup.c:1167
#, c-format
msgid ""
"Problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -3790,41 +3816,41 @@ msgstr ""
"(0%.3o).\n"
"Собственикът на файла трябва да има права за писане и четене."
-#: sha1_file.c:528
+#: sha1_file.c:598
#, c-format
msgid "path '%s' does not exist"
msgstr "пътят „%s“ не съществува."
-#: sha1_file.c:554
+#: sha1_file.c:624
#, c-format
msgid "reference repository '%s' as a linked checkout is not supported yet."
msgstr "все още не се поддържа еталонно хранилище „%s“ като свързано."
-#: sha1_file.c:560
+#: sha1_file.c:630
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "еталонното хранилище „%s“ не е локално"
-#: sha1_file.c:566
+#: sha1_file.c:636
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "еталонното хранилище „%s“ е плитко"
-#: sha1_file.c:574
+#: sha1_file.c:644
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "еталонното хранилище „%s“ е с присаждане"
-#: sha1_name.c:420
+#: sha1_name.c:422
#, c-format
msgid "short SHA1 %s is ambiguous"
msgstr "късият SHA1 „%s“ не е еднозначен"
-#: sha1_name.c:431
+#: sha1_name.c:433
msgid "The candidates are:"
msgstr "Възможностите са:"
-#: sha1_name.c:590
+#: sha1_name.c:693
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"
@@ -3840,79 +3866,79 @@ msgstr ""
"шестнадесетични знака, защото стандартно те ще бъдат прескачани.\n"
"Възможно е такива указатели да са създадени случайно. Например:\n"
"\n"
-" git checkout -b $BRANCH $(git rev-parse…)\n"
+" git checkout -b $BRANCH $(git rev-parse…)\n"
"\n"
"където стойността на променливата на средата BRANCH е празна, при което се\n"
-"създава подобен указател. Прегледайте тези указатели и ги изтрийте. Можете "
+"създава подобен указател. Прегледайте тези указатели и ги изтрийте. Можете "
"да\n"
"спрете това съобщение като изпълните командата:\n"
"„git config advice.objectNameWarning false“"
-#: submodule.c:93 submodule.c:127
+#: submodule.c:96 submodule.c:130
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr ""
"Неслетите файлове „.gitmodules“ не могат да бъдат променяни. Първо "
"коригирайте конфликтите"
-#: submodule.c:97 submodule.c:131
+#: submodule.c:100 submodule.c:134
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Във файла „.gitmodules“ липсва раздел за директория „path=%s“"
-#: submodule.c:105
+#: submodule.c:108
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr "Записът „%s“ във файла „.gitmodules“ не може да бъде променен"
-#: submodule.c:138
+#: submodule.c:141
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Записът „%s“ във файла „.gitmodules“ не може да бъде изтрит"
-#: submodule.c:149
+#: submodule.c:152
msgid "staging updated .gitmodules failed"
msgstr "неуспешно добавяне на променения файл „.gitmodules“ в индекса"
-#: submodule.c:309
+#: submodule.c:312
#, c-format
msgid "in unpopulated submodule '%s'"
msgstr "в неподготвения подмодул „%s“"
-#: submodule.c:340
+#: submodule.c:343
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
msgstr "Пътят „%s“ е в подмодула „%.*s“"
-#: submodule.c:799
+#: submodule.c:833
#, c-format
msgid "submodule entry '%s' (%s) is a %s, not a commit"
msgstr "записът за подмодула „%s“ (%s) е %s, а не подаване!"
-#: submodule.c:1021 builtin/branch.c:641 builtin/submodule--helper.c:1149
+#: submodule.c:1065 builtin/branch.c:648 builtin/submodule--helper.c:1387
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Не може да се открие към какво сочи указателят „HEAD“"
-#: submodule.c:1304
+#: submodule.c:1370
#, c-format
msgid "'%s' not recognized as a git repository"
msgstr "„%s“ не е хранилище на git"
-#: submodule.c:1442
+#: submodule.c:1508
#, c-format
msgid "could not start 'git status' in submodule '%s'"
msgstr "командата „git status“ не може да се изпълни в подмодула „%s“"
-#: submodule.c:1455
+#: submodule.c:1521
#, c-format
msgid "could not run 'git status' in submodule '%s'"
msgstr "командата „git status“ не може да се изпълни в подмодула „%s“"
-#: submodule.c:1548
+#: submodule.c:1614
#, c-format
msgid "submodule '%s' has dirty index"
msgstr "индексът на подмодула „%s“ не е чист"
-#: submodule.c:1809
+#: submodule.c:1876
#, c-format
msgid ""
"relocate_gitdir for submodule '%s' with more than one worktree not supported"
@@ -3920,18 +3946,18 @@ msgstr ""
"не се поддържа „relocate_gitdir“ за подмодула „%s“, който има повече от едно "
"работно дърво"
-#: submodule.c:1821 submodule.c:1877
+#: submodule.c:1888 submodule.c:1944
#, c-format
msgid "could not lookup name for submodule '%s'"
msgstr "името на подмодула „%s“ не може да бъде намерено"
-#: submodule.c:1825 builtin/submodule--helper.c:671
-#: builtin/submodule--helper.c:681
+#: submodule.c:1892 builtin/submodule--helper.c:909
+#: builtin/submodule--helper.c:919
#, c-format
msgid "could not create directory '%s'"
msgstr "Директорията „%s“ не може да бъде създадена"
-#: submodule.c:1828
+#: submodule.c:1895
#, c-format
msgid ""
"Migrating git directory of '%s%s' from\n"
@@ -3942,20 +3968,20 @@ msgstr ""
"„%s“ към\n"
"„%s“\n"
-#: submodule.c:1912
+#: submodule.c:1979
#, c-format
msgid "could not recurse into submodule '%s'"
msgstr "неуспешна обработка на поддиректориите в подмодула „%s“"
-#: submodule.c:1956
+#: submodule.c:2023
msgid "could not start ls-files in .."
msgstr "„ls-stat“ не може да се стартира в „..“"
-#: submodule.c:1976
+#: submodule.c:2043
msgid "BUG: returned path string doesn't match cwd?"
msgstr "ГРЕШКА: полученият низ за пътя не съвпада с върнатото от „cwd“"
-#: submodule.c:1995
+#: submodule.c:2062
#, c-format
msgid "ls-tree returned unexpected return code %d"
msgstr "„ls-tree“ завърши с неочакван изходен код: %d"
@@ -4023,17 +4049,17 @@ msgstr "временният файл не може да се отвори"
msgid "could not rename temporary file to %s"
msgstr "временният файл не може да се преименува на „%s“"
-#: transport.c:62
+#: transport.c:63
#, c-format
msgid "Would set upstream of '%s' to '%s' of '%s'\n"
msgstr "Клонът „%s“ ще следи „%s“ от „%s“\n"
-#: transport.c:151
+#: transport.c:152
#, c-format
msgid "transport: invalid depth option '%s'"
msgstr "transport: неправилна опция за дълбочина: %s"
-#: transport.c:888
+#: transport.c:904
#, c-format
msgid ""
"The following submodule paths contain changes that can\n"
@@ -4042,7 +4068,7 @@ msgstr ""
"Следните пътища за подмодули съдържат промени,\n"
"които липсват от всички отдалечени хранилища:\n"
-#: transport.c:892
+#: transport.c:908
#, c-format
msgid ""
"\n"
@@ -4067,11 +4093,11 @@ msgstr ""
" git push\n"
"\n"
-#: transport.c:900
+#: transport.c:916
msgid "Aborting."
msgstr "Преустановяване на действието."
-#: transport-helper.c:1071
+#: transport-helper.c:1074
#, c-format
msgid "Could not read ref %s"
msgstr "Указателят „%s“ не може да се прочете."
@@ -4092,7 +4118,7 @@ msgstr "празно име на файл в запис в дърво"
msgid "too-short tree file"
msgstr "прекалено кратък файл-дърво"
-#: unpack-trees.c:106
+#: unpack-trees.c:107
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -4101,7 +4127,7 @@ msgstr ""
"Изтеглянето ще презапише локалните промени на тези файлове:\n"
"%%sПодайте или скатайте промените, за да преминете към нов клон."
-#: unpack-trees.c:108
+#: unpack-trees.c:109
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by checkout:\n"
@@ -4110,7 +4136,7 @@ msgstr ""
"Изтеглянето ще презапише локалните промени на тези файлове:\n"
"%%s"
-#: unpack-trees.c:111
+#: unpack-trees.c:112
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -4119,7 +4145,7 @@ msgstr ""
"Сливането ще презапише локалните промени на тези файлове:\n"
"%%sПодайте или скатайте промените, за да слеете."
-#: unpack-trees.c:113
+#: unpack-trees.c:114
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by merge:\n"
@@ -4128,7 +4154,7 @@ msgstr ""
"Сливането ще презапише локалните промени на тези файлове:\n"
"%%s"
-#: unpack-trees.c:116
+#: unpack-trees.c:117
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -4137,7 +4163,7 @@ msgstr ""
"„%s“ ще презапише локалните промени на тези файлове:\n"
"%%sПодайте или скатайте промените, за да извършите „%s“."
-#: unpack-trees.c:118
+#: unpack-trees.c:119
#, c-format
msgid ""
"Your local changes to the following files would be overwritten by %s:\n"
@@ -4146,7 +4172,7 @@ msgstr ""
"„%s“ ще презапише локалните промени на тези файлове:\n"
"%%s"
-#: unpack-trees.c:123
+#: unpack-trees.c:124
#, c-format
msgid ""
"Updating the following directories would lose untracked files in them:\n"
@@ -4155,7 +4181,7 @@ msgstr ""
"Обновяването на следните директории ще изтрие неследените файлове в тях:\n"
"%s"
-#: unpack-trees.c:127
+#: unpack-trees.c:128
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -4164,7 +4190,7 @@ msgstr ""
"Изтеглянето ще изтрие тези неследени файлове в работното дърво:\n"
"%%sПреместете ги или ги изтрийте, за да преминете на друг клон."
-#: unpack-trees.c:129
+#: unpack-trees.c:130
#, c-format
msgid ""
"The following untracked working tree files would be removed by checkout:\n"
@@ -4173,7 +4199,7 @@ msgstr ""
"Изтеглянето ще изтрие тези неследени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:132
+#: unpack-trees.c:133
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -4182,7 +4208,7 @@ msgstr ""
"Сливането ще изтрие тези неследени файлове в работното дърво:\n"
"%%sПреместете ги или ги изтрийте, за да слеете."
-#: unpack-trees.c:134
+#: unpack-trees.c:135
#, c-format
msgid ""
"The following untracked working tree files would be removed by merge:\n"
@@ -4191,7 +4217,7 @@ msgstr ""
"Сливането ще изтрие тези неследени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:137
+#: unpack-trees.c:138
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -4200,7 +4226,7 @@ msgstr ""
"„%s“ ще изтрие тези неследени файлове в работното дърво:\n"
"%%sПреместете ги или ги изтрийте, за да извършите „%s“."
-#: unpack-trees.c:139
+#: unpack-trees.c:140
#, c-format
msgid ""
"The following untracked working tree files would be removed by %s:\n"
@@ -4209,7 +4235,7 @@ msgstr ""
"„%s“ ще изтрие тези неследени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:144
+#: unpack-trees.c:145
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -4219,7 +4245,7 @@ msgstr ""
"Изтеглянето ще презапише тези неследени файлове в работното дърво:\n"
"%%sПреместете ги или ги изтрийте, за да смените клон."
-#: unpack-trees.c:146
+#: unpack-trees.c:147
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by "
@@ -4229,7 +4255,7 @@ msgstr ""
"Изтеглянето ще презапише тези неследени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:149
+#: unpack-trees.c:150
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -4238,7 +4264,7 @@ msgstr ""
"Сливането ще презапише тези неследени файлове в работното дърво:\n"
"%%sПреместете ги или ги изтрийте, за да слеете."
-#: unpack-trees.c:151
+#: unpack-trees.c:152
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by merge:\n"
@@ -4247,7 +4273,7 @@ msgstr ""
"Сливането ще презапише тези неследени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:154
+#: unpack-trees.c:155
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -4256,7 +4282,7 @@ msgstr ""
"„%s“ ще презапише тези неследени файлове в работното дърво:\n"
"%%sПреместете ги или ги изтрийте, за да извършите „%s“."
-#: unpack-trees.c:156
+#: unpack-trees.c:157
#, c-format
msgid ""
"The following untracked working tree files would be overwritten by %s:\n"
@@ -4265,12 +4291,12 @@ msgstr ""
"„%s“ ще презапише тези неследени файлове в работното дърво:\n"
"%%s"
-#: unpack-trees.c:163
+#: unpack-trees.c:164
#, c-format
msgid "Entry '%s' overlaps with '%s'. Cannot bind."
msgstr "Записът за „%s“ съвпада с този за „%s“. Не може да се присвои."
-#: unpack-trees.c:166
+#: unpack-trees.c:167
#, c-format
msgid ""
"Cannot update sparse checkout: the following entries are not up to date:\n"
@@ -4280,7 +4306,7 @@ msgstr ""
"актуални:\n"
"%s"
-#: unpack-trees.c:168
+#: unpack-trees.c:169
#, c-format
msgid ""
"The following working tree files would be overwritten by sparse checkout "
@@ -4291,7 +4317,7 @@ msgstr ""
"дърво:\n"
"%s"
-#: unpack-trees.c:170
+#: unpack-trees.c:171
#, c-format
msgid ""
"The following working tree files would be removed by sparse checkout "
@@ -4302,7 +4328,7 @@ msgstr ""
"дърво:\n"
"%s"
-#: unpack-trees.c:172
+#: unpack-trees.c:173
#, c-format
msgid ""
"Cannot update submodule:\n"
@@ -4311,12 +4337,12 @@ msgstr ""
"Подмодулът не може да бъде обновен:\n"
"„%s“"
-#: unpack-trees.c:249
+#: unpack-trees.c:250
#, c-format
msgid "Aborting\n"
msgstr "Преустановяване на действието\n"
-#: unpack-trees.c:331
+#: unpack-trees.c:332
msgid "Checking out files"
msgstr "Изтегляне на файлове"
@@ -4359,8 +4385,8 @@ msgstr "„%s“ не може да бъде прочетен"
msgid "could not open '%s' for reading and writing"
msgstr "„%s“ не може да бъде отворен и за четене, и за запис"
-#: wrapper.c:227 wrapper.c:397 builtin/am.c:320 builtin/am.c:766
-#: builtin/am.c:858 builtin/merge.c:1041
+#: wrapper.c:227 wrapper.c:397 builtin/am.c:320 builtin/am.c:770
+#: builtin/am.c:862 builtin/merge.c:1043
#, c-format
msgid "could not open '%s' for reading"
msgstr "файлът не може да бъде прочетен: „%s“"
@@ -4374,16 +4400,6 @@ msgstr "няма достъп до „%s“"
msgid "unable to get current working directory"
msgstr "текущата работна директория е недостъпна"
-#: wrapper.c:656
-#, c-format
-msgid "could not write to %s"
-msgstr "„%s“ не може да бъде записан"
-
-#: wrapper.c:658
-#, c-format
-msgid "could not close %s"
-msgstr "„%s“ не може да се затвори"
-
#: wt-status.c:150
msgid "Unmerged paths:"
msgstr "Неслети пътища:"
@@ -4414,11 +4430,11 @@ msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr ""
" (използвайте „git rm ФАЙЛ…“, за да укажете разрешаването на конфликта)"
-#: wt-status.c:198 wt-status.c:979
+#: wt-status.c:198 wt-status.c:984
msgid "Changes to be committed:"
msgstr "Промени, които ще бъдат подадени:"
-#: wt-status.c:216 wt-status.c:988
+#: wt-status.c:216 wt-status.c:993
msgid "Changes not staged for commit:"
msgstr "Промени, които не са в индекса за подаване:"
@@ -4523,22 +4539,22 @@ msgstr "променено съдържание, "
msgid "untracked content, "
msgstr "неследено съдържание, "
-#: wt-status.c:819
+#: wt-status.c:824
#, c-format
msgid "Your stash currently has %d entry"
msgid_plural "Your stash currently has %d entries"
msgstr[0] "Има %d скатаване."
msgstr[1] "Има %d скатавания."
-#: wt-status.c:851
+#: wt-status.c:856
msgid "Submodules changed but not updated:"
msgstr "Подмодулите са променени, но не са обновени:"
-#: wt-status.c:853
+#: wt-status.c:858
msgid "Submodule changes to be committed:"
msgstr "Промени в подмодулите за подаване:"
-#: wt-status.c:935
+#: wt-status.c:940
msgid ""
"Do not modify or remove the line above.\n"
"Everything below it will be ignored."
@@ -4546,241 +4562,241 @@ msgstr ""
"Не променяйте и не изтривайте горния ред.\n"
"Всичко отдолу ще бъде изтрито."
-#: wt-status.c:1048
+#: wt-status.c:1053
msgid "You have unmerged paths."
msgstr "Някои пътища не са слети."
-#: wt-status.c:1051
+#: wt-status.c:1056
msgid " (fix conflicts and run \"git commit\")"
msgstr " (коригирайте конфликтите и изпълнете „git commit“)"
-#: wt-status.c:1053
+#: wt-status.c:1058
msgid " (use \"git merge --abort\" to abort the merge)"
msgstr " (използвайте „git merge --abort“, за да преустановите сливането)"
-#: wt-status.c:1058
+#: wt-status.c:1063
msgid "All conflicts fixed but you are still merging."
msgstr "Всички конфликти са решени, но продължавате сливането."
-#: wt-status.c:1061
+#: wt-status.c:1066
msgid " (use \"git commit\" to conclude merge)"
msgstr " (използвайте „git commit“, за да завършите сливането)"
-#: wt-status.c:1071
+#: wt-status.c:1076
msgid "You are in the middle of an am session."
msgstr "В момента прилагате поредица от кръпки чрез „git am“."
-#: wt-status.c:1074
+#: wt-status.c:1079
msgid "The current patch is empty."
msgstr "Текущата кръпка е празна."
-#: wt-status.c:1078
+#: wt-status.c:1083
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (коригирайте конфликтите и изпълнете „git am --continue“)"
-#: wt-status.c:1080
+#: wt-status.c:1085
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (използвайте „git am --skip“, за да пропуснете тази кръпка)"
-#: wt-status.c:1082
+#: wt-status.c:1087
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr ""
" (използвайте „git am --abort“, за да възстановите първоначалния клон)"
-#: wt-status.c:1214
+#: wt-status.c:1219
msgid "git-rebase-todo is missing."
msgstr "„git-rebase-todo“ липсва."
-#: wt-status.c:1216
+#: wt-status.c:1221
msgid "No commands done."
msgstr "Не са изпълнени команди."
-#: wt-status.c:1219
+#: wt-status.c:1224
#, c-format
msgid "Last command done (%d command done):"
msgid_plural "Last commands done (%d commands done):"
msgstr[0] "Последна изпълнена команда (изпълнена е общо %d команда):"
msgstr[1] "Последна изпълнена команда (изпълнени са общо %d команди):"
-#: wt-status.c:1230
+#: wt-status.c:1235
#, c-format
msgid " (see more in file %s)"
msgstr " повече информация има във файла „%s“)"
-#: wt-status.c:1235
+#: wt-status.c:1240
msgid "No commands remaining."
msgstr "Не остават повече команди."
-#: wt-status.c:1238
+#: wt-status.c:1243
#, 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 команди):"
-#: wt-status.c:1246
+#: wt-status.c:1251
msgid " (use \"git rebase --edit-todo\" to view and edit)"
msgstr ""
" (използвайте „git rebase --edit-todo“, за да разгледате и редактирате)"
-#: wt-status.c:1259
+#: wt-status.c:1264
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "В момента пребазирате клона „%s“ върху „%s“."
-#: wt-status.c:1264
+#: wt-status.c:1269
msgid "You are currently rebasing."
msgstr "В момента пребазирате."
-#: wt-status.c:1278
+#: wt-status.c:1283
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (коригирайте конфликтите и използвайте „git rebase --continue“)"
-#: wt-status.c:1280
+#: wt-status.c:1285
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (използвайте „git rebase --skip“, за да пропуснете тази кръпка)"
-#: wt-status.c:1282
+#: wt-status.c:1287
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr ""
" (използвайте „git rebase --abort“, за да възстановите първоначалния клон)"
-#: wt-status.c:1288
+#: wt-status.c:1293
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (всички конфликти са коригирани: изпълнете „git rebase --continue“)"
-#: wt-status.c:1292
+#: wt-status.c:1297
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
msgstr "В момента разделяте подаване докато пребазирате клона „%s“ върху „%s“."
-#: wt-status.c:1297
+#: wt-status.c:1302
msgid "You are currently splitting a commit during a rebase."
msgstr "В момента разделяте подаване докато пребазирате."
-#: wt-status.c:1300
+#: wt-status.c:1305
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr ""
" (След като работното ви дърво стане чисто, използвайте „git rebase --"
"continue“)"
-#: wt-status.c:1304
+#: wt-status.c:1309
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr ""
"В момента редактирате подаване докато пребазирате клона „%s“ върху „%s“."
-#: wt-status.c:1309
+#: wt-status.c:1314
msgid "You are currently editing a commit during a rebase."
msgstr "В момента редактирате подаване докато пребазирате."
-#: wt-status.c:1312
+#: wt-status.c:1317
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr ""
" (използвайте „git commit --amend“, за да редактирате текущото подаване)"
-#: wt-status.c:1314
+#: wt-status.c:1319
msgid ""
" (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr ""
" (използвайте „git rebase --continue“, след като завършите промените си)"
-#: wt-status.c:1324
+#: wt-status.c:1329
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "В момента отбирате подаването „%s“."
-#: wt-status.c:1329
+#: wt-status.c:1334
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (коригирайте конфликтите и изпълнете „git cherry-pick --continue“)"
-#: wt-status.c:1332
+#: wt-status.c:1337
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr ""
" (всички конфликти са коригирани, изпълнете „git cherry-pick --continue“)"
-#: wt-status.c:1334
+#: wt-status.c:1339
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr ""
" (използвайте „git cherry-pick --abort“, за да отмените всички действия с "
"отбиране)"
-#: wt-status.c:1343
+#: wt-status.c:1348
#, c-format
msgid "You are currently reverting commit %s."
msgstr "В момента отменяте подаване „%s“."
-#: wt-status.c:1348
+#: wt-status.c:1353
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (коригирайте конфликтите и изпълнете „git revert --continue“)"
-#: wt-status.c:1351
+#: wt-status.c:1356
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (всички конфликти са коригирани, изпълнете „git revert --continue“)"
-#: wt-status.c:1353
+#: wt-status.c:1358
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr ""
" (използвайте „git revert --abort“, за да преустановите отмяната на "
"подаване)"
-#: wt-status.c:1364
+#: wt-status.c:1369
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "В момента търсите двоично, като сте стартирали от клон „%s“."
-#: wt-status.c:1368
+#: wt-status.c:1373
msgid "You are currently bisecting."
msgstr "В момента търсите двоично."
-#: wt-status.c:1371
+#: wt-status.c:1376
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr ""
" (използвайте „git bisect reset“, за да се върнете към първоначалното "
"състояние и клон)"
-#: wt-status.c:1568
+#: wt-status.c:1573
msgid "On branch "
msgstr "На клон "
-#: wt-status.c:1574
+#: wt-status.c:1579
msgid "interactive rebase in progress; onto "
msgstr "извършвате интерактивно пребазиране върху "
-#: wt-status.c:1576
+#: wt-status.c:1581
msgid "rebase in progress; onto "
msgstr "извършвате пребазиране върху "
-#: wt-status.c:1581
+#: wt-status.c:1586
msgid "HEAD detached at "
msgstr "Указателят „HEAD“ не е свързан и е при "
-#: wt-status.c:1583
+#: wt-status.c:1588
msgid "HEAD detached from "
msgstr "Указателят „HEAD“ не е свързан и е отделѐн от "
-#: wt-status.c:1586
+#: wt-status.c:1591
msgid "Not currently on any branch."
msgstr "Извън всички клони."
-#: wt-status.c:1606
+#: wt-status.c:1611
msgid "Initial commit"
msgstr "Първоначално подаване"
-#: wt-status.c:1607
+#: wt-status.c:1612
msgid "No commits yet"
msgstr "Все още липсват подавания"
-#: wt-status.c:1621
+#: wt-status.c:1626
msgid "Untracked files"
msgstr "Неследени файлове"
-#: wt-status.c:1623
+#: wt-status.c:1628
msgid "Ignored files"
msgstr "Игнорирани файлове"
-#: wt-status.c:1627
+#: wt-status.c:1632
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -4792,32 +4808,32 @@ msgstr ""
"изпълнението, но не трябва да забравяте ръчно да добавяте новите файлове.\n"
"За повече подробности погледнете „git status help“."
-#: wt-status.c:1633
+#: wt-status.c:1638
#, c-format
msgid "Untracked files not listed%s"
msgstr "Неследените файлове не са изведени%s"
-#: wt-status.c:1635
+#: wt-status.c:1640
msgid " (use -u option to show untracked files)"
msgstr " (използвайте опцията „-u“, за да изведете неследените файлове)"
-#: wt-status.c:1641
+#: wt-status.c:1646
msgid "No changes"
msgstr "Няма промени"
-#: wt-status.c:1646
+#: wt-status.c:1651
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr ""
"към индекса за подаване не са добавени промени (използвайте „git add“ и/или "
"„git commit -a“)\n"
-#: wt-status.c:1649
+#: wt-status.c:1654
#, c-format
msgid "no changes added to commit\n"
msgstr "към индекса за подаване не са добавени промени\n"
-#: wt-status.c:1652
+#: wt-status.c:1657
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
@@ -4826,62 +4842,62 @@ msgstr ""
"към индекса за подаване не са добавени промени, но има нови файлове "
"(използвайте „git add“, за да започне тяхното следене)\n"
-#: wt-status.c:1655
+#: wt-status.c:1660
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "към индекса за подаване не са добавени промени, но има нови файлове\n"
-#: wt-status.c:1658
+#: wt-status.c:1663
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr ""
"липсват каквито и да е промени (създайте или копирайте файлове и използвайте "
"„git add“, за да започне тяхното следене)\n"
-#: wt-status.c:1661 wt-status.c:1666
+#: wt-status.c:1666 wt-status.c:1671
#, c-format
msgid "nothing to commit\n"
msgstr "липсват каквито и да е промени\n"
-#: wt-status.c:1664
+#: wt-status.c:1669
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr ""
"липсват каквито и да е промени (използвайте опцията „-u“, за да се изведат и "
"неследените файлове)\n"
-#: wt-status.c:1668
+#: wt-status.c:1673
#, c-format
msgid "nothing to commit, working tree clean\n"
msgstr "липсват каквито и да е промени, работното дърво е чисто\n"
-#: wt-status.c:1780
+#: wt-status.c:1785
msgid "No commits yet on "
msgstr "Все още липсват подавания в "
-#: wt-status.c:1784
+#: wt-status.c:1789
msgid "HEAD (no branch)"
msgstr "HEAD (извън клон)"
-#: wt-status.c:1813 wt-status.c:1821
+#: wt-status.c:1818 wt-status.c:1826
msgid "behind "
msgstr "назад с "
-#: wt-status.c:1816 wt-status.c:1819
+#: wt-status.c:1821 wt-status.c:1824
msgid "ahead "
msgstr "напред с "
#. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2311
+#: wt-status.c:2318
#, c-format
msgid "cannot %s: You have unstaged changes."
msgstr "не може да извършите „%s“, защото има промени, които не са в индекса."
-#: wt-status.c:2317
+#: wt-status.c:2324
msgid "additionally, your index contains uncommitted changes."
msgstr "освен това в индекса има неподадени промени."
-#: wt-status.c:2319
+#: wt-status.c:2326
#, c-format
msgid "cannot %s: Your index contains uncommitted changes."
msgstr "не може да извършите „%s“, защото в индекса има неподадени промени."
@@ -4895,128 +4911,132 @@ msgstr "неуспешно изтриване на „%s“"
msgid "git add [<options>] [--] <pathspec>..."
msgstr "git add [ОПЦИЯ…] [--] ПЪТ…"
-#: builtin/add.c:82
+#: builtin/add.c:83
#, c-format
msgid "unexpected diff status %c"
msgstr "неочакван изходен код при генериране на разлика: %c"
-#: builtin/add.c:87 builtin/commit.c:291
+#: builtin/add.c:88 builtin/commit.c:291
msgid "updating files failed"
msgstr "неуспешно обновяване на файловете"
-#: builtin/add.c:97
+#: builtin/add.c:98
#, c-format
msgid "remove '%s'\n"
msgstr "изтриване на „%s“\n"
-#: builtin/add.c:153
+#: builtin/add.c:173
msgid "Unstaged changes after refreshing the index:"
msgstr "Промени, които и след обновяването на индекса не са добавени към него:"
-#: builtin/add.c:213 builtin/rev-parse.c:888
+#: builtin/add.c:233 builtin/rev-parse.c:888
msgid "Could not read the index"
msgstr "Индексът не може да бъде прочетен"
-#: builtin/add.c:224
+#: builtin/add.c:244
#, c-format
msgid "Could not open '%s' for writing."
msgstr "Файлът „%s“ не може да бъде отворен за запис."
-#: builtin/add.c:228
+#: builtin/add.c:248
msgid "Could not write patch"
msgstr "Кръпката не може да бъде записана"
-#: builtin/add.c:231
+#: builtin/add.c:251
msgid "editing patch failed"
msgstr "неуспешно редактиране на кръпка"
-#: builtin/add.c:234
+#: builtin/add.c:254
#, c-format
msgid "Could not stat '%s'"
msgstr "Не може да се получи информация чрез „stat“ за файла „%s“"
-#: builtin/add.c:236
+#: builtin/add.c:256
msgid "Empty patch. Aborted."
msgstr "Празна кръпка, преустановяване на действието."
-#: builtin/add.c:241
+#: builtin/add.c:261
#, c-format
msgid "Could not apply '%s'"
msgstr "Кръпката „%s“ не може да бъде приложена"
-#: builtin/add.c:251
+#: builtin/add.c:271
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr ""
"Следните пътища ще бъдат игнорирани според някой от файловете „.gitignore“:\n"
-#: builtin/add.c:271 builtin/clean.c:910 builtin/fetch.c:132 builtin/mv.c:124
-#: builtin/prune-packed.c:55 builtin/pull.c:201 builtin/push.c:529
+#: builtin/add.c:291 builtin/clean.c:911 builtin/fetch.c:133 builtin/mv.c:124
+#: builtin/prune-packed.c:55 builtin/pull.c:207 builtin/push.c:541
#: builtin/remote.c:1333 builtin/rm.c:242 builtin/send-pack.c:164
msgid "dry run"
msgstr "пробно изпълнение"
-#: builtin/add.c:274
+#: builtin/add.c:294
msgid "interactive picking"
msgstr "интерактивно отбиране на промени"
-#: builtin/add.c:275 builtin/checkout.c:1172 builtin/reset.c:310
+#: builtin/add.c:295 builtin/checkout.c:1137 builtin/reset.c:310
msgid "select hunks interactively"
msgstr "интерактивен избор на парчета код"
-#: builtin/add.c:276
+#: builtin/add.c:296
msgid "edit current diff and apply"
msgstr "редактиране на текущата разлика и прилагане"
-#: builtin/add.c:277
+#: builtin/add.c:297
msgid "allow adding otherwise ignored files"
msgstr "добавяне и на иначе игнорираните файлове"
-#: builtin/add.c:278
+#: builtin/add.c:298
msgid "update tracked files"
msgstr "обновяване на следените файлове"
-#: builtin/add.c:279
+#: builtin/add.c:299
+msgid "renormalize EOL of tracked files (implies -u)"
+msgstr "уеднаквяване на знаците за край на файл (включва опцията „-u“)"
+
+#: builtin/add.c:300
msgid "record only the fact that the path will be added later"
msgstr "отбелязване само на факта, че пътят ще бъде добавен по-късно"
-#: builtin/add.c:280
+#: builtin/add.c:301
msgid "add changes from all tracked and untracked files"
msgstr "добавяне на всички промени в следените и неследените файлове"
-#: builtin/add.c:283
+#: builtin/add.c:304
msgid "ignore paths removed in the working tree (same as --no-all)"
msgstr ""
"игнориране на пътищата, които са изтрити от работното дърво (същото като „--"
"no-all“)"
-#: builtin/add.c:285
+#: builtin/add.c:306
msgid "don't add, only refresh the index"
msgstr "без добавяне на нови файлове, само обновяване на индекса"
-#: builtin/add.c:286
+#: builtin/add.c:307
msgid "just skip files which cannot be added because of errors"
msgstr ""
"прескачане на файловете, които не могат да бъдат добавени поради грешки"
-#: builtin/add.c:287
+#: builtin/add.c:308
msgid "check if - even missing - files are ignored in dry run"
msgstr ""
"проверка, че при пробно изпълнение всички файлове, дори и изтритите, се "
"игнорират"
-#: builtin/add.c:288 builtin/update-index.c:954
+#: builtin/add.c:309 builtin/update-index.c:964
msgid "(+/-)x"
msgstr "(+/-)x"
-#: builtin/add.c:288 builtin/update-index.c:955
+#: builtin/add.c:309 builtin/update-index.c:965
msgid "override the executable bit of the listed files"
msgstr "изрично задаване на стойността на флага дали файлът е изпълним"
-#: builtin/add.c:290
+#: builtin/add.c:311
msgid "warn when adding an embedded repository"
msgstr "предупреждаване при добавяне на вградено хранилище"
-#: builtin/add.c:305
+#: builtin/add.c:326
#, c-format
msgid ""
"You've added another git repository inside your current repository.\n"
@@ -5033,8 +5053,10 @@ msgid ""
"\n"
"See \"git help submodule\" for more information."
msgstr ""
-"Изтеглили сте допълнително хранилище в текущото. Когато клонирате обхващащото\n"
-"хранилище няма да получите вграденото, защото външното хранилище няма представа\n"
+"Изтеглили сте допълнително хранилище в текущото. Когато клонирате "
+"обхващащото\n"
+"хранилище няма да получите вграденото, защото външното хранилище няма "
+"представа\n"
"за вътрешното. За да добавите подмодул, изпълнете:\n"
"\n"
" git submodule add АДРЕС %s\n"
@@ -5045,47 +5067,47 @@ msgstr ""
"\n"
"За повече информация погледнете „git help submodule“."
-#: builtin/add.c:333
+#: builtin/add.c:354
#, c-format
msgid "adding embedded git repository: %s"
msgstr "добавяне на вградено хранилище: %s"
-#: builtin/add.c:351
+#: builtin/add.c:372
#, c-format
msgid "Use -f if you really want to add them.\n"
msgstr "Използвайте опцията „-f“, за да ги добавите наистина.\n"
-#: builtin/add.c:359
+#: builtin/add.c:380
msgid "adding files failed"
msgstr "неуспешно добавяне на файлове"
-#: builtin/add.c:396
+#: builtin/add.c:417
msgid "-A and -u are mutually incompatible"
msgstr "опциите „-A“ и „-u“ са несъвместими"
-#: builtin/add.c:403
+#: builtin/add.c:424
msgid "Option --ignore-missing can only be used together with --dry-run"
msgstr "Опцията „--ignore-missing“ е съвместима само с „--dry-run“"
-#: builtin/add.c:407
+#: builtin/add.c:428
#, c-format
msgid "--chmod param '%s' must be either -x or +x"
msgstr "параметърът към „--chmod“ — „%s“ може да е или „-x“, или „+x“"
-#: builtin/add.c:422
+#: builtin/add.c:443
#, c-format
msgid "Nothing specified, nothing added.\n"
msgstr "Нищо не е зададено и нищо не е добавено.\n"
-#: builtin/add.c:423
+#: builtin/add.c:444
#, c-format
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Вероятно искахте да използвате „git add .“?\n"
-#: builtin/add.c:428 builtin/check-ignore.c:176 builtin/checkout.c:282
-#: builtin/checkout.c:479 builtin/clean.c:957 builtin/commit.c:350
-#: builtin/mv.c:143 builtin/reset.c:249 builtin/rm.c:271
-#: builtin/submodule--helper.c:243
+#: builtin/add.c:449 builtin/check-ignore.c:176 builtin/checkout.c:281
+#: builtin/checkout.c:484 builtin/clean.c:958 builtin/commit.c:350
+#: builtin/diff-tree.c:114 builtin/mv.c:143 builtin/reset.c:249
+#: builtin/rm.c:271 builtin/submodule--helper.c:311
msgid "index file corrupt"
msgstr "файлът с индекса е повреден"
@@ -5112,85 +5134,85 @@ msgstr "Бележката не може да се копира от „%s“ к
msgid "fseek failed"
msgstr "неуспешно изпълнение на „fseek“"
-#: builtin/am.c:786
+#: builtin/am.c:790
#, c-format
msgid "could not parse patch '%s'"
msgstr "кръпката „%s“ не може да се анализира"
-#: builtin/am.c:851
+#: builtin/am.c:855
msgid "Only one StGIT patch series can be applied at once"
msgstr ""
"Само една серия кръпки от „StGIT“ може да бъде прилагана в даден момент"
-#: builtin/am.c:899
+#: builtin/am.c:903
msgid "invalid timestamp"
msgstr "неправилна стойност за време"
-#: builtin/am.c:904 builtin/am.c:916
+#: builtin/am.c:908 builtin/am.c:920
msgid "invalid Date line"
msgstr "неправилен ред за дата „Date“"
-#: builtin/am.c:911
+#: builtin/am.c:915
msgid "invalid timezone offset"
msgstr "неправилно отместване на часовия пояс"
-#: builtin/am.c:1004
+#: builtin/am.c:1008
msgid "Patch format detection failed."
msgstr "Форматът на кръпката не може да бъде определен."
-#: builtin/am.c:1009 builtin/clone.c:402
+#: builtin/am.c:1013 builtin/clone.c:402
#, c-format
msgid "failed to create directory '%s'"
msgstr "директорията „%s“ не може да бъде създадена"
-#: builtin/am.c:1013
+#: builtin/am.c:1017
msgid "Failed to split patches."
msgstr "Кръпките не могат да бъдат разделени."
-#: builtin/am.c:1142 builtin/commit.c:376
+#: builtin/am.c:1146 builtin/commit.c:376
msgid "unable to write index file"
msgstr "индексът не може да бъде записан"
-#: builtin/am.c:1193
+#: builtin/am.c:1160
#, c-format
msgid "When you have resolved this problem, run \"%s --continue\"."
msgstr "След коригирането на този проблем изпълнете „%s --continue“."
-#: builtin/am.c:1194
+#: builtin/am.c:1161
#, c-format
msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
msgstr "Ако предпочитате да прескочите тази кръпка, изпълнете „%s --skip“."
-#: builtin/am.c:1195
+#: builtin/am.c:1162
#, c-format
msgid "To restore the original branch and stop patching, run \"%s --abort\"."
msgstr "За да се върнете към първоначалното състояние, изпълнете „%s --abort“."
-#: builtin/am.c:1302
+#: builtin/am.c:1269
msgid "Patch is empty."
msgstr "Кръпката е празна."
-#: builtin/am.c:1368
+#: builtin/am.c:1335
#, c-format
msgid "invalid ident line: %.*s"
msgstr "грешен ред с идентичност: %.*s"
-#: builtin/am.c:1390
+#: builtin/am.c:1357
#, c-format
msgid "unable to parse commit %s"
msgstr "подаването не може да бъде анализирано: %s"
-#: builtin/am.c:1584
+#: builtin/am.c:1550
msgid "Repository lacks necessary blobs to fall back on 3-way merge."
msgstr ""
"В хранилището липсват необходимите обекти BLOB, за да се премине към тройно "
"сливане."
-#: builtin/am.c:1586
+#: builtin/am.c:1552
msgid "Using index info to reconstruct a base tree..."
msgstr "Базовото дърво се реконструира от информацията в индекса…"
-#: builtin/am.c:1605
+#: builtin/am.c:1571
msgid ""
"Did you hand edit your patch?\n"
"It does not apply to blobs recorded in its index."
@@ -5198,39 +5220,39 @@ msgstr ""
"Кръпката не може да се приложи към обектите BLOB в индекса.\n"
"Да не би да сте я редактирали на ръка?"
-#: builtin/am.c:1611
+#: builtin/am.c:1577
msgid "Falling back to patching base and 3-way merge..."
msgstr "Преминаване към прилагане на кръпка към базата и тройно сливане…"
-#: builtin/am.c:1636
+#: builtin/am.c:1602
msgid "Failed to merge in the changes."
msgstr "Неуспешно сливане на промените."
-#: builtin/am.c:1660 builtin/merge.c:641
+#: builtin/am.c:1626 builtin/merge.c:642
msgid "git write-tree failed to write a tree"
msgstr "Командата „git write-tree“ не успя да запише обект-дърво"
-#: builtin/am.c:1667
+#: builtin/am.c:1633
msgid "applying to an empty history"
msgstr "прилагане върху празна история"
-#: builtin/am.c:1680 builtin/commit.c:1776 builtin/merge.c:824
-#: builtin/merge.c:849
+#: builtin/am.c:1646 builtin/commit.c:1798 builtin/merge.c:825
+#: builtin/merge.c:850
msgid "failed to write commit object"
msgstr "обектът за подаването не може да бъде записан"
-#: builtin/am.c:1713 builtin/am.c:1717
+#: builtin/am.c:1679 builtin/am.c:1683
#, c-format
msgid "cannot resume: %s does not exist."
msgstr "не може да се продължи — „%s“ не съществува."
-#: builtin/am.c:1733
+#: builtin/am.c:1699
msgid "cannot be interactive without stdin connected to a terminal."
msgstr ""
"За интерактивно изпълнение е необходимо стандартният\n"
"вход да е свързан с терминал, а в момента не е."
-#: builtin/am.c:1738
+#: builtin/am.c:1704
msgid "Commit Body is:"
msgstr "Тялото на кръпката за прилагане е:"
@@ -5238,38 +5260,38 @@ msgstr "Тялото на кръпката за прилагане е:"
#. in your translation. The program will only accept English
#. input at this point.
#.
-#: builtin/am.c:1748
+#: builtin/am.c:1714
msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
msgstr ""
"Прилагане? „y“ — да/„n“ — не/„e“ — редактиране/„v“ — преглед/„a“ — приемане "
"на всичко:"
-#: builtin/am.c:1798
+#: builtin/am.c:1764
#, c-format
msgid "Dirty index: cannot apply patches (dirty: %s)"
msgstr ""
"Индексът не е чист: кръпките не могат да бъдат приложени (замърсени са: %s)"
-#: builtin/am.c:1838 builtin/am.c:1910
+#: builtin/am.c:1804 builtin/am.c:1876
#, c-format
msgid "Applying: %.*s"
msgstr "Прилагане: %.*s"
-#: builtin/am.c:1854
+#: builtin/am.c:1820
msgid "No changes -- Patch already applied."
msgstr "Без промени — кръпката вече е приложена."
-#: builtin/am.c:1862
+#: builtin/am.c:1828
#, c-format
msgid "Patch failed at %s %.*s"
msgstr "Неуспешно прилагане на кръпка при %s %.*s“"
-#: builtin/am.c:1868
+#: builtin/am.c:1834
#, c-format
msgid "The copy of the patch that failed is found in: %s"
msgstr "Дубликат на проблемната кръпка се намира в: %s"
-#: builtin/am.c:1913
+#: builtin/am.c:1879
msgid ""
"No changes - did you forget to use 'git add'?\n"
"If there is nothing left to stage, chances are that something else\n"
@@ -5279,7 +5301,7 @@ msgstr ""
"Ако няма друга промяна за включване в индекса, най-вероятно някоя друга\n"
"кръпка е довела до същите промени и в такъв случай просто пропуснете тази."
-#: builtin/am.c:1920
+#: builtin/am.c:1886
msgid ""
"You still have unmerged paths in your index.\n"
"You should 'git add' each file with resolved conflicts to mark them as "
@@ -5290,17 +5312,17 @@ msgstr ""
"След корекция на конфликтите изпълнете „git add“ върху поправените файлове.\n"
"За да приемете „изтрити от тях“, изпълнете „git rm“ върху изтритите файлове."
-#: builtin/am.c:2029 builtin/am.c:2033 builtin/am.c:2045 builtin/reset.c:332
+#: builtin/am.c:1993 builtin/am.c:1997 builtin/am.c:2009 builtin/reset.c:332
#: builtin/reset.c:340
#, c-format
msgid "Could not parse object '%s'."
msgstr "„%s“ не е разпознат като обект."
-#: builtin/am.c:2081
+#: builtin/am.c:2045
msgid "failed to clean index"
msgstr "индексът не може да бъде изчистен"
-#: builtin/am.c:2116
+#: builtin/am.c:2080
msgid ""
"You seem to have moved HEAD since the last 'am' failure.\n"
"Not rewinding to ORIG_HEAD"
@@ -5311,138 +5333,138 @@ msgstr ""
"сочи към\n"
"„ORIG_HEAD“"
-#: builtin/am.c:2179
+#: builtin/am.c:2143
#, c-format
msgid "Invalid value for --patch-format: %s"
msgstr "Неправилна стойност за „--patch-format“: „%s“"
-#: builtin/am.c:2212
+#: builtin/am.c:2176
msgid "git am [<options>] [(<mbox> | <Maildir>)...]"
msgstr "git am [ОПЦИЯ…] [(ФАЙЛ_С_ПОЩА|ДИРЕКТОРИЯ_С_ПОЩА)…]"
-#: builtin/am.c:2213
+#: builtin/am.c:2177
msgid "git am [<options>] (--continue | --skip | --abort)"
msgstr "git am [ОПЦИЯ…] (--continue | --quit | --abort)"
-#: builtin/am.c:2219
+#: builtin/am.c:2183
msgid "run interactively"
msgstr "интерактивна работа"
-#: builtin/am.c:2221
+#: builtin/am.c:2185
msgid "historical option -- no-op"
msgstr "изоставена опция, съществува по исторически причини, нищо не прави"
-#: builtin/am.c:2223
+#: builtin/am.c:2187
msgid "allow fall back on 3way merging if needed"
msgstr "да се преминава към тройно сливане при нужда."
-#: builtin/am.c:2224 builtin/init-db.c:484 builtin/prune-packed.c:57
+#: builtin/am.c:2188 builtin/init-db.c:484 builtin/prune-packed.c:57
#: builtin/repack.c:180
msgid "be quiet"
msgstr "без извеждане на информация"
-#: builtin/am.c:2226
+#: builtin/am.c:2190
msgid "add a Signed-off-by line to the commit message"
msgstr "добавяне на ред за подпис „Signed-off-by“ в съобщението за подаване"
-#: builtin/am.c:2229
+#: builtin/am.c:2193
msgid "recode into utf8 (default)"
msgstr "прекодиране в UTF-8 (стандартно)"
-#: builtin/am.c:2231
+#: builtin/am.c:2195
msgid "pass -k flag to git-mailinfo"
msgstr "подаване на опцията „-k“ на командата „git-mailinfo“"
-#: builtin/am.c:2233
+#: builtin/am.c:2197
msgid "pass -b flag to git-mailinfo"
msgstr "подаване на опцията „-b“ на командата „git-mailinfo“"
-#: builtin/am.c:2235
+#: builtin/am.c:2199
msgid "pass -m flag to git-mailinfo"
msgstr "подаване на опцията „-m“ на командата „git-mailinfo“"
-#: builtin/am.c:2237
+#: builtin/am.c:2201
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
msgstr ""
"подаване на опцията „--keep-cr“ на командата „git-mailsplit“ за формат „mbox“"
-#: builtin/am.c:2240
+#: builtin/am.c:2204
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
"без подаване на опцията „--keep-cr“ на командата „git-mailsplit“ независимо "
"от „am.keepcr“"
-#: builtin/am.c:2243
+#: builtin/am.c:2207
msgid "strip everything before a scissors line"
msgstr "пропускане на всичко преди реда за отрязване"
-#: builtin/am.c:2245 builtin/am.c:2248 builtin/am.c:2251 builtin/am.c:2254
-#: builtin/am.c:2257 builtin/am.c:2260 builtin/am.c:2263 builtin/am.c:2266
-#: builtin/am.c:2272
+#: builtin/am.c:2209 builtin/am.c:2212 builtin/am.c:2215 builtin/am.c:2218
+#: builtin/am.c:2221 builtin/am.c:2224 builtin/am.c:2227 builtin/am.c:2230
+#: builtin/am.c:2236
msgid "pass it through git-apply"
msgstr "прекарване през „git-apply“"
-#: builtin/am.c:2262 builtin/fmt-merge-msg.c:664 builtin/fmt-merge-msg.c:667
-#: builtin/grep.c:843 builtin/merge.c:205 builtin/pull.c:142 builtin/pull.c:197
+#: builtin/am.c:2226 builtin/fmt-merge-msg.c:665 builtin/fmt-merge-msg.c:668
+#: builtin/grep.c:845 builtin/merge.c:205 builtin/pull.c:145 builtin/pull.c:203
#: builtin/repack.c:189 builtin/repack.c:193 builtin/repack.c:195
#: builtin/show-branch.c:631 builtin/show-ref.c:169 builtin/tag.c:377
#: parse-options.h:132 parse-options.h:134 parse-options.h:245
msgid "n"
msgstr "БРОЙ"
-#: builtin/am.c:2268 builtin/branch.c:622 builtin/for-each-ref.c:38
+#: builtin/am.c:2232 builtin/branch.c:629 builtin/for-each-ref.c:38
#: builtin/replace.c:444 builtin/tag.c:412 builtin/verify-tag.c:39
msgid "format"
msgstr "ФОРМАТ"
-#: builtin/am.c:2269
+#: builtin/am.c:2233
msgid "format the patch(es) are in"
msgstr "формат на кръпките"
-#: builtin/am.c:2275
+#: builtin/am.c:2239
msgid "override error message when patch failure occurs"
msgstr "избрано от вас съобщение за грешка при прилагане на кръпки"
-#: builtin/am.c:2277
+#: builtin/am.c:2241
msgid "continue applying patches after resolving a conflict"
msgstr "продължаване на прилагането на кръпки след коригирането на конфликт"
-#: builtin/am.c:2280
+#: builtin/am.c:2244
msgid "synonyms for --continue"
msgstr "синоними на „--continue“"
-#: builtin/am.c:2283
+#: builtin/am.c:2247
msgid "skip the current patch"
msgstr "прескачане на текущата кръпка"
-#: builtin/am.c:2286
+#: builtin/am.c:2250
msgid "restore the original branch and abort the patching operation."
msgstr ""
"възстановяване на първоначалното състояние на клона и преустановяване на "
"прилагането на кръпката."
-#: builtin/am.c:2290
+#: builtin/am.c:2254
msgid "lie about committer date"
msgstr "дата за подаване различна от първоначалната"
-#: builtin/am.c:2292
+#: builtin/am.c:2256
msgid "use current timestamp for author date"
msgstr "използване на текущото време като това за автор"
-#: builtin/am.c:2294 builtin/commit.c:1614 builtin/merge.c:236
-#: builtin/pull.c:172 builtin/revert.c:112 builtin/tag.c:392
+#: builtin/am.c:2258 builtin/commit.c:1636 builtin/merge.c:236
+#: builtin/pull.c:178 builtin/revert.c:112 builtin/tag.c:392
msgid "key-id"
msgstr "ИДЕНТИФИКАТОР_НА_КЛЮЧ"
-#: builtin/am.c:2295
+#: builtin/am.c:2259
msgid "GPG-sign commits"
msgstr "подписване на подаванията с GPG"
-#: builtin/am.c:2298
+#: builtin/am.c:2262
msgid "(internal use for git-rebase)"
msgstr "(ползва се вътрешно за „git-rebase“)"
-#: builtin/am.c:2316
+#: builtin/am.c:2280
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."
@@ -5450,18 +5472,18 @@ msgstr ""
"Опциите „-b“/„--binary“ отдавна не правят нищо и\n"
"ще бъдат премахнати в бъдеще. Не ги ползвайте."
-#: builtin/am.c:2323
+#: builtin/am.c:2287
msgid "failed to read the index"
msgstr "неуспешно изчитане на индекса"
-#: builtin/am.c:2338
+#: builtin/am.c:2302
#, c-format
msgid "previous rebase directory %s still exists but mbox given."
msgstr ""
"предишната директория за пребазиране „%s“ все още съществува, а е зададен "
"файл „mbox“."
-#: builtin/am.c:2362
+#: builtin/am.c:2326
#, c-format
msgid ""
"Stray %s directory found.\n"
@@ -5470,7 +5492,7 @@ msgstr ""
"Открита е излишна директория „%s“.\n"
"Можете да я изтриете с командата „git am --abort“."
-#: builtin/am.c:2368
+#: builtin/am.c:2332
msgid "Resolve operation not in progress, we are not resuming."
msgstr "В момента не тече операция по коригиране и няма как да се продължи."
@@ -5508,19 +5530,70 @@ msgstr "git archive: протоколна грешка"
msgid "git archive: expected a flush"
msgstr "git archive: очакваше се изчистване на буферите чрез „flush“"
-#: builtin/bisect--helper.c:7
+#: builtin/bisect--helper.c:12
msgid "git bisect--helper --next-all [--no-checkout]"
msgstr "git bisect--helper --next-all [--no-checkout]"
-#: builtin/bisect--helper.c:17
+#: builtin/bisect--helper.c:13
+msgid "git bisect--helper --write-terms <bad_term> <good_term>"
+msgstr "git bisect--helper --write-terms ЛОШО ДОБРО"
+
+#: builtin/bisect--helper.c:14
+msgid "git bisect--helper --bisect-clean-state"
+msgstr "git bisect--helper --bisect-clean-state"
+
+#: builtin/bisect--helper.c:46
+#, c-format
+msgid "'%s' is not a valid term"
+msgstr "„%s“ е неправилна управляваща дума"
+
+#: builtin/bisect--helper.c:50
+#, c-format
+msgid "can't use the builtin command '%s' as a term"
+msgstr "„%s“ е вградена команда и не може да се използва като управляваща дума"
+
+#: builtin/bisect--helper.c:60
+#, c-format
+msgid "can't change the meaning of the term '%s'"
+msgstr "не може да смените значението на управляващата дума „%s“"
+
+#: builtin/bisect--helper.c:71
+msgid "please use two different terms"
+msgstr "използвайте две различни управляващи думи"
+
+#: builtin/bisect--helper.c:78
+msgid "could not open the file BISECT_TERMS"
+msgstr "файлът „BISECT_TERMS“ не може да се отвори"
+
+#: builtin/bisect--helper.c:120
msgid "perform 'git bisect next'"
msgstr "извършване на „git bisect next“"
-#: builtin/bisect--helper.c:19
+#: builtin/bisect--helper.c:122
+msgid "write the terms to .git/BISECT_TERMS"
+msgstr "запазване на управляващите думи в „“.git/BISECT_TERMS„“"
+
+#: builtin/bisect--helper.c:124
+msgid "cleanup the bisection state"
+msgstr "изчистване на състоянието на двоичното търсене"
+
+#: builtin/bisect--helper.c:126
+msgid "check for expected revs"
+msgstr "проверка за очакваните версии"
+
+#: builtin/bisect--helper.c:128
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr ""
"обновяване на указателя „BISECT_HEAD“ вместо да се използва текущото подаване"
+#: builtin/bisect--helper.c:143
+msgid "--write-terms requires two arguments"
+msgstr "опцията „--write-terms“ изисква точно два аргумента"
+
+#: builtin/bisect--helper.c:147
+msgid "--bisect-clean-state requires no arguments"
+msgstr "опцията „--bisect-clean-state“ не приема аргументи"
+
#: builtin/blame.c:27
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [ОПЦИЯ…] [ОПЦИЯ_ЗА_ВЕРСИЯТА…] [ВЕРСИЯ] [--] ФАЙЛ"
@@ -5797,52 +5870,52 @@ msgstr "Клонът „%s“ се пребазира върху „%s“"
msgid "Branch %s is being bisected at %s"
msgstr "Търси се двоично в клона „%s“ при „%s“"
-#: builtin/branch.c:470
+#: builtin/branch.c:471
msgid "cannot copy the current branch while not on any."
msgstr "не можете да копирате текущия клон, защото сте извън който и да е клон"
-#: builtin/branch.c:472
+#: builtin/branch.c:473
msgid "cannot rename the current branch while not on any."
msgstr ""
"не можете да преименувате текущия клон, защото сте извън който и да е клон"
-#: builtin/branch.c:483
+#: builtin/branch.c:484
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Неправилно име на клон: „%s“"
-#: builtin/branch.c:504
+#: builtin/branch.c:511
msgid "Branch rename failed"
msgstr "Неуспешно преименуване на клон"
-#: builtin/branch.c:506
+#: builtin/branch.c:513
msgid "Branch copy failed"
msgstr "Неуспешно копиране на клон"
-#: builtin/branch.c:510
+#: builtin/branch.c:517
#, c-format
-msgid "Copied a misnamed branch '%s' away"
+msgid "Created a copy of a misnamed branch '%s'"
msgstr "Клонът с неправилно име „%s“ е копиран"
-#: builtin/branch.c:513
+#: builtin/branch.c:520
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Клонът с неправилно име „%s“ е преименуван"
-#: builtin/branch.c:519
+#: builtin/branch.c:526
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Клонът е преименуван на „%s“, но указателят „HEAD“ не е обновен"
-#: builtin/branch.c:528
+#: builtin/branch.c:535
msgid "Branch is renamed, but update of config-file failed"
msgstr "Клонът е преименуван, но конфигурационният файл не е обновен"
-#: builtin/branch.c:530
+#: builtin/branch.c:537
msgid "Branch is copied, but update of config-file failed"
msgstr "Клонът е копиран, но конфигурационният файл не е обновен"
-#: builtin/branch.c:546
+#: builtin/branch.c:553
#, c-format
msgid ""
"Please edit the description for the branch\n"
@@ -5850,190 +5923,190 @@ msgid ""
"Lines starting with '%c' will be stripped.\n"
msgstr ""
"Въведете описание на клона.\n"
-" %s\n"
+" %s\n"
"Редовете, които започват с „%c“, ще бъдат пропуснати.\n"
-#: builtin/branch.c:579
+#: builtin/branch.c:586
msgid "Generic options"
msgstr "Общи настройки"
-#: builtin/branch.c:581
+#: builtin/branch.c:588
msgid "show hash and subject, give twice for upstream branch"
msgstr ""
"извеждане на хеша и темата. Повтарянето на опцията прибавя отдалечените "
"клони"
-#: builtin/branch.c:582
+#: builtin/branch.c:589
msgid "suppress informational messages"
msgstr "без информационни съобщения"
-#: builtin/branch.c:583
+#: builtin/branch.c:590
msgid "set up tracking mode (see git-pull(1))"
msgstr "задаване на режима на следене (виж git-pull(1))"
-#: builtin/branch.c:585
+#: builtin/branch.c:592
msgid "do not use"
msgstr "да не се ползва"
-#: builtin/branch.c:587
+#: builtin/branch.c:594
msgid "upstream"
msgstr "клон-източник"
-#: builtin/branch.c:587
+#: builtin/branch.c:594
msgid "change the upstream info"
msgstr "смяна на клона-източник"
-#: builtin/branch.c:588
+#: builtin/branch.c:595
msgid "Unset the upstream info"
msgstr "без клон-източник"
-#: builtin/branch.c:589
+#: builtin/branch.c:596
msgid "use colored output"
msgstr "цветен изход"
-#: builtin/branch.c:590
+#: builtin/branch.c:597
msgid "act on remote-tracking branches"
msgstr "действие върху следящите клони"
-#: builtin/branch.c:592 builtin/branch.c:594
+#: builtin/branch.c:599 builtin/branch.c:601
msgid "print only branches that contain the commit"
msgstr "извеждане само на клоните, които съдържат това ПОДАВАНЕ"
-#: builtin/branch.c:593 builtin/branch.c:595
+#: builtin/branch.c:600 builtin/branch.c:602
msgid "print only branches that don't contain the commit"
msgstr "извеждане само на клоните, които не съдържат това ПОДАВАНЕ"
-#: builtin/branch.c:598
+#: builtin/branch.c:605
msgid "Specific git-branch actions:"
msgstr "Специални действия на „git-branch“:"
-#: builtin/branch.c:599
+#: builtin/branch.c:606
msgid "list both remote-tracking and local branches"
msgstr "извеждане както на следящите, така и на локалните клони"
-#: builtin/branch.c:601
+#: builtin/branch.c:608
msgid "delete fully merged branch"
msgstr "изтриване на клони, които са напълно слети"
-#: builtin/branch.c:602
+#: builtin/branch.c:609
msgid "delete branch (even if not merged)"
msgstr "изтриване и на клони, които не са напълно слети"
-#: builtin/branch.c:603
+#: builtin/branch.c:610
msgid "move/rename a branch and its reflog"
msgstr ""
"преместване/преименуване на клон и принадлежащият му журнал на указателите"
-#: builtin/branch.c:604
+#: builtin/branch.c:611
msgid "move/rename a branch, even if target exists"
msgstr "преместване/преименуване на клон, дори ако има вече клон с такова име"
-#: builtin/branch.c:605
+#: builtin/branch.c:612
msgid "copy a branch and its reflog"
msgstr "копиране на клон и принадлежащия му журнал на указателите"
-#: builtin/branch.c:606
+#: builtin/branch.c:613
msgid "copy a branch, even if target exists"
msgstr "копиране на клон, дори ако има вече клон с такова име"
-#: builtin/branch.c:607
+#: builtin/branch.c:614
msgid "list branch names"
msgstr "извеждане на имената на клоните"
-#: builtin/branch.c:608
+#: builtin/branch.c:615
msgid "create the branch's reflog"
msgstr "създаване на журнала на указателите на клона"
-#: builtin/branch.c:610
+#: builtin/branch.c:617
msgid "edit the description for the branch"
msgstr "редактиране на описанието на клона"
-#: builtin/branch.c:611
+#: builtin/branch.c:618
msgid "force creation, move/rename, deletion"
msgstr "принудително създаване, преместване, преименуване, изтриване"
-#: builtin/branch.c:612
+#: builtin/branch.c:619
msgid "print only branches that are merged"
msgstr "извеждане само на слетите клони"
-#: builtin/branch.c:613
+#: builtin/branch.c:620
msgid "print only branches that are not merged"
msgstr "извеждане само на неслетите клони"
-#: builtin/branch.c:614
+#: builtin/branch.c:621
msgid "list branches in columns"
msgstr "извеждане по колони"
-#: builtin/branch.c:615 builtin/for-each-ref.c:40 builtin/tag.c:405
+#: builtin/branch.c:622 builtin/for-each-ref.c:40 builtin/tag.c:405
msgid "key"
msgstr "КЛЮЧ"
-#: builtin/branch.c:616 builtin/for-each-ref.c:41 builtin/tag.c:406
+#: builtin/branch.c:623 builtin/for-each-ref.c:41 builtin/tag.c:406
msgid "field name to sort on"
msgstr "име на полето, по което да е подредбата"
-#: builtin/branch.c:618 builtin/for-each-ref.c:43 builtin/notes.c:408
+#: builtin/branch.c:625 builtin/for-each-ref.c:43 builtin/notes.c:408
#: builtin/notes.c:411 builtin/notes.c:571 builtin/notes.c:574
#: builtin/tag.c:408
msgid "object"
msgstr "ОБЕКТ"
-#: builtin/branch.c:619
+#: builtin/branch.c:626
msgid "print only branches of the object"
msgstr "извеждане само на клоните на ОБЕКТА"
-#: builtin/branch.c:621 builtin/for-each-ref.c:49 builtin/tag.c:415
+#: builtin/branch.c:628 builtin/for-each-ref.c:49 builtin/tag.c:415
msgid "sorting and filtering are case insensitive"
msgstr "подредбата и филтрирането третират еднакво малките и главните букви"
-#: builtin/branch.c:622 builtin/for-each-ref.c:38 builtin/tag.c:413
+#: builtin/branch.c:629 builtin/for-each-ref.c:38 builtin/tag.c:413
#: builtin/verify-tag.c:39
msgid "format to use for the output"
msgstr "ФОРМАТ за изхода"
-#: builtin/branch.c:645 builtin/clone.c:729
+#: builtin/branch.c:652 builtin/clone.c:730
msgid "HEAD not found below refs/heads!"
msgstr "В директорията „refs/heads“ липсва файл „HEAD“"
-#: builtin/branch.c:668
+#: builtin/branch.c:675
msgid "--column and --verbose are incompatible"
msgstr "Опциите „--column“ и „--verbose“ са несъвместими"
-#: builtin/branch.c:680 builtin/branch.c:732 builtin/branch.c:741
+#: builtin/branch.c:690 builtin/branch.c:742 builtin/branch.c:751
msgid "branch name required"
msgstr "Необходимо е име на клон"
-#: builtin/branch.c:708
+#: builtin/branch.c:718
msgid "Cannot give description to detached HEAD"
msgstr "Не може да зададете описание на несвързан „HEAD“"
-#: builtin/branch.c:713
+#: builtin/branch.c:723
msgid "cannot edit description of more than one branch"
msgstr "Не може да редактирате описанието на повече от един клон едновременно"
-#: builtin/branch.c:720
+#: builtin/branch.c:730
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "В клона „%s“ все още няма подавания."
-#: builtin/branch.c:723
+#: builtin/branch.c:733
#, c-format
msgid "No branch named '%s'."
msgstr "Липсва клон на име „%s“."
-#: builtin/branch.c:738
+#: builtin/branch.c:748
msgid "too many branches for a copy operation"
msgstr "прекалено много клони за копиране"
-#: builtin/branch.c:747
+#: builtin/branch.c:757
msgid "too many arguments for a rename operation"
msgstr "прекалено много аргументи към командата за преименуване"
-#: builtin/branch.c:752
+#: builtin/branch.c:762
msgid "too many arguments to set new upstream"
msgstr "прекалено много аргументи към командата за следене"
-#: builtin/branch.c:756
+#: builtin/branch.c:766
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
@@ -6041,39 +6114,35 @@ msgstr ""
"Следеното от „HEAD“ не може да се зададе да е „%s“, защото то не сочи към "
"никой клон."
-#: builtin/branch.c:759 builtin/branch.c:781 builtin/branch.c:800
+#: builtin/branch.c:769 builtin/branch.c:791 builtin/branch.c:807
#, c-format
msgid "no such branch '%s'"
msgstr "Няма клон на име „%s“."
-#: builtin/branch.c:763
+#: builtin/branch.c:773
#, c-format
msgid "branch '%s' does not exist"
msgstr "Не съществува клон на име „%s“."
-#: builtin/branch.c:775
+#: builtin/branch.c:785
msgid "too many arguments to unset upstream"
msgstr "прекалено много аргументи към командата за спиране на следене"
-#: builtin/branch.c:779
+#: builtin/branch.c:789
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr ""
"Следеното от „HEAD“ не може да махне, защото то не сочи към никой клон."
-#: builtin/branch.c:785
+#: builtin/branch.c:795
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Няма информация клонът „%s“ да следи някой друг"
-#: builtin/branch.c:797
-msgid "it does not make sense to create 'HEAD' manually"
-msgstr "Няма никакъв смисъл ръчно да създавате „HEAD“."
-
-#: builtin/branch.c:803
+#: builtin/branch.c:810
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr "Опциите „-a“ и „-r“ на „git branch“ са несъвместими с име на клон"
-#: builtin/branch.c:806
+#: builtin/branch.c:813
msgid ""
"the '--set-upstream' option is no longer supported. Please use '--track' or "
"'--set-upstream-to' instead."
@@ -6143,7 +6212,7 @@ msgid "for blob objects, run filters on object's content"
msgstr ""
"да се стартират програмите за преобразуване на съдържанието на обектите BLOB"
-#: builtin/cat-file.c:569 git-submodule.sh:943
+#: builtin/cat-file.c:569 git-submodule.sh:931
msgid "blob"
msgstr "обект BLOB"
@@ -6202,7 +6271,7 @@ msgstr "изчитане на имената на файловете от ста
msgid "terminate input and output records by a NUL character"
msgstr "разделяне на входните и изходните записи с нулевия знак „NUL“"
-#: builtin/check-ignore.c:20 builtin/checkout.c:1153 builtin/gc.c:358
+#: builtin/check-ignore.c:20 builtin/checkout.c:1118 builtin/gc.c:358
msgid "suppress progress reporting"
msgstr "без показване на напредъка"
@@ -6259,161 +6328,161 @@ msgstr "не са указани контакти"
msgid "git checkout-index [<options>] [--] [<file>...]"
msgstr "git checkout-index [ОПЦИЯ…] [--] [ФАЙЛ…]"
-#: builtin/checkout-index.c:145
+#: builtin/checkout-index.c:143
msgid "stage should be between 1 and 3 or all"
msgstr "етапът трябва да е „1“, „2“, „3“ или „all“ (всички)"
-#: builtin/checkout-index.c:161
+#: builtin/checkout-index.c:159
msgid "check out all files in the index"
msgstr "изтегляне на всички файлове в индекса"
-#: builtin/checkout-index.c:162
+#: builtin/checkout-index.c:160
msgid "force overwrite of existing files"
msgstr "презаписване на файловете, дори и да съществуват"
-#: builtin/checkout-index.c:164
+#: builtin/checkout-index.c:162
msgid "no warning for existing files and files not in index"
msgstr "без предупреждения при липсващи файлове и файлове не в индекса"
-#: builtin/checkout-index.c:166
+#: builtin/checkout-index.c:164
msgid "don't checkout new files"
msgstr "без изтегляне на нови файлове"
-#: builtin/checkout-index.c:168
+#: builtin/checkout-index.c:166
msgid "update stat information in the index file"
msgstr "обновяване на информацията получена чрез „stat“ за файловете в индекса"
-#: builtin/checkout-index.c:172
+#: builtin/checkout-index.c:170
msgid "read list of paths from the standard input"
msgstr "изчитане на пътищата от стандартния вход"
-#: builtin/checkout-index.c:174
+#: builtin/checkout-index.c:172
msgid "write the content to temporary files"
msgstr "записване на съдържанието във временни файлове"
-#: builtin/checkout-index.c:175 builtin/column.c:31
-#: builtin/submodule--helper.c:628 builtin/submodule--helper.c:631
-#: builtin/submodule--helper.c:637 builtin/submodule--helper.c:999
-#: builtin/worktree.c:498
+#: builtin/checkout-index.c:173 builtin/column.c:31
+#: builtin/submodule--helper.c:866 builtin/submodule--helper.c:869
+#: builtin/submodule--helper.c:875 builtin/submodule--helper.c:1237
+#: builtin/worktree.c:552
msgid "string"
msgstr "НИЗ"
-#: builtin/checkout-index.c:176
+#: builtin/checkout-index.c:174
msgid "when creating files, prepend <string>"
msgstr "при създаването на нови файлове да се добавя префикса НИЗ"
-#: builtin/checkout-index.c:178
+#: builtin/checkout-index.c:176
msgid "copy out the files from named stage"
msgstr "копиране на файловете от това състояние на сливане"
-#: builtin/checkout.c:26
+#: builtin/checkout.c:27
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [ОПЦИЯ…] КЛОН"
-#: builtin/checkout.c:27
+#: builtin/checkout.c:28
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [ОПЦИЯ…] [КЛОН] -- ФАЙЛ…"
-#: builtin/checkout.c:135 builtin/checkout.c:168
+#: builtin/checkout.c:136 builtin/checkout.c:169
#, c-format
msgid "path '%s' does not have our version"
msgstr "вашата версия липсва в пътя „%s“"
-#: builtin/checkout.c:137 builtin/checkout.c:170
+#: builtin/checkout.c:138 builtin/checkout.c:171
#, c-format
msgid "path '%s' does not have their version"
msgstr "чуждата версия липсва в пътя „%s“"
-#: builtin/checkout.c:153
+#: builtin/checkout.c:154
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "някоя от необходимите версии липсва в пътя „%s“"
-#: builtin/checkout.c:197
+#: builtin/checkout.c:198
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "някоя от необходимите версии липсва в пътя „%s“"
-#: builtin/checkout.c:214
+#: builtin/checkout.c:215
#, c-format
msgid "path '%s': cannot merge"
msgstr "пътят „%s“ не може да бъде слян"
-#: builtin/checkout.c:231
+#: builtin/checkout.c:232
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Резултатът за „%s“ не може да бъде слян"
-#: builtin/checkout.c:253 builtin/checkout.c:256 builtin/checkout.c:259
-#: builtin/checkout.c:262
+#: builtin/checkout.c:254 builtin/checkout.c:257 builtin/checkout.c:260
+#: builtin/checkout.c:263
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "Опцията „%s“ е несъвместима с обновяването на пътища"
-#: builtin/checkout.c:265 builtin/checkout.c:268
+#: builtin/checkout.c:266 builtin/checkout.c:269
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "Опцията „%s“ е несъвместима с „%s“"
-#: builtin/checkout.c:271
+#: builtin/checkout.c:272
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr ""
"Невъзможно е едновременно да обновявате пътища и да преминете към клона „%s“."
-#: builtin/checkout.c:342 builtin/checkout.c:349
+#: builtin/checkout.c:341 builtin/checkout.c:348
#, c-format
msgid "path '%s' is unmerged"
msgstr "пътят „%s“ не е слят"
-#: builtin/checkout.c:501
+#: builtin/checkout.c:506
msgid "you need to resolve your current index first"
msgstr "първо трябва да коригирате индекса си"
-#: builtin/checkout.c:632
+#: builtin/checkout.c:637
#, c-format
msgid "Can not do reflog for '%s': %s\n"
msgstr "Журналът на указателите за „%s“ не може да се проследи: %s\n"
-#: builtin/checkout.c:673
+#: builtin/checkout.c:678
msgid "HEAD is now at"
msgstr "Указателят „HEAD“ в момента сочи към"
-#: builtin/checkout.c:677 builtin/clone.c:683
+#: builtin/checkout.c:682 builtin/clone.c:684
msgid "unable to update HEAD"
msgstr "Указателят „HEAD“ не може да бъде обновен"
-#: builtin/checkout.c:681
+#: builtin/checkout.c:686
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Зануляване на клона „%s“\n"
-#: builtin/checkout.c:684
+#: builtin/checkout.c:689
#, c-format
msgid "Already on '%s'\n"
msgstr "Вече сте на „%s“\n"
-#: builtin/checkout.c:688
+#: builtin/checkout.c:693
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Преминаване към клона „%s“ и зануляване на промените\n"
-#: builtin/checkout.c:690 builtin/checkout.c:1086
+#: builtin/checkout.c:695 builtin/checkout.c:1051
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Преминахте към новия клон „%s“\n"
-#: builtin/checkout.c:692
+#: builtin/checkout.c:697
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Преминахте към клона „%s“\n"
-#: builtin/checkout.c:743
+#: builtin/checkout.c:748
#, c-format
msgid " ... and %d more.\n"
msgstr "… и още %d.\n"
-#: builtin/checkout.c:749
+#: builtin/checkout.c:754
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -6435,7 +6504,7 @@ msgstr[1] ""
"\n"
"%s\n"
-#: builtin/checkout.c:768
+#: builtin/checkout.c:773
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -6462,164 +6531,164 @@ msgstr[1] ""
" git branch ИМЕ_НА_НОВИЯ_КЛОН %s\n"
"\n"
-#: builtin/checkout.c:809
+#: builtin/checkout.c:814
msgid "internal error in revision walk"
msgstr "вътрешна грешка при обхождането на версиите"
-#: builtin/checkout.c:813
+#: builtin/checkout.c:818
msgid "Previous HEAD position was"
msgstr "Преди това „HEAD“ сочеше към"
-#: builtin/checkout.c:843 builtin/checkout.c:1081
+#: builtin/checkout.c:848 builtin/checkout.c:1046
msgid "You are on a branch yet to be born"
msgstr "В момента сте на клон, който предстои да бъде създаден"
-#: builtin/checkout.c:987
+#: builtin/checkout.c:952
#, c-format
msgid "only one reference expected, %d given."
msgstr "очакваше се един указател, а сте подали %d."
-#: builtin/checkout.c:1027 builtin/worktree.c:233
+#: builtin/checkout.c:992 builtin/worktree.c:247
#, c-format
msgid "invalid reference: %s"
msgstr "неправилен указател: %s"
-#: builtin/checkout.c:1056
+#: builtin/checkout.c:1021
#, c-format
msgid "reference is not a tree: %s"
msgstr "указателят не сочи към обект-дърво: %s"
-#: builtin/checkout.c:1095
+#: builtin/checkout.c:1060
msgid "paths cannot be used with switching branches"
msgstr "задаването на път е несъвместимо с преминаването от един клон към друг"
-#: builtin/checkout.c:1098 builtin/checkout.c:1102
+#: builtin/checkout.c:1063 builtin/checkout.c:1067
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "опцията „%s“ е несъвместима с преминаването от един клон към друг"
-#: builtin/checkout.c:1106 builtin/checkout.c:1109 builtin/checkout.c:1114
-#: builtin/checkout.c:1117
+#: builtin/checkout.c:1071 builtin/checkout.c:1074 builtin/checkout.c:1079
+#: builtin/checkout.c:1082
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "опцията „%s“ е несъвместима с „%s“"
-#: builtin/checkout.c:1122
+#: builtin/checkout.c:1087
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr ""
"За да преминете към клон, подайте указател, който сочи към подаване. „%s“ "
"не е такъв"
-#: builtin/checkout.c:1154 builtin/checkout.c:1156 builtin/clone.c:114
-#: builtin/remote.c:166 builtin/remote.c:168 builtin/worktree.c:346
-#: builtin/worktree.c:348
+#: builtin/checkout.c:1119 builtin/checkout.c:1121 builtin/clone.c:114
+#: builtin/remote.c:166 builtin/remote.c:168 builtin/worktree.c:369
+#: builtin/worktree.c:371
msgid "branch"
msgstr "клон"
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1120
msgid "create and checkout a new branch"
msgstr "създаване и преминаване към нов клон"
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1122
msgid "create/reset and checkout a branch"
msgstr "създаване/зануляване на клон и преминаване към него"
-#: builtin/checkout.c:1158
+#: builtin/checkout.c:1123
msgid "create reflog for new branch"
msgstr "създаване на журнал на указателите за нов клон"
-#: builtin/checkout.c:1159 builtin/worktree.c:350
+#: builtin/checkout.c:1124 builtin/worktree.c:373
msgid "detach HEAD at named commit"
msgstr "отделяне на указателя „HEAD“ към указаното подаване"
-#: builtin/checkout.c:1160
+#: builtin/checkout.c:1125
msgid "set upstream info for new branch"
msgstr "задаване на кой клон бива следен при създаването на новия клон"
-#: builtin/checkout.c:1162
+#: builtin/checkout.c:1127
msgid "new-branch"
msgstr "НОВ_КЛОН"
-#: builtin/checkout.c:1162
+#: builtin/checkout.c:1127
msgid "new unparented branch"
msgstr "нов клон без родител"
-#: builtin/checkout.c:1163
+#: builtin/checkout.c:1128
msgid "checkout our version for unmerged files"
msgstr "изтегляне на вашата версия на неслетите файлове"
-#: builtin/checkout.c:1165
+#: builtin/checkout.c:1130
msgid "checkout their version for unmerged files"
msgstr "изтегляне на чуждата версия на неслетите файлове"
-#: builtin/checkout.c:1167
+#: builtin/checkout.c:1132
msgid "force checkout (throw away local modifications)"
msgstr "принудително изтегляне (вашите промени ще бъдат занулени)"
-#: builtin/checkout.c:1168
+#: builtin/checkout.c:1133
msgid "perform a 3-way merge with the new branch"
msgstr "извършване на тройно сливане с новия клон"
-#: builtin/checkout.c:1169 builtin/merge.c:238
+#: builtin/checkout.c:1134 builtin/merge.c:238
msgid "update ignored files (default)"
msgstr "обновяване на игнорираните файлове (стандартно)"
-#: builtin/checkout.c:1170 builtin/log.c:1489 parse-options.h:251
+#: builtin/checkout.c:1135 builtin/log.c:1496 parse-options.h:251
msgid "style"
msgstr "СТИЛ"
-#: builtin/checkout.c:1171
+#: builtin/checkout.c:1136
msgid "conflict style (merge or diff3)"
msgstr "действие при конфликт (сливане или тройна разлика)"
-#: builtin/checkout.c:1174
+#: builtin/checkout.c:1139
msgid "do not limit pathspecs to sparse entries only"
msgstr "без ограничаване на изброените пътища само до частично изтеглените"
-#: builtin/checkout.c:1176
+#: builtin/checkout.c:1141
msgid "second guess 'git checkout <no-such-branch>'"
msgstr ""
"опит за отгатване на име на клон след неуспешен опит с „git checkout "
"НЕСЪЩЕСТВУВАЩ_КЛОН“"
-#: builtin/checkout.c:1178
+#: builtin/checkout.c:1143
msgid "do not check if another worktree is holding the given ref"
msgstr "без проверка дали друго работно дърво държи указателя"
-#: builtin/checkout.c:1182 builtin/clone.c:81 builtin/fetch.c:136
-#: builtin/merge.c:235 builtin/pull.c:120 builtin/push.c:544
+#: builtin/checkout.c:1147 builtin/clone.c:81 builtin/fetch.c:137
+#: builtin/merge.c:235 builtin/pull.c:123 builtin/push.c:556
#: builtin/send-pack.c:173
msgid "force progress reporting"
msgstr "извеждане на напредъка"
-#: builtin/checkout.c:1212
+#: builtin/checkout.c:1177
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "Опциите „-b“, „-B“ и „--orphan“ са несъвместими една с друга"
-#: builtin/checkout.c:1229
+#: builtin/checkout.c:1194
msgid "--track needs a branch name"
msgstr "опцията „--track“ изисква име на клон"
-#: builtin/checkout.c:1234
+#: builtin/checkout.c:1199
msgid "Missing branch name; try -b"
msgstr "Липсва име на клон, използвайте опцията „-b“"
-#: builtin/checkout.c:1270
+#: builtin/checkout.c:1235
msgid "invalid path specification"
msgstr "указан е неправилен път"
-#: builtin/checkout.c:1277
+#: builtin/checkout.c:1242
#, c-format
msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
msgstr "„%s“ не е подаване, затова от него не може да се създаде клон „%s“"
-#: builtin/checkout.c:1281
+#: builtin/checkout.c:1246
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: опцията „--detach“ не приема аргумент-път „%s“"
-#: builtin/checkout.c:1285
+#: builtin/checkout.c:1250
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
@@ -6657,7 +6726,7 @@ msgstr "Хранилището „%s“ ще бъде прескочено\n"
msgid "failed to remove %s"
msgstr "файлът „%s“ не може да бъде изтрит"
-#: builtin/clean.c:301 git-add--interactive.perl:572
+#: builtin/clean.c:302 git-add--interactive.perl:572
#, c-format
msgid ""
"Prompt help:\n"
@@ -6670,7 +6739,7 @@ msgstr ""
"ПРЕФИКС — избор на единствен обект по този уникален префикс\n"
" — (празно) нищо да не се избира\n"
-#: builtin/clean.c:305 git-add--interactive.perl:581
+#: builtin/clean.c:306 git-add--interactive.perl:581
#, c-format
msgid ""
"Prompt help:\n"
@@ -6691,39 +6760,39 @@ msgstr ""
"* — избиране на всички обекти\n"
" — (празно) завършване на избирането\n"
-#: builtin/clean.c:521 git-add--interactive.perl:547
+#: builtin/clean.c:522 git-add--interactive.perl:547
#: git-add--interactive.perl:552
#, c-format, perl-format
msgid "Huh (%s)?\n"
msgstr "Неправилен избор (%s).\n"
-#: builtin/clean.c:663
+#: builtin/clean.c:664
#, c-format
msgid "Input ignore patterns>> "
msgstr "Шаблони за игнорирани елементи≫ "
-#: builtin/clean.c:700
+#: builtin/clean.c:701
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ПРЕДУПРЕЖДЕНИЕ: Никой обект не напасва на „%s“"
-#: builtin/clean.c:721
+#: builtin/clean.c:722
msgid "Select items to delete"
msgstr "Избиране на обекти за изтриване"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:762
+#: builtin/clean.c:763
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Да се изтрие ли „%s“? „y“ — да, „N“ — НЕ"
#
-#: builtin/clean.c:787 git-add--interactive.perl:1616
+#: builtin/clean.c:788 git-add--interactive.perl:1616
#, c-format
msgid "Bye.\n"
msgstr "Изход.\n"
-#: builtin/clean.c:795
+#: builtin/clean.c:796
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -6741,63 +6810,64 @@ msgstr ""
"help — този край\n"
"? — подсказка за шаблоните"
-#: builtin/clean.c:822 git-add--interactive.perl:1692
+#: builtin/clean.c:823 git-add--interactive.perl:1692
msgid "*** Commands ***"
msgstr "●●● Команди ●●●"
-#: builtin/clean.c:823 git-add--interactive.perl:1689
+#: builtin/clean.c:824 git-add--interactive.perl:1689
msgid "What now"
msgstr "Избор на следващо действие"
-#: builtin/clean.c:831
+#: builtin/clean.c:832
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Следният обект ще бъде изтрит:"
msgstr[1] "Следните обекти ще бъдат изтрити:"
-#: builtin/clean.c:847
+#: builtin/clean.c:848
msgid "No more files to clean, exiting."
msgstr "Файловете за изчистване свършиха. Изход от програмата."
-#: builtin/clean.c:909
+#: builtin/clean.c:910
msgid "do not print names of files removed"
msgstr "без извеждане на имената на файловете, които ще бъдат изтрити"
-#: builtin/clean.c:911
+#: builtin/clean.c:912
msgid "force"
msgstr "принудително изтриване"
-#: builtin/clean.c:912
+#: builtin/clean.c:913
msgid "interactive cleaning"
msgstr "интерактивно изтриване"
-#: builtin/clean.c:914
+#: builtin/clean.c:915
msgid "remove whole directories"
msgstr "изтриване на цели директории"
-#: builtin/clean.c:915 builtin/describe.c:463 builtin/describe.c:465
-#: builtin/grep.c:861 builtin/ls-files.c:544 builtin/name-rev.c:397
-#: builtin/name-rev.c:399 builtin/show-ref.c:176
+#: builtin/clean.c:916 builtin/describe.c:530 builtin/describe.c:532
+#: builtin/grep.c:863 builtin/log.c:155 builtin/log.c:157
+#: builtin/ls-files.c:548 builtin/name-rev.c:397 builtin/name-rev.c:399
+#: builtin/show-ref.c:176
msgid "pattern"
msgstr "ШАБЛОН"
-#: builtin/clean.c:916
+#: builtin/clean.c:917
msgid "add <pattern> to ignore rules"
msgstr "добавяне на ШАБЛОН от файлове, които да не се трият"
-#: builtin/clean.c:917
+#: builtin/clean.c:918
msgid "remove ignored files, too"
msgstr "изтриване и на игнорираните файлове"
-#: builtin/clean.c:919
+#: builtin/clean.c:920
msgid "remove only ignored files"
msgstr "изтриване само на игнорирани файлове"
-#: builtin/clean.c:937
+#: builtin/clean.c:938
msgid "-x and -X cannot be used together"
msgstr "опциите „-x“ и „-X“ са несъвместими"
-#: builtin/clean.c:941
+#: builtin/clean.c:942
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
@@ -6805,7 +6875,7 @@ msgstr ""
"Настройката „clean.requireForce“ е зададена като истина, което изисква някоя "
"от опциите „-i“, „-n“ или „-f“. Няма да се извърши изчистване"
-#: builtin/clean.c:944
+#: builtin/clean.c:945
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -6863,8 +6933,8 @@ msgstr "директория с шаблони"
msgid "directory from which templates will be used"
msgstr "директория, която съдържа шаблоните, които да се ползват"
-#: builtin/clone.c:107 builtin/clone.c:109 builtin/submodule--helper.c:635
-#: builtin/submodule--helper.c:1002
+#: builtin/clone.c:107 builtin/clone.c:109 builtin/submodule--helper.c:873
+#: builtin/submodule--helper.c:1240
msgid "reference repository"
msgstr "еталонно хранилище"
@@ -6888,8 +6958,8 @@ msgstr "изтегляне на този КЛОН, а не соченият от
msgid "path to git-upload-pack on the remote"
msgstr "път към командата „git-upload-pack“ на отдалеченото хранилище"
-#: builtin/clone.c:118 builtin/fetch.c:137 builtin/grep.c:804
-#: builtin/pull.c:205
+#: builtin/clone.c:118 builtin/fetch.c:138 builtin/grep.c:806
+#: builtin/pull.c:211
msgid "depth"
msgstr "ДЪЛБОЧИНА"
@@ -6897,7 +6967,7 @@ msgstr "ДЪЛБОЧИНА"
msgid "create a shallow clone of that depth"
msgstr "плитко клониране до тази ДЪЛБОЧИНА"
-#: builtin/clone.c:120 builtin/fetch.c:139 builtin/pack-objects.c:2938
+#: builtin/clone.c:120 builtin/fetch.c:140 builtin/pack-objects.c:2991
#: parse-options.h:142
msgid "time"
msgstr "ВРЕМЕ"
@@ -6906,11 +6976,11 @@ msgstr "ВРЕМЕ"
msgid "create a shallow clone since a specific time"
msgstr "плитко клониране до момент във времето"
-#: builtin/clone.c:122 builtin/fetch.c:141
+#: builtin/clone.c:122 builtin/fetch.c:142
msgid "revision"
msgstr "версия"
-#: builtin/clone.c:123 builtin/fetch.c:142
+#: builtin/clone.c:123 builtin/fetch.c:143
msgid "deepen history of shallow clone, excluding rev"
msgstr "задълбочаване на историята на плитко хранилище до изключващ указател"
@@ -6945,11 +7015,13 @@ msgstr "КЛЮЧ=СТОЙНОСТ"
msgid "set config inside the new repository"
msgstr "задаване на настройките на новото хранилище"
-#: builtin/clone.c:134 builtin/fetch.c:159 builtin/push.c:555
+#: builtin/clone.c:134 builtin/fetch.c:160 builtin/pull.c:224
+#: builtin/push.c:567
msgid "use IPv4 addresses only"
msgstr "само адреси IPv4"
-#: builtin/clone.c:136 builtin/fetch.c:161 builtin/push.c:557
+#: builtin/clone.c:136 builtin/fetch.c:162 builtin/pull.c:227
+#: builtin/push.c:569
msgid "use IPv6 addresses only"
msgstr "само адреси IPv6"
@@ -6992,12 +7064,12 @@ msgstr "връзката „%s“ не може да бъде създадена
msgid "failed to copy file to '%s'"
msgstr "файлът не може да бъде копиран като „%s“"
-#: builtin/clone.c:471
+#: builtin/clone.c:472
#, c-format
msgid "done.\n"
msgstr "действието завърши.\n"
-#: builtin/clone.c:483
+#: builtin/clone.c:484
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
@@ -7008,23 +7080,23 @@ msgstr ""
"клон в момента са изтеглени с командата „git status“. Можете да\n"
"завършите изтеглянето на клона с командата „git checkout -f HEAD“.\n"
-#: builtin/clone.c:560
+#: builtin/clone.c:561
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr ""
"Клонът „%s“ от отдалеченото хранилище, което клонирате,\n"
"и който следва да бъде изтеглен, не съществува."
-#: builtin/clone.c:655
+#: builtin/clone.c:656
msgid "remote did not send all necessary objects"
msgstr "отдалеченото хранилище не изпрати всички необходими обекти."
-#: builtin/clone.c:671
+#: builtin/clone.c:672
#, c-format
msgid "unable to update %s"
msgstr "обектът „%s“ не може да бъде обновен"
-#: builtin/clone.c:720
+#: builtin/clone.c:721
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr ""
"указателят „HEAD“ от отдалеченото хранилище сочи към нещо,\n"
@@ -7046,7 +7118,7 @@ msgstr "не може да се извърши пакетиране за изч
msgid "cannot unlink temporary alternates file"
msgstr "временният файл за алтернативни обекти не може да бъде изтрит"
-#: builtin/clone.c:894 builtin/receive-pack.c:1944
+#: builtin/clone.c:894 builtin/receive-pack.c:1945
msgid "Too many arguments."
msgstr "Прекалено много аргументи."
@@ -7068,7 +7140,7 @@ msgstr "опциите „--bare“ и „--separate-git-dir“ са несъв
msgid "repository '%s' does not exist"
msgstr "не съществува хранилище „%s“"
-#: builtin/clone.c:933 builtin/fetch.c:1360
+#: builtin/clone.c:933 builtin/fetch.c:1358
#, c-format
msgid "depth %s is not a positive number"
msgstr "дълбочината трябва да е положително цяло число, а не „%s“"
@@ -7084,7 +7156,7 @@ msgid "working tree '%s' already exists."
msgstr "в „%s“ вече съществува работно дърво."
#: builtin/clone.c:968 builtin/clone.c:979 builtin/difftool.c:270
-#: builtin/worktree.c:240 builtin/worktree.c:270
+#: builtin/worktree.c:253 builtin/worktree.c:283
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "родителските директории на „%s“ не могат да бъдат създадени"
@@ -7138,17 +7210,12 @@ msgstr "клонираното хранилище е плитко, затова
msgid "--local is ignored"
msgstr "опцията „--local“ се прескача"
-#: builtin/clone.c:1087
-#, c-format
-msgid "Don't know how to clone %s"
-msgstr "Не се поддържа клониране на връзки от вида „%s“ "
-
-#: builtin/clone.c:1142 builtin/clone.c:1150
+#: builtin/clone.c:1139 builtin/clone.c:1147
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Отдалеченият клон „%s“ липсва в клонираното хранилище „%s“"
-#: builtin/clone.c:1153
+#: builtin/clone.c:1150
msgid "You appear to have cloned an empty repository."
msgstr "Изглежда клонирахте празно хранилище."
@@ -7207,7 +7274,8 @@ msgid ""
" git commit --amend --reset-author\n"
msgstr ""
"Името и адресът за е-поща са настроени автоматично на базата на името на\n"
-"потребителя и името на машината. Проверете дали са верни. Можете да спрете\n"
+"потребителя и името на машината. Проверете дали са верни. Можете да "
+"спрете\n"
"това съобщение като изрично зададете стойностите. Изпълнете следната "
"команда\n"
"и следвайте инструкциите в текстовия ви редактор, за да редактирате\n"
@@ -7234,7 +7302,8 @@ msgid ""
" git commit --amend --reset-author\n"
msgstr ""
"Името и адресът за е-поща са настроени автоматично на базата на името на\n"
-"потребителя и името на машината. Проверете дали са верни. Можете да спрете\n"
+"потребителя и името на машината. Проверете дали са верни. Можете да "
+"спрете\n"
"това съобщение като изрично зададете стойностите:\n"
"\n"
" git config --global user.name \"Вашето Име\"\n"
@@ -7354,7 +7423,7 @@ msgstr ""
"не може да се избере знак за коментар — в текущото съобщение за подаване са "
"използвани всички подобни знаци"
-#: builtin/commit.c:697 builtin/commit.c:730 builtin/commit.c:1100
+#: builtin/commit.c:697 builtin/commit.c:730 builtin/commit.c:1114
#, c-format
msgid "could not lookup commit %s"
msgstr "следното подаване не може да бъде открито: %s"
@@ -7455,134 +7524,144 @@ msgstr "%sПодаващ: %.*s <%.*s>"
msgid "Cannot read index"
msgstr "Индексът не може да бъде прочетен"
-#: builtin/commit.c:958
+#: builtin/commit.c:959
msgid "Error building trees"
msgstr "Грешка при изграждане на дърветата"
-#: builtin/commit.c:972 builtin/tag.c:252
+#: builtin/commit.c:973 builtin/tag.c:252
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Подайте съобщението с някоя от опциите „-m“ или „-F“.\n"
-#: builtin/commit.c:1075
+#: builtin/commit.c:1076
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr ""
"Опцията „--author '%s'“ не отговаря на форма̀та „Име <е-поща>“ и не съвпада с "
"никой автор"
-#: builtin/commit.c:1090 builtin/commit.c:1335
+#: builtin/commit.c:1090
+#, c-format
+msgid "Invalid ignored mode '%s'"
+msgstr "Неправилен режим за игнорираните файлове: „%s“"
+
+#: builtin/commit.c:1104 builtin/commit.c:1349
#, c-format
msgid "Invalid untracked files mode '%s'"
-msgstr "Неправилна стойност за неследените файлове: „%s“"
+msgstr "Неправилен режим за неследените файлове: „%s“"
-#: builtin/commit.c:1128
+#: builtin/commit.c:1142
msgid "--long and -z are incompatible"
msgstr "Опциите „--long“ и „-z“ са несъвместими."
-#: builtin/commit.c:1158
+#: builtin/commit.c:1172
msgid "Using both --reset-author and --author does not make sense"
msgstr "Опциите „--reset-author“ и „--author“ са несъвместими."
-#: builtin/commit.c:1167
+#: builtin/commit.c:1181
msgid "You have nothing to amend."
msgstr "Няма какво да бъде поправено."
-#: builtin/commit.c:1170
+#: builtin/commit.c:1184
msgid "You are in the middle of a merge -- cannot amend."
msgstr "В момента се извършва сливане, не можете да поправяте."
-#: builtin/commit.c:1172
+#: builtin/commit.c:1186
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "В момента се извършва отбиране на подаване, не можете да поправяте."
-#: builtin/commit.c:1175
+#: builtin/commit.c:1189
msgid "Options --squash and --fixup cannot be used together"
msgstr "Опциите „--squash“ и „--fixup“ са несъвместими."
-#: builtin/commit.c:1185
+#: builtin/commit.c:1199
msgid "Only one of -c/-C/-F/--fixup can be used."
msgstr "Опциите „-c“, „-C“, „-F“ и „--fixup““ са несъвместими."
-#: builtin/commit.c:1187
+#: builtin/commit.c:1201
msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
msgstr "Опцията „-m“ е несъвместима с „-c“, „-C“, „-F“ и „--fixup“."
-#: builtin/commit.c:1195
+#: builtin/commit.c:1209
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr ""
"Опцията „--reset-author“ може да се използва само заедно с „-C“, „-c“ или\n"
"„--amend“."
-#: builtin/commit.c:1212
+#: builtin/commit.c:1226
msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
msgstr ""
"Опциите „--include“, „--only“, „--all“, „--interactive“ и „--patch“ са\n"
"несъвместими."
-#: builtin/commit.c:1214
+#: builtin/commit.c:1228
msgid "No paths with --include/--only does not make sense."
msgstr "Опциите „--include“ и „--only“ изискват аргументи."
-#: builtin/commit.c:1226 builtin/tag.c:535
+#: builtin/commit.c:1240 builtin/tag.c:535
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Несъществуващ режим на изчистване „%s“"
-#: builtin/commit.c:1231
+#: builtin/commit.c:1245
msgid "Paths with -a does not make sense."
msgstr "Опцията „-a“ е несъвместима със задаването на пътища."
-#: builtin/commit.c:1349 builtin/commit.c:1626
+#: builtin/commit.c:1363 builtin/commit.c:1648
msgid "show status concisely"
msgstr "кратка информация за състоянието"
-#: builtin/commit.c:1351 builtin/commit.c:1628
+#: builtin/commit.c:1365 builtin/commit.c:1650
msgid "show branch information"
msgstr "информация за клоните"
-#: builtin/commit.c:1353
+#: builtin/commit.c:1367
msgid "show stash information"
msgstr "информация за скатаното"
-#: builtin/commit.c:1355
+#: builtin/commit.c:1369
msgid "version"
msgstr "версия"
-#: builtin/commit.c:1355 builtin/commit.c:1630 builtin/push.c:530
-#: builtin/worktree.c:469
+#: builtin/commit.c:1369 builtin/commit.c:1652 builtin/push.c:542
+#: builtin/worktree.c:523
msgid "machine-readable output"
msgstr "формат на изхода за четене от програма"
-#: builtin/commit.c:1358 builtin/commit.c:1632
+#: builtin/commit.c:1372 builtin/commit.c:1654
msgid "show status in long format (default)"
msgstr "подробна информация за състоянието (стандартно)"
-#: builtin/commit.c:1361 builtin/commit.c:1635
+#: builtin/commit.c:1375 builtin/commit.c:1657
msgid "terminate entries with NUL"
msgstr "разделяне на елементите с нулевия знак „NUL“"
-#: builtin/commit.c:1363 builtin/commit.c:1638 builtin/fast-export.c:999
-#: builtin/fast-export.c:1002 builtin/tag.c:390
+#: builtin/commit.c:1377 builtin/commit.c:1381 builtin/commit.c:1660
+#: builtin/fast-export.c:999 builtin/fast-export.c:1002 builtin/tag.c:390
msgid "mode"
msgstr "РЕЖИМ"
-#: builtin/commit.c:1364 builtin/commit.c:1638
+#: builtin/commit.c:1378 builtin/commit.c:1660
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr ""
"извеждане на неследените файлове. Възможните РЕЖИМи са „all“ (подробна "
"информация), „normal“ (кратка информация), „no“ (без неследените файлове). "
"Стандартният РЕЖИМ е: „all“."
-#: builtin/commit.c:1367
-msgid "show ignored files"
-msgstr "извеждане на игнорираните файлове"
+#: builtin/commit.c:1382
+msgid ""
+"show ignored files, optional modes: traditional, matching, no. (Default: "
+"traditional)"
+msgstr ""
+"извеждане на игнорираните файлове. Възможните РЕЖИМи са "
+"„traditional“ (традиционен), „matching“ (напасващи), „no“ (без игнорираните "
+"файлове). Стандартният РЕЖИМ е: „traditional“."
-#: builtin/commit.c:1368 parse-options.h:155
+#: builtin/commit.c:1384 parse-options.h:155
msgid "when"
msgstr "КОГА"
-#: builtin/commit.c:1369
+#: builtin/commit.c:1385
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
@@ -7591,206 +7670,216 @@ msgstr ""
"една от „all“ (всички), „dirty“ (тези с неподадени промени), "
"„untracked“ (неследени)"
-#: builtin/commit.c:1371
+#: builtin/commit.c:1387
msgid "list untracked files in columns"
msgstr "извеждане на неследените файлове в колони"
-#: builtin/commit.c:1449
+#: builtin/commit.c:1406
+msgid "Unsupported combination of ignored and untracked-files arguments"
+msgstr "Неподдържана комбинация от аргументи за игнорирани и неследени файлове"
+
+#: builtin/commit.c:1469
msgid "couldn't look up newly created commit"
msgstr "току що създаденото подаване не може да бъде открито"
-#: builtin/commit.c:1451
+#: builtin/commit.c:1471
msgid "could not parse newly created commit"
msgstr "току що създаденото подаване не може да бъде анализирано"
-#: builtin/commit.c:1496
+#: builtin/commit.c:1516
+msgid "unable to resolve HEAD after creating commit"
+msgstr ""
+"състоянието сочено от указателя „HEAD“ не може да бъде открито след "
+"подаването"
+
+#: builtin/commit.c:1518
msgid "detached HEAD"
msgstr "несвързан връх „HEAD“"
-#: builtin/commit.c:1499
+#: builtin/commit.c:1521
msgid " (root-commit)"
msgstr " (начално подаване)"
-#: builtin/commit.c:1596
+#: builtin/commit.c:1618
msgid "suppress summary after successful commit"
msgstr "без информация след успешно подаване"
-#: builtin/commit.c:1597
+#: builtin/commit.c:1619
msgid "show diff in commit message template"
msgstr "добавяне на разликата към шаблона за съобщението при подаване"
-#: builtin/commit.c:1599
+#: builtin/commit.c:1621
msgid "Commit message options"
msgstr "Опции за съобщението при подаване"
-#: builtin/commit.c:1600 builtin/tag.c:388
+#: builtin/commit.c:1622 builtin/tag.c:388
msgid "read message from file"
msgstr "взимане на съобщението от ФАЙЛ"
-#: builtin/commit.c:1601
+#: builtin/commit.c:1623
msgid "author"
msgstr "АВТОР"
-#: builtin/commit.c:1601
+#: builtin/commit.c:1623
msgid "override author for commit"
msgstr "задаване на АВТОР за подаването"
-#: builtin/commit.c:1602 builtin/gc.c:359
+#: builtin/commit.c:1624 builtin/gc.c:359
msgid "date"
msgstr "ДАТА"
-#: builtin/commit.c:1602
+#: builtin/commit.c:1624
msgid "override date for commit"
msgstr "задаване на ДАТА за подаването"
-#: builtin/commit.c:1603 builtin/merge.c:225 builtin/notes.c:402
+#: builtin/commit.c:1625 builtin/merge.c:225 builtin/notes.c:402
#: builtin/notes.c:565 builtin/tag.c:386
msgid "message"
msgstr "СЪОБЩЕНИЕ"
-#: builtin/commit.c:1603
+#: builtin/commit.c:1625
msgid "commit message"
msgstr "СЪОБЩЕНИЕ при подаване"
-#: builtin/commit.c:1604 builtin/commit.c:1605 builtin/commit.c:1606
-#: builtin/commit.c:1607 parse-options.h:257 ref-filter.h:92
+#: builtin/commit.c:1626 builtin/commit.c:1627 builtin/commit.c:1628
+#: builtin/commit.c:1629 parse-options.h:257 ref-filter.h:92
msgid "commit"
msgstr "ПОДАВАНЕ"
-#: builtin/commit.c:1604
+#: builtin/commit.c:1626
msgid "reuse and edit message from specified commit"
msgstr "преизползване и редактиране на съобщението от указаното ПОДАВАНЕ"
-#: builtin/commit.c:1605
+#: builtin/commit.c:1627
msgid "reuse message from specified commit"
msgstr "преизползване на съобщението от указаното ПОДАВАНЕ"
-#: builtin/commit.c:1606
+#: builtin/commit.c:1628
msgid "use autosquash formatted message to fixup specified commit"
msgstr ""
"използване на автоматичното съобщение при смачкване за вкарване на указаното "
"ПОДАВАНЕ в предното без следа"
-#: builtin/commit.c:1607
+#: builtin/commit.c:1629
msgid "use autosquash formatted message to squash specified commit"
msgstr ""
"използване на автоматичното съобщение при смачкване за смачкване на "
"указаното ПОДАВАНЕ в предното"
-#: builtin/commit.c:1608
+#: builtin/commit.c:1630
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr ""
"смяна на автора да съвпада с подаващия (използва се с „-C“/„-c“/„--amend“)"
-#: builtin/commit.c:1609 builtin/log.c:1436 builtin/merge.c:239
-#: builtin/revert.c:105
+#: builtin/commit.c:1631 builtin/log.c:1443 builtin/merge.c:239
+#: builtin/pull.c:149 builtin/revert.c:105
msgid "add Signed-off-by:"
msgstr "добавяне на поле за подпис — „Signed-off-by:“"
-#: builtin/commit.c:1610
+#: builtin/commit.c:1632
msgid "use specified template file"
msgstr "използване на указания шаблонен ФАЙЛ"
-#: builtin/commit.c:1611
+#: builtin/commit.c:1633
msgid "force edit of commit"
msgstr "редактиране на подаване"
-#: builtin/commit.c:1612
+#: builtin/commit.c:1634
msgid "default"
msgstr "стандартно"
-#: builtin/commit.c:1612 builtin/tag.c:391
+#: builtin/commit.c:1634 builtin/tag.c:391
msgid "how to strip spaces and #comments from message"
msgstr "кои празни знаци и #коментари да се махат от съобщенията"
-#: builtin/commit.c:1613
+#: builtin/commit.c:1635
msgid "include status in commit message template"
msgstr "вмъкване на състоянието в шаблона за съобщението при подаване"
-#: builtin/commit.c:1615 builtin/merge.c:237 builtin/pull.c:173
+#: builtin/commit.c:1637 builtin/merge.c:237 builtin/pull.c:179
#: builtin/revert.c:113
msgid "GPG sign commit"
msgstr "подписване на подаването с GPG"
-#: builtin/commit.c:1618
+#: builtin/commit.c:1640
msgid "Commit contents options"
msgstr "Опции за избор на файлове при подаване"
-#: builtin/commit.c:1619
+#: builtin/commit.c:1641
msgid "commit all changed files"
msgstr "подаване на всички променени файлове"
-#: builtin/commit.c:1620
+#: builtin/commit.c:1642
msgid "add specified files to index for commit"
msgstr "добавяне на указаните файлове към индекса за подаване"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1643
msgid "interactively add files"
msgstr "интерактивно добавяне на файлове"
-#: builtin/commit.c:1622
+#: builtin/commit.c:1644
msgid "interactively add changes"
msgstr "интерактивно добавяне на промени"
-#: builtin/commit.c:1623
+#: builtin/commit.c:1645
msgid "commit only specified files"
msgstr "подаване само на указаните файлове"
-#: builtin/commit.c:1624
+#: builtin/commit.c:1646
msgid "bypass pre-commit and commit-msg hooks"
msgstr ""
"без изпълнение на куките преди подаване и при промяна на съобщението за "
"подаване (pre-commit и commit-msg)"
-#: builtin/commit.c:1625
+#: builtin/commit.c:1647
msgid "show what would be committed"
msgstr "отпечатване на това, което би било подадено"
-#: builtin/commit.c:1636
+#: builtin/commit.c:1658
msgid "amend previous commit"
msgstr "поправяне на предишното подаване"
-#: builtin/commit.c:1637
+#: builtin/commit.c:1659
msgid "bypass post-rewrite hook"
msgstr "без изпълнение на куката след презаписване (post-rewrite)"
-#: builtin/commit.c:1642
+#: builtin/commit.c:1664
msgid "ok to record an empty change"
msgstr "позволяване на празни подавания"
-#: builtin/commit.c:1644
+#: builtin/commit.c:1666
msgid "ok to record a change with an empty message"
msgstr "позволяване на подавания с празни съобщения"
-#: builtin/commit.c:1674
+#: builtin/commit.c:1696
msgid "could not parse HEAD commit"
msgstr "върховото подаване „HEAD“ не може да бъде прочетено"
-#: builtin/commit.c:1719
+#: builtin/commit.c:1741
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Повреден файл за върха за сливането „MERGE_HEAD“ (%s)"
-#: builtin/commit.c:1726
+#: builtin/commit.c:1748
msgid "could not read MERGE_MODE"
msgstr "режимът на сливане „MERGE_MODE“ не може да бъде прочетен"
-#: builtin/commit.c:1745
+#: builtin/commit.c:1767
#, c-format
msgid "could not read commit message: %s"
msgstr "съобщението за подаване не може да бъде прочетено: %s"
-#: builtin/commit.c:1756
+#: builtin/commit.c:1778
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Неизвършване на подаване поради празно съобщение.\n"
-#: builtin/commit.c:1761
+#: builtin/commit.c:1783
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Неизвършване на подаване поради нередактирано съобщение.\n"
-#: builtin/commit.c:1809
+#: builtin/commit.c:1831
msgid ""
"Repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -7804,146 +7893,150 @@ msgstr ""
msgid "git config [<options>]"
msgstr "git config [ОПЦИЯ…]"
-#: builtin/config.c:57
+#: builtin/config.c:58
msgid "Config file location"
msgstr "Местоположение на конфигурационния файл"
-#: builtin/config.c:58
+#: builtin/config.c:59
msgid "use global config file"
msgstr "използване на глобалния конфигурационен файл"
-#: builtin/config.c:59
+#: builtin/config.c:60
msgid "use system config file"
msgstr "използване на системния конфигурационен файл"
-#: builtin/config.c:60
+#: builtin/config.c:61
msgid "use repository config file"
msgstr "използване на конфигурационния файл на хранилището"
-#: builtin/config.c:61
+#: builtin/config.c:62
msgid "use given config file"
msgstr "използване на зададения конфигурационен ФАЙЛ"
-#: builtin/config.c:62
+#: builtin/config.c:63
msgid "blob-id"
msgstr "ИДЕНТИФИКАТОР"
-#: builtin/config.c:62
+#: builtin/config.c:63
msgid "read config from given blob object"
msgstr ""
"изчитане на конфигурацията от BLOB с този ИДЕНТИФИКАТОР на съдържанието"
-#: builtin/config.c:63
+#: builtin/config.c:64
msgid "Action"
msgstr "Действие"
-#: builtin/config.c:64
+#: builtin/config.c:65
msgid "get value: name [value-regex]"
msgstr "извеждане на стойност: ИМЕ [РЕГУЛЯРЕН_ИЗРАЗ_ЗА_СТОЙНОСТТА]"
-#: builtin/config.c:65
+#: builtin/config.c:66
msgid "get all values: key [value-regex]"
msgstr "извеждане на всички стойности: ключ [РЕГУЛЯРЕН_ИЗРАЗ_ЗА_СТОЙНОСТТА]"
-#: builtin/config.c:66
+#: builtin/config.c:67
msgid "get values for regexp: name-regex [value-regex]"
msgstr ""
"извеждане на стойностите за РЕГУЛЯРНия_ИЗРАЗ: РЕГУЛЯРЕН_ИЗРАЗ_ЗА_ИМЕТО "
"[РЕГУЛЯРЕН_ИЗРАЗ_ЗА_СТОЙНОСТТА]"
-#: builtin/config.c:67
+#: builtin/config.c:68
msgid "get value specific for the URL: section[.var] URL"
msgstr "извеждане на стойността за указания адрес: РАЗДЕЛ[.ПРОМЕНЛИВА] АДРЕС"
-#: builtin/config.c:68
+#: builtin/config.c:69
msgid "replace all matching variables: name value [value_regex]"
msgstr ""
"замяна на всички съвпадащи променливи: ИМЕ СТОЙНОСТ "
"[РЕГУЛЯРЕН_ИЗРАЗ_ЗА_СТОЙНОСТТА]"
-#: builtin/config.c:69
+#: builtin/config.c:70
msgid "add a new variable: name value"
msgstr "добавяне на нова променлива: ИМЕ СТОЙНОСТ"
-#: builtin/config.c:70
+#: builtin/config.c:71
msgid "remove a variable: name [value-regex]"
msgstr "изтриване на променлива: ИМЕ [РЕГУЛЯРЕН_ИЗРАЗ_ЗА_СТОЙНОСТТА]"
-#: builtin/config.c:71
+#: builtin/config.c:72
msgid "remove all matches: name [value-regex]"
msgstr "изтриване на всички съвпадащи: ИМЕ [РЕГУЛЯРЕН_ИЗРАЗ_ЗА_СТОЙНОСТТА]"
-#: builtin/config.c:72
+#: builtin/config.c:73
msgid "rename section: old-name new-name"
msgstr "преименуване на раздел: СТАРО_ИМЕ НОВО_ИМЕ"
-#: builtin/config.c:73
+#: builtin/config.c:74
msgid "remove a section: name"
msgstr "изтриване на раздел: ИМЕ"
-#: builtin/config.c:74
+#: builtin/config.c:75
msgid "list all"
msgstr "изброяване на всички"
-#: builtin/config.c:75
+#: builtin/config.c:76
msgid "open an editor"
msgstr "отваряне на редактор"
-#: builtin/config.c:76
+#: builtin/config.c:77
msgid "find the color configured: slot [default]"
msgstr "извеждане на зададения цвят: номер [стандартно]"
-#: builtin/config.c:77
+#: builtin/config.c:78
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "извеждане на зададения цвят: номер (стандартният изход е терминал)"
-#: builtin/config.c:78
+#: builtin/config.c:79
msgid "Type"
msgstr "Вид"
-#: builtin/config.c:79
+#: builtin/config.c:80
msgid "value is \"true\" or \"false\""
msgstr "СТОЙНОСТТА е „true“ (истина) или „false“ (лъжа)"
-#: builtin/config.c:80
+#: builtin/config.c:81
msgid "value is decimal number"
msgstr "СТОЙНОСТТА е цяло, десетично число"
-#: builtin/config.c:81
+#: builtin/config.c:82
msgid "value is --bool or --int"
msgstr "СТОЙНОСТТА е „--bool“ (булева) или „--int“ (десетично цяло число)"
-#: builtin/config.c:82
+#: builtin/config.c:83
msgid "value is a path (file or directory name)"
msgstr "СТОЙНОСТТА е път (до файл или директория)"
-#: builtin/config.c:83
+#: builtin/config.c:84
+msgid "value is an expiry date"
+msgstr "стойността е период на валидност/запазване"
+
+#: builtin/config.c:85
msgid "Other"
msgstr "Други"
-#: builtin/config.c:84
+#: builtin/config.c:86
msgid "terminate values with NUL byte"
msgstr "разделяне на стойностите с нулевия знак „NUL“"
-#: builtin/config.c:85
+#: builtin/config.c:87
msgid "show variable names only"
msgstr "извеждане на имената на променливите"
-#: builtin/config.c:86
+#: builtin/config.c:88
msgid "respect include directives on lookup"
msgstr "при търсене да се уважат и директивите за включване"
-#: builtin/config.c:87
+#: builtin/config.c:89
msgid "show origin of config (file, standard input, blob, command line)"
msgstr ""
"извеждане на мястото на задаване на настройката (файл, стандартен вход, "
"обект BLOB, команден ред)"
-#: builtin/config.c:327
+#: builtin/config.c:335
msgid "unable to parse default color value"
msgstr "неразпозната стойност на стандартния цвят"
-#: builtin/config.c:471
+#: builtin/config.c:479
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -7958,16 +8051,16 @@ msgstr ""
"#\tname = %s\n"
"#\temail = %s\n"
-#: builtin/config.c:499
+#: builtin/config.c:507
msgid "--local can only be used inside a git repository"
msgstr "„--local“ може да се използва само в хранилище"
-#: builtin/config.c:624
+#: builtin/config.c:632
#, c-format
msgid "cannot create configuration file %s"
msgstr "конфигурационният файл „%s“ не може да бъде създаден"
-#: builtin/config.c:637
+#: builtin/config.c:645
#, c-format
msgid ""
"cannot overwrite multiple values with a single value\n"
@@ -7985,67 +8078,57 @@ msgstr "git count-objects [-v] [-H | --human-readable]"
msgid "print sizes in human readable format"
msgstr "извеждане на размерите на обектите във формат лесно четим от хора"
-#: builtin/describe.c:19
+#: builtin/describe.c:22
msgid "git describe [<options>] [<commit-ish>...]"
msgstr "git describe [ОПЦИЯ…] УКАЗАТЕЛ_КЪМ_ПОДАВАНЕ…"
-#: builtin/describe.c:20
+#: builtin/describe.c:23
msgid "git describe [<options>] --dirty"
msgstr "git describe [ОПЦИЯ…] --dirty"
-#: builtin/describe.c:54
+#: builtin/describe.c:57
msgid "head"
msgstr "основно"
-#: builtin/describe.c:54
+#: builtin/describe.c:57
msgid "lightweight"
msgstr "кратко"
-#: builtin/describe.c:54
+#: builtin/describe.c:57
msgid "annotated"
msgstr "анотирано"
-#: builtin/describe.c:264
+#: builtin/describe.c:267
#, c-format
msgid "annotated tag %s not available"
msgstr "не съществува анотиран етикет „%s“"
-#: builtin/describe.c:268
+#: builtin/describe.c:271
#, c-format
msgid "annotated tag %s has no embedded name"
msgstr "в анотирания етикет „%s“ липсва вградено име"
-#: builtin/describe.c:270
+#: builtin/describe.c:273
#, c-format
msgid "tag '%s' is really '%s' here"
msgstr "етикетът „%s“ тук е всъщност „%s“"
-#: builtin/describe.c:297 builtin/log.c:493
-#, c-format
-msgid "Not a valid object name %s"
-msgstr "Неправилно име на обект „%s“"
-
-#: builtin/describe.c:300
-#, c-format
-msgid "%s is not a valid '%s' object"
-msgstr "„%s“ е неправилен обект „%s“"
-
-#: builtin/describe.c:317
+#: builtin/describe.c:314
#, c-format
msgid "no tag exactly matches '%s'"
msgstr "никой етикет не напасва точно „%s“"
-#: builtin/describe.c:319
+#: builtin/describe.c:316
#, c-format
-msgid "searching to describe %s\n"
-msgstr "търсене за описание на „%s“\n"
+msgid "No exact match on refs or tags, searching to describe\n"
+msgstr "Никоя версия и етикет не напасват точно. Търси се по описание\n"
-#: builtin/describe.c:366
+#: builtin/describe.c:363
#, c-format
msgid "finished search at %s\n"
msgstr "търсенето приключи при „%s“\n"
-#: builtin/describe.c:393
+#: builtin/describe.c:389
#, c-format
msgid ""
"No annotated tags can describe '%s'.\n"
@@ -8054,7 +8137,7 @@ msgstr ""
"Никой анотиран етикет не описва „%s“.\n"
"Съществуват и неанотирани етикети. Пробвайте с опцията „--tags“."
-#: builtin/describe.c:397
+#: builtin/describe.c:393
#, c-format
msgid ""
"No tags can describe '%s'.\n"
@@ -8063,12 +8146,12 @@ msgstr ""
"Никой етикет не описва „%s“.\n"
"Пробвайте с опцията „--always“ или създайте етикети."
-#: builtin/describe.c:427
+#: builtin/describe.c:423
#, c-format
msgid "traversed %lu commits\n"
msgstr "претърсени са %lu подавания\n"
-#: builtin/describe.c:430
+#: builtin/describe.c:426
#, c-format
msgid ""
"more than %i tags found; listed %i most recent\n"
@@ -8077,78 +8160,93 @@ msgstr ""
"открити са над %i етикета, изведени са последните %i,\n"
"търсенето бе прекратено при „%s“.\n"
-#: builtin/describe.c:452
+#: builtin/describe.c:494
+#, c-format
+msgid "describe %s\n"
+msgstr "описание на „%s“\n"
+
+#: builtin/describe.c:497 builtin/log.c:500
+#, c-format
+msgid "Not a valid object name %s"
+msgstr "Неправилно име на обект „%s“"
+
+#: builtin/describe.c:505
+#, c-format
+msgid "%s is neither a commit nor blob"
+msgstr "„%s“ не е нито подаване, нито обект BLOB"
+
+#: builtin/describe.c:519
msgid "find the tag that comes after the commit"
msgstr "откриване на етикета, който следва подаване"
-#: builtin/describe.c:453
+#: builtin/describe.c:520
msgid "debug search strategy on stderr"
msgstr ""
"извеждане на информация за трасиране на стратегията за търсене на "
"стандартната грешка"
-#: builtin/describe.c:454
+#: builtin/describe.c:521
msgid "use any ref"
msgstr "използване на произволен указател"
-#: builtin/describe.c:455
+#: builtin/describe.c:522
msgid "use any tag, even unannotated"
msgstr "използване на всеки етикет — включително и неанотираните"
-#: builtin/describe.c:456
+#: builtin/describe.c:523
msgid "always use long format"
msgstr "винаги да се ползва дългият формат"
-#: builtin/describe.c:457
+#: builtin/describe.c:524
msgid "only follow first parent"
msgstr "проследяване само на първия родител"
-#: builtin/describe.c:460
+#: builtin/describe.c:527
msgid "only output exact matches"
msgstr "извеждане само на точните съвпадения"
-#: builtin/describe.c:462
+#: builtin/describe.c:529
msgid "consider <n> most recent tags (default: 10)"
msgstr "да се търси само в този БРОЙ последни етикети (стандартно: 10)"
-#: builtin/describe.c:464
+#: builtin/describe.c:531
msgid "only consider tags matching <pattern>"
msgstr "да се търси само измежду етикетите напасващи този ШАБЛОН"
-#: builtin/describe.c:466
+#: builtin/describe.c:533
msgid "do not consider tags matching <pattern>"
msgstr "да не се търси измежду етикетите напасващи този ШАБЛОН"
-#: builtin/describe.c:468 builtin/name-rev.c:406
+#: builtin/describe.c:535 builtin/name-rev.c:406
msgid "show abbreviated commit object as fallback"
msgstr "извеждане на съкратено име на обект като резервен вариант"
-#: builtin/describe.c:469 builtin/describe.c:472
+#: builtin/describe.c:536 builtin/describe.c:539
msgid "mark"
msgstr "МАРКЕР"
-#: builtin/describe.c:470
+#: builtin/describe.c:537
msgid "append <mark> on dirty working tree (default: \"-dirty\")"
msgstr "добавяне на такъв МАРКЕР на работното дърво (стандартно е „-dirty“)"
-#: builtin/describe.c:473
+#: builtin/describe.c:540
msgid "append <mark> on broken working tree (default: \"-broken\")"
msgstr ""
"добавяне на такъв МАРКЕР на счупеното работно дърво (стандартно е „-broken“)"
-#: builtin/describe.c:491
+#: builtin/describe.c:558
msgid "--long is incompatible with --abbrev=0"
msgstr "Опциите „--long“ и „--abbrev=0“ са несъвместими"
-#: builtin/describe.c:520
+#: builtin/describe.c:587
msgid "No names found, cannot describe anything."
msgstr "Не са открити имена — нищо не може да бъде описано."
-#: builtin/describe.c:563
+#: builtin/describe.c:637
msgid "--dirty is incompatible with commit-ishes"
msgstr "опцията „--dirty“ е несъвместима с указател към подаване"
-#: builtin/describe.c:565
+#: builtin/describe.c:639
msgid "--broken is incompatible with commit-ishes"
msgstr "опцията „--broken“ е несъвместима с указател към подаване"
@@ -8157,26 +8255,26 @@ msgstr "опцията „--broken“ е несъвместима с указа
msgid "'%s': not a regular file or symlink"
msgstr "„%s“: не е нито обикновен файл, нито символна връзка"
-#: builtin/diff.c:235
+#: builtin/diff.c:234
#, c-format
msgid "invalid option: %s"
msgstr "неправилна опция: %s"
-#: builtin/diff.c:357
+#: builtin/diff.c:356
msgid "Not a git repository"
msgstr "Не е хранилище на Git"
-#: builtin/diff.c:400
+#: builtin/diff.c:399
#, c-format
msgid "invalid object '%s' given."
msgstr "зададен е неправилен обект „%s“."
-#: builtin/diff.c:409
+#: builtin/diff.c:408
#, c-format
msgid "more than two blobs given: '%s'"
msgstr "зададени са повече от 2 обекта BLOB: „%s“"
-#: builtin/diff.c:414
+#: builtin/diff.c:413
#, c-format
msgid "unhandled object '%s' given."
msgstr "зададен е неподдържан обект „%s“."
@@ -8213,55 +8311,55 @@ msgstr ""
"комбинираните формати на разликите („-c“ и „--cc“) не се поддържат\n"
"в режима за разлики върху директории („-d“ и „--dir-diff“)."
-#: builtin/difftool.c:633
+#: builtin/difftool.c:632
#, c-format
msgid "both files modified: '%s' and '%s'."
msgstr "и двата файла са променени: „%s“ и „%s“."
-#: builtin/difftool.c:635
+#: builtin/difftool.c:634
msgid "working tree file has been left."
msgstr "работното дърво е изоставено."
-#: builtin/difftool.c:646
+#: builtin/difftool.c:645
#, c-format
msgid "temporary files exist in '%s'."
msgstr "в „%s“ има временни файлове."
-#: builtin/difftool.c:647
+#: builtin/difftool.c:646
msgid "you may want to cleanup or recover these."
msgstr "възможно е да ги изчистите или възстановите"
-#: builtin/difftool.c:696
+#: builtin/difftool.c:695
msgid "use `diff.guitool` instead of `diff.tool`"
msgstr "използвайте „diff.guitool“ вместо „diff.tool“"
-#: builtin/difftool.c:698
+#: builtin/difftool.c:697
msgid "perform a full-directory diff"
msgstr "разлика по директории"
-#: builtin/difftool.c:700
+#: builtin/difftool.c:699
msgid "do not prompt before launching a diff tool"
msgstr "стартиране на ПРОГРАМАта за разлики без предупреждение"
-#: builtin/difftool.c:706
+#: builtin/difftool.c:705
msgid "use symlinks in dir-diff mode"
msgstr "следване на символните връзки при разлика по директории"
-#: builtin/difftool.c:707
+#: builtin/difftool.c:706
msgid "<tool>"
msgstr "ПРОГРАМА"
-#: builtin/difftool.c:708
+#: builtin/difftool.c:707
msgid "use the specified diff tool"
msgstr "използване на указаната ПРОГРАМА"
-#: builtin/difftool.c:710
+#: builtin/difftool.c:709
msgid "print a list of diff tools that may be used with `--tool`"
msgstr ""
"извеждане на списък с всички ПРОГРАМи, които може да се ползват с опцията „--"
"tool“"
-#: builtin/difftool.c:713
+#: builtin/difftool.c:712
msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
@@ -8269,19 +8367,19 @@ msgstr ""
"„git-difftool“ да спре работа, когато стартираната ПРОГРАМА завърши с "
"ненулев код"
-#: builtin/difftool.c:715
+#: builtin/difftool.c:714
msgid "<command>"
msgstr "КОМАНДА"
-#: builtin/difftool.c:716
+#: builtin/difftool.c:715
msgid "specify a custom command for viewing diffs"
msgstr "команда за разглеждане на разлики"
-#: builtin/difftool.c:740
+#: builtin/difftool.c:739
msgid "no <tool> given for --tool=<tool>"
msgstr "не е зададена програма за „--tool=ПРОГРАМА“"
-#: builtin/difftool.c:747
+#: builtin/difftool.c:746
msgid "no <cmd> given for --extcmd=<cmd>"
msgstr "не е зададена команда за „--extcmd=КОМАНДА“"
@@ -8337,95 +8435,95 @@ msgstr "Прилагане на УКАЗАТЕЛя_НА_ВЕРСИЯ към из
msgid "anonymize output"
msgstr "анонимизиране на извежданата информация"
-#: builtin/fetch.c:23
+#: builtin/fetch.c:24
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [ОПЦИЯ…] [ХРАНИЛИЩЕ [УКАЗАТЕЛ…]]"
-#: builtin/fetch.c:24
+#: builtin/fetch.c:25
msgid "git fetch [<options>] <group>"
msgstr "git fetch [ОПЦИЯ…] ГРУПА"
-#: builtin/fetch.c:25
+#: builtin/fetch.c:26
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [ОПЦИЯ…] [(ХРАНИЛИЩЕ | ГРУПА)…]"
-#: builtin/fetch.c:26
+#: builtin/fetch.c:27
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [ОПЦИЯ…]"
-#: builtin/fetch.c:112 builtin/pull.c:182
+#: builtin/fetch.c:113 builtin/pull.c:188
msgid "fetch from all remotes"
msgstr "доставяне от всички отдалечени хранилища"
-#: builtin/fetch.c:114 builtin/pull.c:185
+#: builtin/fetch.c:115 builtin/pull.c:191
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "добавяне към „.git/FETCH_HEAD“ вместо замяна"
-#: builtin/fetch.c:116 builtin/pull.c:188
+#: builtin/fetch.c:117 builtin/pull.c:194
msgid "path to upload pack on remote end"
msgstr "отдалечен път, където да се качи пакетът"
-#: builtin/fetch.c:117 builtin/pull.c:190
+#: builtin/fetch.c:118 builtin/pull.c:196
msgid "force overwrite of local branch"
msgstr "принудително презаписване на локалния клон"
-#: builtin/fetch.c:119
+#: builtin/fetch.c:120
msgid "fetch from multiple remotes"
msgstr "доставяне от множество отдалечени хранилища"
-#: builtin/fetch.c:121 builtin/pull.c:192
+#: builtin/fetch.c:122 builtin/pull.c:198
msgid "fetch all tags and associated objects"
msgstr "доставяне на всички етикети и принадлежащи обекти"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124
msgid "do not fetch all tags (--no-tags)"
msgstr "без доставянето на всички етикети „--no-tags“"
-#: builtin/fetch.c:125
+#: builtin/fetch.c:126
msgid "number of submodules fetched in parallel"
msgstr "брой подмодули доставени паралелно"
-#: builtin/fetch.c:127 builtin/pull.c:195
+#: builtin/fetch.c:128 builtin/pull.c:201
msgid "prune remote-tracking branches no longer on remote"
msgstr "окастряне на клоните следящи вече несъществуващи отдалечени клони"
-#: builtin/fetch.c:128 builtin/fetch.c:151 builtin/pull.c:123
+#: builtin/fetch.c:129 builtin/fetch.c:152 builtin/pull.c:126
msgid "on-demand"
msgstr "ПРИ НУЖДА"
-#: builtin/fetch.c:129
+#: builtin/fetch.c:130
msgid "control recursive fetching of submodules"
msgstr "управление на рекурсивното доставяне на подмодулите"
-#: builtin/fetch.c:133 builtin/pull.c:203
+#: builtin/fetch.c:134 builtin/pull.c:209
msgid "keep downloaded pack"
msgstr "запазване на изтеглените пакети с обекти"
-#: builtin/fetch.c:135
+#: builtin/fetch.c:136
msgid "allow updating of HEAD ref"
msgstr "позволяване на обновяването на указателя „HEAD“"
-#: builtin/fetch.c:138 builtin/fetch.c:144 builtin/pull.c:206
+#: builtin/fetch.c:139 builtin/fetch.c:145 builtin/pull.c:212
msgid "deepen history of shallow clone"
msgstr "задълбочаване на историята на плитко хранилище"
-#: builtin/fetch.c:140
+#: builtin/fetch.c:141
msgid "deepen history of shallow repository based on time"
msgstr "задълбочаване на историята на плитко хранилище до определено време"
-#: builtin/fetch.c:146 builtin/pull.c:209
+#: builtin/fetch.c:147 builtin/pull.c:215
msgid "convert to a complete repository"
msgstr "превръщане в пълно хранилище"
-#: builtin/fetch.c:148 builtin/log.c:1456
+#: builtin/fetch.c:149 builtin/log.c:1463
msgid "dir"
msgstr "директория"
-#: builtin/fetch.c:149
+#: builtin/fetch.c:150
msgid "prepend this to submodule path output"
msgstr "добавяне на това пред пътя на подмодула"
-#: builtin/fetch.c:152
+#: builtin/fetch.c:153
msgid ""
"default for recursive fetching of submodules (lower priority than config "
"files)"
@@ -8433,91 +8531,91 @@ msgstr ""
"стандартно рекурсивно изтегляне на подмодулите (файловете с настройки са с "
"приоритет)"
-#: builtin/fetch.c:156 builtin/pull.c:212
+#: builtin/fetch.c:157 builtin/pull.c:218
msgid "accept refs that update .git/shallow"
msgstr "приемане на указатели, които обновяват „.git/shallow“"
-#: builtin/fetch.c:157 builtin/pull.c:214
+#: builtin/fetch.c:158 builtin/pull.c:220
msgid "refmap"
msgstr "КАРТА_С_УКАЗАТЕЛИ"
-#: builtin/fetch.c:158 builtin/pull.c:215
+#: builtin/fetch.c:159 builtin/pull.c:221
msgid "specify fetch refmap"
msgstr "указване на КАРТАта_С_УКАЗАТЕЛИ за доставяне"
-#: builtin/fetch.c:416
+#: builtin/fetch.c:417
msgid "Couldn't find remote ref HEAD"
msgstr "Указателят „HEAD“ в отдалеченото хранилище не може да бъде открит"
-#: builtin/fetch.c:534
+#: builtin/fetch.c:535
#, c-format
msgid "configuration fetch.output contains invalid value %s"
msgstr "настройката „fetch.output“ е с неправилна стойност „%s“"
-#: builtin/fetch.c:627
+#: builtin/fetch.c:628
#, c-format
msgid "object %s not found"
msgstr "обектът „%s“ липсва"
-#: builtin/fetch.c:631
+#: builtin/fetch.c:632
msgid "[up to date]"
msgstr "[актуализиран]"
-#: builtin/fetch.c:644 builtin/fetch.c:724
+#: builtin/fetch.c:645 builtin/fetch.c:725
msgid "[rejected]"
msgstr "[отхвърлен]"
-#: builtin/fetch.c:645
+#: builtin/fetch.c:646
msgid "can't fetch in current branch"
msgstr "в текущия клон не може да се доставя"
-#: builtin/fetch.c:654
+#: builtin/fetch.c:655
msgid "[tag update]"
msgstr "[обновяване на етикетите]"
-#: builtin/fetch.c:655 builtin/fetch.c:688 builtin/fetch.c:704
-#: builtin/fetch.c:719
+#: builtin/fetch.c:656 builtin/fetch.c:689 builtin/fetch.c:705
+#: builtin/fetch.c:720
msgid "unable to update local ref"
msgstr "локален указател не може да бъде обновен"
-#: builtin/fetch.c:674
+#: builtin/fetch.c:675
msgid "[new tag]"
msgstr "[нов етикет]"
-#: builtin/fetch.c:677
+#: builtin/fetch.c:678
msgid "[new branch]"
msgstr "[нов клон]"
-#: builtin/fetch.c:680
+#: builtin/fetch.c:681
msgid "[new ref]"
msgstr "[нов указател]"
-#: builtin/fetch.c:719
+#: builtin/fetch.c:720
msgid "forced update"
msgstr "принудително обновяване"
-#: builtin/fetch.c:724
+#: builtin/fetch.c:725
msgid "non-fast-forward"
msgstr "същинско сливане"
-#: builtin/fetch.c:769
+#: builtin/fetch.c:770
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "хранилището „%s“ не изпрати всички необходими обекти\n"
-#: builtin/fetch.c:789
+#: builtin/fetch.c:790
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr ""
"отхвърляне на върха „%s“, защото плитките хранилища не могат да бъдат "
"обновявани"
-#: builtin/fetch.c:877 builtin/fetch.c:973
+#: builtin/fetch.c:878 builtin/fetch.c:974
#, c-format
msgid "From %.*s\n"
msgstr "От %.*s\n"
-#: builtin/fetch.c:888
+#: builtin/fetch.c:889
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
@@ -8527,55 +8625,50 @@ msgstr ""
"„git remote prune %s“, за да премахнете остарелите клони, които\n"
"предизвикват конфликта"
-#: builtin/fetch.c:943
+#: builtin/fetch.c:944
#, c-format
msgid " (%s will become dangling)"
msgstr " (обектът „%s“ ще се окаже извън клон)"
-#: builtin/fetch.c:944
+#: builtin/fetch.c:945
#, c-format
msgid " (%s has become dangling)"
msgstr " (обектът „%s“ вече е извън клон)"
-#: builtin/fetch.c:976
+#: builtin/fetch.c:977
msgid "[deleted]"
msgstr "[изтрит]"
-#: builtin/fetch.c:977 builtin/remote.c:1024
+#: builtin/fetch.c:978 builtin/remote.c:1024
msgid "(none)"
msgstr "(нищо)"
-#: builtin/fetch.c:1000
+#: builtin/fetch.c:1001
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Не може да доставите в текущия клон „%s“ на хранилище, което не е голо"
-#: builtin/fetch.c:1019
+#: builtin/fetch.c:1020
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "Стойността „%2$s“ за опцията „%1$s“ не е съвместима с „%3$s“"
-#: builtin/fetch.c:1022
+#: builtin/fetch.c:1023
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Опцията „%s“ се прескача при „%s“\n"
-#: builtin/fetch.c:1098
-#, c-format
-msgid "Don't know how to fetch from %s"
-msgstr "Не се поддържа доставяне от „%s“"
-
-#: builtin/fetch.c:1258
+#: builtin/fetch.c:1256
#, c-format
msgid "Fetching %s\n"
msgstr "Доставяне на „%s“\n"
-#: builtin/fetch.c:1260 builtin/remote.c:97
+#: builtin/fetch.c:1258 builtin/remote.c:97
#, c-format
msgid "Could not fetch %s"
msgstr "„%s“ не може да се достави"
-#: builtin/fetch.c:1278
+#: builtin/fetch.c:1276
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
@@ -8583,41 +8676,41 @@ msgstr ""
"Не сте указали отдалечено хранилище. Задайте или адрес, или име\n"
"на отдалечено хранилище, откъдето да се доставят новите версии."
-#: builtin/fetch.c:1301
+#: builtin/fetch.c:1299
msgid "You need to specify a tag name."
msgstr "Трябва да укажете име на етикет."
-#: builtin/fetch.c:1344
+#: builtin/fetch.c:1342
msgid "Negative depth in --deepen is not supported"
msgstr "Отрицателна дълбочина като аргумент на „--deepen“ не се поддържа"
-#: builtin/fetch.c:1346
+#: builtin/fetch.c:1344
msgid "--deepen and --depth are mutually exclusive"
msgstr "Опциите „--deepen“ и „--depth“ са несъвместими една с друга"
-#: builtin/fetch.c:1351
+#: builtin/fetch.c:1349
msgid "--depth and --unshallow cannot be used together"
msgstr "опциите „--depth“ и „--unshallow“ са несъвместими"
-#: builtin/fetch.c:1353
+#: builtin/fetch.c:1351
msgid "--unshallow on a complete repository does not make sense"
msgstr "не можете да използвате опцията „--unshallow“ върху пълно хранилище"
-#: builtin/fetch.c:1366
+#: builtin/fetch.c:1364
msgid "fetch --all does not take a repository argument"
msgstr "към „git fetch --all“ не можете да добавите аргумент — хранилище"
-#: builtin/fetch.c:1368
+#: builtin/fetch.c:1366
msgid "fetch --all does not make sense with refspecs"
msgstr ""
"към „git fetch --all“ не можете да добавите аргумент — указател на версия"
-#: builtin/fetch.c:1379
+#: builtin/fetch.c:1377
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Няма нито отдалечено хранилище, нито група от хранилища на име „%s“"
-#: builtin/fetch.c:1387
+#: builtin/fetch.c:1385
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Указването на група и указването на версия са несъвместими"
@@ -8627,25 +8720,25 @@ msgid ""
msgstr ""
"git fmt-merge-msg [-m СЪОБЩЕНИЕ] [--log[=БРОЙ] | --no-log] [--file ФАЙЛ]"
-#: builtin/fmt-merge-msg.c:665
+#: builtin/fmt-merge-msg.c:666
msgid "populate log with at most <n> entries from shortlog"
msgstr ""
"вмъкване на журнал състоящ се от не повече от БРОЙ записа от съкратения "
"журнал"
-#: builtin/fmt-merge-msg.c:668
+#: builtin/fmt-merge-msg.c:669
msgid "alias for --log (deprecated)"
msgstr "синоним на „--log“ (остаряло)"
-#: builtin/fmt-merge-msg.c:671
+#: builtin/fmt-merge-msg.c:672
msgid "text"
msgstr "ТЕКСТ"
-#: builtin/fmt-merge-msg.c:672
+#: builtin/fmt-merge-msg.c:673
msgid "use <text> as start of message"
msgstr "за начало на съобщението да се ползва ТЕКСТ"
-#: builtin/fmt-merge-msg.c:673
+#: builtin/fmt-merge-msg.c:674
msgid "file to read from"
msgstr "файл, от който да се чете"
@@ -8877,255 +8970,255 @@ msgstr "зададен е неправилен брой нишки (%d) за %s"
#. variable for tweaking threads, currently
#. grep.threads
#.
-#: builtin/grep.c:293 builtin/index-pack.c:1495 builtin/index-pack.c:1693
+#: builtin/grep.c:293 builtin/index-pack.c:1495 builtin/index-pack.c:1688
#, c-format
msgid "no threads support, ignoring %s"
msgstr "липсва поддръжка за нишки. „%s“ ще се пренебрегне"
-#: builtin/grep.c:451 builtin/grep.c:571 builtin/grep.c:613
+#: builtin/grep.c:453 builtin/grep.c:573 builtin/grep.c:615
#, c-format
msgid "unable to read tree (%s)"
msgstr "дървото не може да бъде прочетено (%s)"
-#: builtin/grep.c:628
+#: builtin/grep.c:630
#, c-format
msgid "unable to grep from object of type %s"
msgstr "не може да се изпълни „grep“ от обект от вида %s"
-#: builtin/grep.c:694
+#: builtin/grep.c:696
#, c-format
msgid "switch `%c' expects a numerical value"
msgstr "опцията „%c“ очаква число за аргумент"
-#: builtin/grep.c:781
+#: builtin/grep.c:783
msgid "search in index instead of in the work tree"
msgstr "търсене в индекса, а не в работното дърво"
-#: builtin/grep.c:783
+#: builtin/grep.c:785
msgid "find in contents not managed by git"
msgstr "търсене и във файловете, които не са под управлението на git"
-#: builtin/grep.c:785
+#: builtin/grep.c:787
msgid "search in both tracked and untracked files"
msgstr "търсене и в следените, и в неследените файлове"
-#: builtin/grep.c:787
+#: builtin/grep.c:789
msgid "ignore files specified via '.gitignore'"
msgstr "игнориране на файловете указани в „.gitignore“"
-#: builtin/grep.c:789
+#: builtin/grep.c:791
msgid "recursively search in each submodule"
msgstr "рекурсивно търсене във всички подмодули"
-#: builtin/grep.c:792
+#: builtin/grep.c:794
msgid "show non-matching lines"
msgstr "извеждане на редовете, които не съвпадат"
-#: builtin/grep.c:794
+#: builtin/grep.c:796
msgid "case insensitive matching"
msgstr "без значение на регистъра на буквите (главни/малки)"
-#: builtin/grep.c:796
+#: builtin/grep.c:798
msgid "match patterns only at word boundaries"
msgstr "напасване на шаблоните само по границите на думите"
-#: builtin/grep.c:798
+#: builtin/grep.c:800
msgid "process binary files as text"
msgstr "обработване на двоичните файлове като текстови"
-#: builtin/grep.c:800
+#: builtin/grep.c:802
msgid "don't match patterns in binary files"
msgstr "прескачане на двоичните файлове"
-#: builtin/grep.c:803
+#: builtin/grep.c:805
msgid "process binary files with textconv filters"
msgstr ""
"обработване на двоичните файлове чрез филтри за преобразуване към текст"
-#: builtin/grep.c:805
+#: builtin/grep.c:807
msgid "descend at most <depth> levels"
msgstr "навлизане максимално на тази ДЪЛБОЧИНА в дървото"
-#: builtin/grep.c:809
+#: builtin/grep.c:811
msgid "use extended POSIX regular expressions"
msgstr "разширени регулярни изрази по POSIX"
-#: builtin/grep.c:812
+#: builtin/grep.c:814
msgid "use basic POSIX regular expressions (default)"
msgstr "основни регулярни изрази по POSIX (стандартно)"
-#: builtin/grep.c:815
+#: builtin/grep.c:817
msgid "interpret patterns as fixed strings"
msgstr "шаблоните са дословни низове"
-#: builtin/grep.c:818
+#: builtin/grep.c:820
msgid "use Perl-compatible regular expressions"
msgstr "регулярни изрази на Perl"
-#: builtin/grep.c:821
+#: builtin/grep.c:823
msgid "show line numbers"
msgstr "извеждане на номерата на редовете"
-#: builtin/grep.c:822
+#: builtin/grep.c:824
msgid "don't show filenames"
msgstr "без извеждане на имената на файловете"
-#: builtin/grep.c:823
+#: builtin/grep.c:825
msgid "show filenames"
msgstr "извеждане на имената на файловете"
-#: builtin/grep.c:825
+#: builtin/grep.c:827
msgid "show filenames relative to top directory"
msgstr ""
"извеждане на относителните имена на файловете спрямо основната директория на "
"хранилището"
-#: builtin/grep.c:827
+#: builtin/grep.c:829
msgid "show only filenames instead of matching lines"
msgstr "извеждане само на имената на файловете без напасващите редове"
-#: builtin/grep.c:829
+#: builtin/grep.c:831
msgid "synonym for --files-with-matches"
msgstr "синоним на „--files-with-matches“"
-#: builtin/grep.c:832
+#: builtin/grep.c:834
msgid "show only the names of files without match"
msgstr ""
"извеждане само на имената на файловете, които не съдържат ред, напасващ на "
"шаблона"
-#: builtin/grep.c:834
+#: builtin/grep.c:836
msgid "print NUL after filenames"
msgstr "извеждане на нулевия знак „NUL“ след всяко име на файл"
-#: builtin/grep.c:836
+#: builtin/grep.c:838
msgid "show the number of matches instead of matching lines"
msgstr "извеждане на броя на съвпаденията вместо напасващите редове"
-#: builtin/grep.c:837
+#: builtin/grep.c:839
msgid "highlight matches"
msgstr "оцветяване на напасванията"
-#: builtin/grep.c:839
+#: builtin/grep.c:841
msgid "print empty line between matches from different files"
msgstr "извеждане на празен ред между напасванията от различни файлове"
-#: builtin/grep.c:841
+#: builtin/grep.c:843
msgid "show filename only once above matches from same file"
msgstr ""
"извеждане на името на файла само веднъж за всички напасвания от този файл"
-#: builtin/grep.c:844
+#: builtin/grep.c:846
msgid "show <n> context lines before and after matches"
msgstr "извеждане на такъв БРОЙ редове преди и след напасванията"
-#: builtin/grep.c:847
+#: builtin/grep.c:849
msgid "show <n> context lines before matches"
msgstr "извеждане на такъв БРОЙ редове преди напасванията"
-#: builtin/grep.c:849
+#: builtin/grep.c:851
msgid "show <n> context lines after matches"
msgstr "извеждане на такъв БРОЙ редове след напасванията"
-#: builtin/grep.c:851
+#: builtin/grep.c:853
msgid "use <n> worker threads"
msgstr "използване на такъв БРОЙ работещи нишки"
-#: builtin/grep.c:852
+#: builtin/grep.c:854
msgid "shortcut for -C NUM"
msgstr "синоним на „-C БРОЙ“"
-#: builtin/grep.c:855
+#: builtin/grep.c:857
msgid "show a line with the function name before matches"
msgstr "извеждане на ред с името на функцията, в която е напаснат шаблона"
-#: builtin/grep.c:857
+#: builtin/grep.c:859
msgid "show the surrounding function"
msgstr "извеждане на обхващащата функция"
-#: builtin/grep.c:860
+#: builtin/grep.c:862
msgid "read patterns from file"
msgstr "изчитане на шаблоните от ФАЙЛ"
-#: builtin/grep.c:862
+#: builtin/grep.c:864
msgid "match <pattern>"
msgstr "напасване на ШАБЛОН"
-#: builtin/grep.c:864
+#: builtin/grep.c:866
msgid "combine patterns specified with -e"
msgstr "комбиниране на шаблоните указани с опцията „-e“"
-#: builtin/grep.c:876
+#: builtin/grep.c:878
msgid "indicate hit with exit status without output"
msgstr ""
"без извеждане на стандартния изход. Изходният код указва наличието на "
"напасване"
-#: builtin/grep.c:878
+#: builtin/grep.c:880
msgid "show only matches from files that match all patterns"
msgstr ""
"извеждане на редове само от файловете, които напасват на всички шаблони"
-#: builtin/grep.c:880
+#: builtin/grep.c:882
msgid "show parse tree for grep expression"
msgstr "извеждане на дървото за анализ на регулярния израз"
-#: builtin/grep.c:884
+#: builtin/grep.c:886
msgid "pager"
msgstr "програма за преглед по страници"
-#: builtin/grep.c:884
+#: builtin/grep.c:886
msgid "show matching files in the pager"
msgstr "извеждане на съвпадащите файлове в програма за преглед по страници"
-#: builtin/grep.c:887
+#: builtin/grep.c:889
msgid "allow calling of grep(1) (ignored by this build)"
msgstr ""
"позволяване на стартирането на grep(1) (текущият компилат пренебрегва тази "
"опция)"
-#: builtin/grep.c:950
+#: builtin/grep.c:952
msgid "no pattern given."
msgstr "липсва шаблон."
-#: builtin/grep.c:982
+#: builtin/grep.c:984
msgid "--no-index or --untracked cannot be used with revs"
msgstr "опциите „--cached“ и „--untracked“ са несъвместими с версии."
-#: builtin/grep.c:989
+#: builtin/grep.c:991
#, c-format
msgid "unable to resolve revision: %s"
msgstr "версията „%s“ не може бъде открита"
-#: builtin/grep.c:1023 builtin/index-pack.c:1491
+#: builtin/grep.c:1026 builtin/index-pack.c:1491
#, c-format
msgid "invalid number of threads specified (%d)"
msgstr "зададен е неправилен брой нишки: %d"
-#: builtin/grep.c:1028
+#: builtin/grep.c:1031
msgid "no threads support, ignoring --threads"
msgstr "липсва поддръжка за нишки. „--threads“ ще се пренебрегне"
-#: builtin/grep.c:1052
+#: builtin/grep.c:1055
msgid "--open-files-in-pager only works on the worktree"
msgstr ""
"опцията „--open-files-in-pager“ е съвместима само с търсене в работното дърво"
-#: builtin/grep.c:1075
+#: builtin/grep.c:1078
msgid "option not supported with --recurse-submodules."
msgstr "опцията е несъвместима с „--recurse-submodules“."
-#: builtin/grep.c:1081
+#: builtin/grep.c:1084
msgid "--cached or --untracked cannot be used with --no-index."
msgstr "опциите „--cached“ и „--untracked“ са несъвместими с „--no-index“."
-#: builtin/grep.c:1087
+#: builtin/grep.c:1090
msgid "--[no-]exclude-standard cannot be used for tracked contents."
msgstr ""
"опциите „--(no-)exclude-standard“ са несъвместими с търсене по следени "
"файлове."
-#: builtin/grep.c:1095
+#: builtin/grep.c:1098
msgid "both --cached and trees are given."
msgstr "опцията „--cached“ е несъвместима със задаване на дърво."
@@ -9178,11 +9271,11 @@ msgstr "показване на всички налични команди"
#: builtin/help.c:44
msgid "exclude guides"
-msgstr "без пътеводетели"
+msgstr "без въведения"
#: builtin/help.c:45
msgid "print list of useful guides"
-msgstr "показване на списък с пътеводители"
+msgstr "показване на списък с въведения"
#: builtin/help.c:46
msgid "show man page"
@@ -9262,7 +9355,7 @@ msgstr "Указване на атрибути към път"
#: builtin/help.c:408
msgid "Everyday Git With 20 Commands Or So"
-msgstr "Ежедневието в Git в рамките на 20-ина команди"
+msgstr "Ежедневието в Git в рамките на двайсетина команди"
#: builtin/help.c:409
msgid "A Git glossary"
@@ -9290,7 +9383,7 @@ msgstr "Общ преглед на препоръчваните начини з
#: builtin/help.c:426
msgid "The common Git guides are:\n"
-msgstr "Популярните пътеводители в Git са:\n"
+msgstr "Популярните въведения в Git са:\n"
#: builtin/help.c:444
#, c-format
@@ -9413,8 +9506,8 @@ msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr ""
"СЪВПАДЕНИЕ НА СТОЙНОСТИТЕ ЗА СУМИТЕ ЗА SHA1: „%s“ НА ДВА РАЗЛИЧНИ ОБЕКТА!"
-#: builtin/index-pack.c:752 builtin/pack-objects.c:168
-#: builtin/pack-objects.c:262
+#: builtin/index-pack.c:752 builtin/pack-objects.c:179
+#: builtin/pack-objects.c:273
#, c-format
msgid "unable to read %s"
msgstr "обектът „%s“ не може да бъде прочетен"
@@ -9586,21 +9679,21 @@ msgstr[1] "дължината на веригата е %d: %lu обекта"
msgid "packfile name '%s' does not end with '.pack'"
msgstr "името на пакетния файл „%s“ не завършва на „.pack“"
-#: builtin/index-pack.c:1705 builtin/index-pack.c:1708
-#: builtin/index-pack.c:1724 builtin/index-pack.c:1728
+#: builtin/index-pack.c:1700 builtin/index-pack.c:1703
+#: builtin/index-pack.c:1719 builtin/index-pack.c:1723
#, c-format
msgid "bad %s"
msgstr "неправилна стойност „%s“"
-#: builtin/index-pack.c:1744
+#: builtin/index-pack.c:1739
msgid "--fix-thin cannot be used without --stdin"
msgstr "опцията „--fix-thin“ изисква „--stdin“"
-#: builtin/index-pack.c:1746
+#: builtin/index-pack.c:1741
msgid "--stdin requires a git repository"
msgstr "„--stdin“ изисква хранилище на git"
-#: builtin/index-pack.c:1754
+#: builtin/index-pack.c:1749
msgid "--verify with no packfile name given"
msgstr "опцията „--verify“ изисква име на пакетен файл"
@@ -9753,7 +9846,7 @@ msgstr "действие, ако епилог вече съществува"
#: builtin/interpret-trailers.c:100
msgid "action if trailer is missing"
-msgstr "действи при липсващ епилог"
+msgstr "действие при липсващ епилог"
#: builtin/interpret-trailers.c:102
msgid "output only the trailers"
@@ -9777,7 +9870,7 @@ msgstr "епилог"
#: builtin/interpret-trailers.c:108
msgid "trailer(s) to add"
-msgstr "епилог(зи) за добавяне"
+msgstr "епилози за добавяне"
#: builtin/interpret-trailers.c:117
msgid "--trailer with --only-input does not make sense"
@@ -9800,103 +9893,111 @@ msgstr "git show [ОПЦИЯ…] ОБЕКТ…"
msgid "invalid --decorate option: %s"
msgstr "неправилна опция „--decorate“: %s"
-#: builtin/log.c:148
+#: builtin/log.c:151
msgid "suppress diff output"
msgstr "без извеждане на разликите"
-#: builtin/log.c:149
+#: builtin/log.c:152
msgid "show source"
msgstr "извеждане на изходния код"
-#: builtin/log.c:150
+#: builtin/log.c:153
msgid "Use mail map file"
msgstr ""
"Използване на файл за съответствията на имената и адресите на е-поща („."
"mailmap“)"
-#: builtin/log.c:151
+#: builtin/log.c:155
+msgid "only decorate refs that match <pattern>"
+msgstr "специален формат само на указателите напасващи на ШАБЛОНа"
+
+#: builtin/log.c:157
+msgid "do not decorate refs that match <pattern>"
+msgstr "без специален формат на указателите напасващи на ШАБЛОНа"
+
+#: builtin/log.c:158
msgid "decorate options"
msgstr "настройки на форма̀та на извежданата информация"
-#: builtin/log.c:154
+#: builtin/log.c:161
msgid "Process line range n,m in file, counting from 1"
msgstr ""
"Обработване само на редовете във файла в диапазона от n до m включително. "
"Броенето започва от 1"
-#: builtin/log.c:250
+#: builtin/log.c:257
#, c-format
msgid "Final output: %d %s\n"
msgstr "Резултат: %d %s\n"
-#: builtin/log.c:501
+#: builtin/log.c:508
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: повреден файл"
-#: builtin/log.c:516 builtin/log.c:610
+#: builtin/log.c:523 builtin/log.c:617
#, c-format
msgid "Could not read object %s"
msgstr "Обектът не може да бъде прочетен: %s"
-#: builtin/log.c:634
+#: builtin/log.c:641
#, c-format
msgid "Unknown type: %d"
msgstr "Неизвестен вид: %d"
-#: builtin/log.c:755
+#: builtin/log.c:762
msgid "format.headers without value"
msgstr "не е зададена стойност на „format.headers“"
-#: builtin/log.c:856
+#: builtin/log.c:863
msgid "name of output directory is too long"
msgstr "прекалено дълго име на директорията за изходната информация"
-#: builtin/log.c:872
+#: builtin/log.c:879
#, c-format
msgid "Cannot open patch file %s"
msgstr "Файлът-кръпка „%s“ не може да бъде отворен"
-#: builtin/log.c:889
+#: builtin/log.c:896
msgid "Need exactly one range."
msgstr "Трябва да зададете точно един диапазон."
-#: builtin/log.c:899
+#: builtin/log.c:906
msgid "Not a range."
msgstr "Не е диапазон."
-#: builtin/log.c:1005
+#: builtin/log.c:1012
msgid "Cover letter needs email format"
msgstr "Придружаващото писмо трябва да е форматирано като е-писмо"
-#: builtin/log.c:1085
+#: builtin/log.c:1092
#, c-format
msgid "insane in-reply-to: %s"
msgstr "неправилен формат на заглавната част за отговор „in-reply-to“: %s"
-#: builtin/log.c:1112
+#: builtin/log.c:1119
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [ОПЦИЯ…] [ОТ | ДИАПАЗОН_НА_ВЕРСИИТЕ]"
-#: builtin/log.c:1162
+#: builtin/log.c:1169
msgid "Two output directories?"
msgstr "Можете да укажете максимум една директория за изход."
-#: builtin/log.c:1269 builtin/log.c:1920 builtin/log.c:1922 builtin/log.c:1934
+#: builtin/log.c:1276 builtin/log.c:1927 builtin/log.c:1929 builtin/log.c:1941
#, c-format
msgid "Unknown commit %s"
msgstr "Непознато подаване „%s“"
-#: builtin/log.c:1279 builtin/notes.c:887 builtin/tag.c:516
+#: builtin/log.c:1286 builtin/notes.c:887 builtin/tag.c:516
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Не може да се открие към какво сочи „%s“."
-#: builtin/log.c:1284
+#: builtin/log.c:1291
msgid "Could not find exact merge base."
msgstr "Точната база за сливане не може да се открие."
-#: builtin/log.c:1288
+#: builtin/log.c:1295
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"
@@ -9906,234 +10007,234 @@ msgstr ""
"зададете, използвайте „git branch --set-upstream-to“.\n"
"Можете ръчно да зададете базово подаване чрез „--base=<base-commit-id>“."
-#: builtin/log.c:1308
+#: builtin/log.c:1315
msgid "Failed to find exact merge base"
msgstr "Точната база при сливане не може да бъде открита"
-#: builtin/log.c:1319
+#: builtin/log.c:1326
msgid "base commit should be the ancestor of revision list"
msgstr "базовото подаване трябва да е предшественикът на списъка с версиите"
-#: builtin/log.c:1323
+#: builtin/log.c:1330
msgid "base commit shouldn't be in revision list"
msgstr "базовото подаване не може да е в списъка с версиите"
-#: builtin/log.c:1372
+#: builtin/log.c:1379
msgid "cannot get patch id"
msgstr "идентификаторът на кръпката не може да бъде получен"
-#: builtin/log.c:1431
+#: builtin/log.c:1438
msgid "use [PATCH n/m] even with a single patch"
msgstr "номерация „[PATCH n/m]“ дори и при единствена кръпка"
-#: builtin/log.c:1434
+#: builtin/log.c:1441
msgid "use [PATCH] even with multiple patches"
msgstr "номерация „[PATCH]“ дори и при множество кръпки"
-#: builtin/log.c:1438
+#: builtin/log.c:1445
msgid "print patches to standard out"
msgstr "извеждане на кръпките на стандартния изход"
-#: builtin/log.c:1440
+#: builtin/log.c:1447
msgid "generate a cover letter"
msgstr "създаване на придружаващо писмо"
-#: builtin/log.c:1442
+#: builtin/log.c:1449
msgid "use simple number sequence for output file names"
msgstr "проста числова последователност за имената на файловете-кръпки"
-#: builtin/log.c:1443
+#: builtin/log.c:1450
msgid "sfx"
msgstr "ЗНАЦИ"
-#: builtin/log.c:1444
+#: builtin/log.c:1451
msgid "use <sfx> instead of '.patch'"
msgstr "използване на тези ЗНАЦИ за суфикс вместо „.patch“"
-#: builtin/log.c:1446
+#: builtin/log.c:1453
msgid "start numbering patches at <n> instead of 1"
msgstr "номерирането на кръпките да започва от този БРОЙ, а не с 1"
-#: builtin/log.c:1448
+#: builtin/log.c:1455
msgid "mark the series as Nth re-roll"
msgstr "отбелязване, че това е N-тата поредна редакция на поредицата от кръпки"
-#: builtin/log.c:1450
+#: builtin/log.c:1457
msgid "Use [RFC PATCH] instead of [PATCH]"
msgstr "Използване на „[RFC PATCH]“ вместо „[PATCH]“"
-#: builtin/log.c:1453
+#: builtin/log.c:1460
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Използване на този „[ПРЕФИКС]“ вместо „[PATCH]“"
-#: builtin/log.c:1456
+#: builtin/log.c:1463
msgid "store resulting files in <dir>"
msgstr "запазване на изходните файлове в тази ДИРЕКТОРИЯ"
-#: builtin/log.c:1459
+#: builtin/log.c:1466
msgid "don't strip/add [PATCH]"
msgstr "без добавяне/махане на префикса „[PATCH]“"
-#: builtin/log.c:1462
+#: builtin/log.c:1469
msgid "don't output binary diffs"
msgstr "без извеждане на разлики между двоични файлове"
-#: builtin/log.c:1464
+#: builtin/log.c:1471
msgid "output all-zero hash in From header"
msgstr "в заглавната част „From:“ (от) хешът да е само от нули"
-#: builtin/log.c:1466
+#: builtin/log.c:1473
msgid "don't include a patch matching a commit upstream"
msgstr "да не се включват кръпки, които присъстват в следения клон"
-#: builtin/log.c:1468
+#: builtin/log.c:1475
msgid "show patch format instead of default (patch + stat)"
msgstr ""
"извеждане във формат за кръпки, а на в стандартния (кръпка и статистика)"
-#: builtin/log.c:1470
+#: builtin/log.c:1477
msgid "Messaging"
msgstr "Опции при изпращане"
-#: builtin/log.c:1471
+#: builtin/log.c:1478
msgid "header"
msgstr "ЗАГЛАВНА_ЧАСТ"
-#: builtin/log.c:1472
+#: builtin/log.c:1479
msgid "add email header"
msgstr "добавяне на тази ЗАГЛАВНА_ЧАСТ"
-#: builtin/log.c:1473 builtin/log.c:1475
+#: builtin/log.c:1480 builtin/log.c:1482
msgid "email"
msgstr "Е-ПОЩА"
-#: builtin/log.c:1473
+#: builtin/log.c:1480
msgid "add To: header"
msgstr "добавяне на заглавна част „To:“ (до)"
-#: builtin/log.c:1475
+#: builtin/log.c:1482
msgid "add Cc: header"
msgstr "добавяне на заглавна част „Cc:“ (и до)"
-#: builtin/log.c:1477
+#: builtin/log.c:1484
msgid "ident"
msgstr "ИДЕНТИЧНОСТ"
-#: builtin/log.c:1478
+#: builtin/log.c:1485
msgid "set From address to <ident> (or committer ident if absent)"
msgstr ""
"задаване на адреса в заглавната част „From“ (от) да е тази ИДЕНТИЧНОСТ. Ако "
"не е зададена такава, се взима адреса на подаващия"
-#: builtin/log.c:1480
+#: builtin/log.c:1487
msgid "message-id"
msgstr "ИДЕНТИФИКАТОР_НА_СЪОБЩЕНИЕ"
-#: builtin/log.c:1481
+#: builtin/log.c:1488
msgid "make first mail a reply to <message-id>"
msgstr ""
"първото съобщение да е в отговор на е-писмото с този "
"ИДЕНТИФИКАТОР_НА_СЪОБЩЕНИЕ"
-#: builtin/log.c:1482 builtin/log.c:1485
+#: builtin/log.c:1489 builtin/log.c:1492
msgid "boundary"
msgstr "граница"
-#: builtin/log.c:1483
+#: builtin/log.c:1490
msgid "attach the patch"
msgstr "прикрепяне на кръпката"
-#: builtin/log.c:1486
+#: builtin/log.c:1493
msgid "inline the patch"
msgstr "включване на кръпката в текста на писмата"
-#: builtin/log.c:1490
+#: builtin/log.c:1497
msgid "enable message threading, styles: shallow, deep"
msgstr ""
"използване на нишки за съобщенията. СТИЛът е „shallow“ (плитък) или "
"„deep“ (дълбок)"
-#: builtin/log.c:1492
+#: builtin/log.c:1499
msgid "signature"
msgstr "подпис"
-#: builtin/log.c:1493
+#: builtin/log.c:1500
msgid "add a signature"
msgstr "добавяне на поле за подпис"
-#: builtin/log.c:1494
+#: builtin/log.c:1501
msgid "base-commit"
msgstr "БАЗОВО_ПОДАВАНЕ"
-#: builtin/log.c:1495
+#: builtin/log.c:1502
msgid "add prerequisite tree info to the patch series"
msgstr "добавяне на необходимото БАЗово дърво към серията кръпки"
-#: builtin/log.c:1497
+#: builtin/log.c:1504
msgid "add a signature from a file"
msgstr "добавяне на подпис от файл"
-#: builtin/log.c:1498
+#: builtin/log.c:1505
msgid "don't print the patch filenames"
msgstr "без извеждане на имената на кръпките"
-#: builtin/log.c:1500
+#: builtin/log.c:1507
msgid "show progress while generating patches"
msgstr "извеждане на напредъка във фазата на създаване на кръпките"
-#: builtin/log.c:1575
+#: builtin/log.c:1582
#, c-format
msgid "invalid ident line: %s"
msgstr "грешна идентичност: %s"
-#: builtin/log.c:1590
+#: builtin/log.c:1597
msgid "-n and -k are mutually exclusive."
msgstr "опциите „-n“ и „-k“ са несъвместими."
-#: builtin/log.c:1592
+#: builtin/log.c:1599
msgid "--subject-prefix/--rfc and -k are mutually exclusive."
msgstr "опциите „--subject-prefix“/„-rfc“ и „-k“ са несъвместими."
-#: builtin/log.c:1600
+#: builtin/log.c:1607
msgid "--name-only does not make sense"
msgstr "опцията „--name-only“ е несъвместима с генерирането на кръпки"
-#: builtin/log.c:1602
+#: builtin/log.c:1609
msgid "--name-status does not make sense"
msgstr "опцията „--name-status“ е несъвместима с генерирането на кръпки"
-#: builtin/log.c:1604
+#: builtin/log.c:1611
msgid "--check does not make sense"
msgstr "опцията „--check“ е несъвместима с генерирането на кръпки"
-#: builtin/log.c:1634
+#: builtin/log.c:1641
msgid "standard output, or directory, which one?"
msgstr ""
"изходът може да или стандартният, или да е в директория, но не и двете."
-#: builtin/log.c:1636
+#: builtin/log.c:1643
#, c-format
msgid "Could not create directory '%s'"
msgstr "Директорията „%s“ не може да бъде създадена"
-#: builtin/log.c:1729
+#: builtin/log.c:1736
#, c-format
msgid "unable to read signature file '%s'"
msgstr "файлът „%s“ с подпис не може да бъде прочетен"
-#: builtin/log.c:1761
+#: builtin/log.c:1768
msgid "Generating patches"
msgstr "Създаване на кръпки"
-#: builtin/log.c:1805
+#: builtin/log.c:1812
msgid "Failed to create output files"
msgstr "Изходните файлове не могат да бъдат създадени"
-#: builtin/log.c:1855
+#: builtin/log.c:1862
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [ОТДАЛЕЧЕН_КЛОН [ВРЪХ [ПРЕДЕЛ]]]"
-#: builtin/log.c:1909
+#: builtin/log.c:1916
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -10141,105 +10242,109 @@ msgstr ""
"Следеният отдалечен клон не бе открит, затова изрично задайте "
"ОТДАЛЕЧЕН_КЛОН.\n"
-#: builtin/ls-files.c:466
+#: builtin/ls-files.c:468
msgid "git ls-files [<options>] [<file>...]"
msgstr "git ls-files [ОПЦИЯ…] [ФАЙЛ…]"
-#: builtin/ls-files.c:515
+#: builtin/ls-files.c:517
msgid "identify the file status with tags"
msgstr "извеждане на състоянието на файловете с еднобуквени флагове"
-#: builtin/ls-files.c:517
+#: builtin/ls-files.c:519
msgid "use lowercase letters for 'assume unchanged' files"
msgstr "малки букви за файловете, които да се счетат за непроменени"
-#: builtin/ls-files.c:519
+#: builtin/ls-files.c:521
+msgid "use lowercase letters for 'fsmonitor clean' files"
+msgstr "малки букви за файловете за командата „fsmonitor clean“"
+
+#: builtin/ls-files.c:523
msgid "show cached files in the output (default)"
msgstr "извеждане на кешираните файлове (стандартно)"
-#: builtin/ls-files.c:521
+#: builtin/ls-files.c:525
msgid "show deleted files in the output"
msgstr "извеждане на изтритите файлове"
-#: builtin/ls-files.c:523
+#: builtin/ls-files.c:527
msgid "show modified files in the output"
msgstr "извеждане на променените файлове"
-#: builtin/ls-files.c:525
+#: builtin/ls-files.c:529
msgid "show other files in the output"
msgstr "извеждане на другите файлове"
-#: builtin/ls-files.c:527
+#: builtin/ls-files.c:531
msgid "show ignored files in the output"
msgstr "извеждане на игнорираните файлове"
-#: builtin/ls-files.c:530
+#: builtin/ls-files.c:534
msgid "show staged contents' object name in the output"
msgstr "извеждане на името на обекта за съдържанието на индекса"
-#: builtin/ls-files.c:532
+#: builtin/ls-files.c:536
msgid "show files on the filesystem that need to be removed"
msgstr "извеждане на файловете, които трябва да бъдат изтрити"
-#: builtin/ls-files.c:534
+#: builtin/ls-files.c:538
msgid "show 'other' directories' names only"
msgstr "извеждане само на името на другите (неследените) директории"
-#: builtin/ls-files.c:536
+#: builtin/ls-files.c:540
msgid "show line endings of files"
msgstr "извеждане на знаците за край на ред във файловете"
-#: builtin/ls-files.c:538
+#: builtin/ls-files.c:542
msgid "don't show empty directories"
msgstr "без извеждане на празните директории"
-#: builtin/ls-files.c:541
+#: builtin/ls-files.c:545
msgid "show unmerged files in the output"
msgstr "извеждане на неслетите файлове"
-#: builtin/ls-files.c:543
+#: builtin/ls-files.c:547
msgid "show resolve-undo information"
msgstr "извеждане на информацията за отмяна на разрешените подавания"
-#: builtin/ls-files.c:545
+#: builtin/ls-files.c:549
msgid "skip files matching pattern"
msgstr "прескачане на файловете напасващи ШАБЛОНа"
-#: builtin/ls-files.c:548
+#: builtin/ls-files.c:552
msgid "exclude patterns are read from <file>"
msgstr "шаблоните за игнориране да се прочетат от този ФАЙЛ"
-#: builtin/ls-files.c:551
+#: builtin/ls-files.c:555
msgid "read additional per-directory exclude patterns in <file>"
msgstr ""
"изчитане на допълнителните шаблони за игнориране по директория от този ФАЙЛ"
-#: builtin/ls-files.c:553
+#: builtin/ls-files.c:557
msgid "add the standard git exclusions"
msgstr "добавяне на стандартно игнорираните от Git файлове"
-#: builtin/ls-files.c:556
+#: builtin/ls-files.c:560
msgid "make the output relative to the project top directory"
msgstr "пътищата да са относителни спрямо основната директория на проекта"
-#: builtin/ls-files.c:559
+#: builtin/ls-files.c:563
msgid "recurse through submodules"
msgstr "рекурсивно обхождане подмодулите"
-#: builtin/ls-files.c:561
+#: builtin/ls-files.c:565
msgid "if any <file> is not in the index, treat this as an error"
msgstr "грешка, ако някой от тези ФАЙЛове не е в индекса"
-#: builtin/ls-files.c:562
+#: builtin/ls-files.c:566
msgid "tree-ish"
msgstr "УКАЗАТЕЛ_КЪМ_ДЪРВО"
-#: builtin/ls-files.c:563
+#: builtin/ls-files.c:567
msgid "pretend that paths removed since <tree-ish> are still present"
msgstr ""
"считане, че пътищата изтрити след УКАЗАТЕЛя_КЪМ_ДЪРВО все още съществуват"
-#: builtin/ls-files.c:565
+#: builtin/ls-files.c:569
msgid "show debugging data"
msgstr "извеждане на информацията за изчистване на грешки"
@@ -10363,33 +10468,33 @@ msgstr "Наличните стратегии са:"
msgid "Available custom strategies are:"
msgstr "Допълнителните стратегии са:"
-#: builtin/merge.c:200 builtin/pull.c:134
+#: builtin/merge.c:200 builtin/pull.c:137
msgid "do not show a diffstat at the end of the merge"
msgstr "без извеждане на статистиката след завършване на сливане"
-#: builtin/merge.c:203 builtin/pull.c:137
+#: builtin/merge.c:203 builtin/pull.c:140
msgid "show a diffstat at the end of the merge"
msgstr "извеждане на статистиката след завършване на сливане"
-#: builtin/merge.c:204 builtin/pull.c:140
+#: builtin/merge.c:204 builtin/pull.c:143
msgid "(synonym to --stat)"
msgstr "(синоним на „--stat“)"
-#: builtin/merge.c:206 builtin/pull.c:143
+#: builtin/merge.c:206 builtin/pull.c:146
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr ""
"добавяне (на максимум такъв БРОЙ) записи от съкратения журнал в съобщението "
"за подаване"
-#: builtin/merge.c:209 builtin/pull.c:146
+#: builtin/merge.c:209 builtin/pull.c:152
msgid "create a single commit instead of doing a merge"
msgstr "създаване на едно подаване вместо извършване на сливане"
-#: builtin/merge.c:211 builtin/pull.c:149
+#: builtin/merge.c:211 builtin/pull.c:155
msgid "perform a commit if the merge succeeds (default)"
msgstr "извършване на подаване при успешно сливане (стандартно действие)"
-#: builtin/merge.c:213 builtin/pull.c:152
+#: builtin/merge.c:213 builtin/pull.c:158
msgid "edit message before committing"
msgstr "редактиране на съобщението преди подаване"
@@ -10397,28 +10502,28 @@ msgstr "редактиране на съобщението преди подав
msgid "allow fast-forward (default)"
msgstr "позволяване на превъртане (стандартно действие)"
-#: builtin/merge.c:216 builtin/pull.c:158
+#: builtin/merge.c:216 builtin/pull.c:164
msgid "abort if fast-forward is not possible"
msgstr "преустановяване, ако превъртането е невъзможно"
-#: builtin/merge.c:220 builtin/pull.c:161
+#: builtin/merge.c:220 builtin/pull.c:167
msgid "verify that the named commit has a valid GPG signature"
msgstr "проверка, че указаното подаване е с правилен подпис на GPG"
-#: builtin/merge.c:221 builtin/notes.c:777 builtin/pull.c:165
+#: builtin/merge.c:221 builtin/notes.c:777 builtin/pull.c:171
#: builtin/revert.c:109
msgid "strategy"
msgstr "СТРАТЕГИЯ"
-#: builtin/merge.c:222 builtin/pull.c:166
+#: builtin/merge.c:222 builtin/pull.c:172
msgid "merge strategy to use"
msgstr "СТРАТЕГИЯ за сливане, която да се ползва"
-#: builtin/merge.c:223 builtin/pull.c:169
+#: builtin/merge.c:223 builtin/pull.c:175
msgid "option=value"
msgstr "ОПЦИЯ=СТОЙНОСТ"
-#: builtin/merge.c:224 builtin/pull.c:170
+#: builtin/merge.c:224 builtin/pull.c:176
msgid "option for selected merge strategy"
msgstr "ОПЦИЯ за избраната стратегия за сливане"
@@ -10434,7 +10539,7 @@ msgstr "преустановяване на текущото сливане"
msgid "continue the current in-progress merge"
msgstr "продължаване на текущото сливане"
-#: builtin/merge.c:234 builtin/pull.c:177
+#: builtin/merge.c:234 builtin/pull.c:183
msgid "allow merging unrelated histories"
msgstr "позволяване на сливане на независими истории"
@@ -10475,43 +10580,43 @@ msgid "No merge message -- not updating HEAD\n"
msgstr ""
"Липсва съобщение при подаване — указателят „HEAD“ няма да бъде обновен\n"
-#: builtin/merge.c:456
+#: builtin/merge.c:455
#, c-format
msgid "'%s' does not point to a commit"
msgstr "„%s“ не сочи към подаване"
-#: builtin/merge.c:546
+#: builtin/merge.c:545
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Неправилен низ за настройката „branch.%s.mergeoptions“: „%s“"
-#: builtin/merge.c:666
+#: builtin/merge.c:667
msgid "Not handling anything other than two heads merge."
msgstr "Поддържа се само сливане на точно две истории."
-#: builtin/merge.c:680
+#: builtin/merge.c:681
#, c-format
msgid "Unknown option for merge-recursive: -X%s"
msgstr "Непозната опция за рекурсивното сливане „merge-recursive“: „-X%s“"
-#: builtin/merge.c:695
+#: builtin/merge.c:696
#, c-format
msgid "unable to write %s"
msgstr "„%s“ не може да бъде записан"
-#: builtin/merge.c:747
+#: builtin/merge.c:748
#, c-format
msgid "Could not read from '%s'"
msgstr "От „%s“ не може да се чете"
-#: builtin/merge.c:756
+#: builtin/merge.c:757
#, c-format
msgid "Not committing merge; use 'git commit' to complete the merge.\n"
msgstr ""
"Сливането няма да бъде подадено. За завършването му и подаването му "
"използвайте командата „git commit“.\n"
-#: builtin/merge.c:762
+#: builtin/merge.c:763
#, c-format
msgid ""
"Please enter a commit message to explain why this merge is necessary,\n"
@@ -10526,72 +10631,72 @@ msgstr ""
"Редовете, които започват с „%c“ ще бъдат пропуснати, а празно съобщение\n"
"преустановява подаването.\n"
-#: builtin/merge.c:798
+#: builtin/merge.c:799
msgid "Empty commit message."
msgstr "Празно съобщение при подаване."
-#: builtin/merge.c:818
+#: builtin/merge.c:819
#, c-format
msgid "Wonderful.\n"
msgstr "Първият етап на сливането завърши.\n"
-#: builtin/merge.c:871
+#: builtin/merge.c:872
#, c-format
msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
msgstr ""
"Неуспешно автоматично сливане — коригирайте конфликтите и подайте "
"резултата.\n"
-#: builtin/merge.c:910
+#: builtin/merge.c:911
msgid "No current branch."
msgstr "Няма текущ клон."
-#: builtin/merge.c:912
+#: builtin/merge.c:913
msgid "No remote for the current branch."
msgstr "Текущият клон не следи никой."
-#: builtin/merge.c:914
+#: builtin/merge.c:915
msgid "No default upstream defined for the current branch."
msgstr "Текущият клон не следи никой клон."
-#: builtin/merge.c:919
+#: builtin/merge.c:920
#, c-format
msgid "No remote-tracking branch for %s from %s"
msgstr "Никой клон не следи клона „%s“ от хранилището „%s“"
-#: builtin/merge.c:972
+#: builtin/merge.c:973
#, c-format
msgid "Bad value '%s' in environment '%s'"
msgstr "Неправилна стойност „%s“ в средата „%s“"
-#: builtin/merge.c:1073
+#: builtin/merge.c:1075
#, c-format
msgid "not something we can merge in %s: %s"
msgstr "не може да се слее в „%s“: %s"
-#: builtin/merge.c:1107
+#: builtin/merge.c:1109
msgid "not something we can merge"
msgstr "не може да се слее"
-#: builtin/merge.c:1172
+#: builtin/merge.c:1174
msgid "--abort expects no arguments"
msgstr "опцията „--abort“ не приема аргументи"
-#: builtin/merge.c:1176
+#: builtin/merge.c:1178
msgid "There is no merge to abort (MERGE_HEAD missing)."
msgstr ""
"Не може да преустановите сливане, защото в момента не се извършва такова "
"(липсва указател „MERGE_HEAD“)."
-#: builtin/merge.c:1188
+#: builtin/merge.c:1190
msgid "--continue expects no arguments"
msgstr "опцията „--continue“ не приема аргументи"
-#: builtin/merge.c:1192
+#: builtin/merge.c:1194
msgid "There is no merge in progress (MERGE_HEAD missing)."
msgstr "В момента не се извършва сливане (липсва указател „MERGE_HEAD“)."
-#: builtin/merge.c:1208
+#: builtin/merge.c:1210
msgid ""
"You have not concluded your merge (MERGE_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -10599,7 +10704,7 @@ msgstr ""
"Не сте завършили сливане. (Указателят „MERGE_HEAD“ съществува).\n"
"Подайте промените си, преди да започнете ново сливане."
-#: builtin/merge.c:1215
+#: builtin/merge.c:1217
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
"Please, commit your changes before you merge."
@@ -10607,121 +10712,121 @@ msgstr ""
"Не сте завършили отбиране на подаване (указателят „CHERRY_PICK_HEAD“\n"
"съществува). Подайте промените си, преди да започнете ново сливане."
-#: builtin/merge.c:1218
+#: builtin/merge.c:1220
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
msgstr ""
"Не сте завършили отбиране на подаване (указателят „CHERRY_PICK_HEAD“\n"
"съществува)."
-#: builtin/merge.c:1227
+#: builtin/merge.c:1229
msgid "You cannot combine --squash with --no-ff."
msgstr "Опцията „--squash“ е несъвместима с „--no-ff“."
-#: builtin/merge.c:1235
+#: builtin/merge.c:1237
msgid "No commit specified and merge.defaultToUpstream not set."
msgstr ""
"Не е указано подаване и настройката „merge.defaultToUpstream“ не е зададена."
-#: builtin/merge.c:1252
+#: builtin/merge.c:1254
msgid "Squash commit into empty head not supported yet"
msgstr "Подаване със смачкване във връх без история все още не се поддържа"
-#: builtin/merge.c:1254
+#: builtin/merge.c:1256
msgid "Non-fast-forward commit does not make sense into an empty head"
msgstr ""
"Понеже върхът е без история, всички сливания са превъртания, не може да се "
"извърши същинско сливане изисквано от опцията „--no-ff“"
-#: builtin/merge.c:1259
+#: builtin/merge.c:1261
#, c-format
msgid "%s - not something we can merge"
msgstr "„%s“ — не е нещо, което може да се слее"
-#: builtin/merge.c:1261
+#: builtin/merge.c:1263
msgid "Can merge only exactly one commit into empty head"
msgstr "Можете да слеете точно едно подаване във връх без история"
-#: builtin/merge.c:1295
+#: builtin/merge.c:1297
#, c-format
msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
msgstr ""
"Подаването „%s“ е с недоверен подпис от GPG, който твърди, че е на „%s“."
-#: builtin/merge.c:1298
+#: builtin/merge.c:1300
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
msgstr ""
"Подаването „%s“ е с неправилен подпис от GPG, който твърди, че е на „%s“."
-#: builtin/merge.c:1301
+#: builtin/merge.c:1303
#, c-format
msgid "Commit %s does not have a GPG signature."
msgstr "Подаването „%s“ е без подпис от GPG."
-#: builtin/merge.c:1304
+#: builtin/merge.c:1306
#, c-format
msgid "Commit %s has a good GPG signature by %s\n"
msgstr "Подаването „%s“ е с коректен подпис от GPG на „%s“.\n"
-#: builtin/merge.c:1366
+#: builtin/merge.c:1368
msgid "refusing to merge unrelated histories"
msgstr "независими истории не може да се слеят"
-#: builtin/merge.c:1375
+#: builtin/merge.c:1377
msgid "Already up to date."
msgstr "Вече е обновено."
-#: builtin/merge.c:1385
+#: builtin/merge.c:1387
#, c-format
msgid "Updating %s..%s\n"
msgstr "Обновяване „%s..%s“\n"
-#: builtin/merge.c:1426
+#: builtin/merge.c:1428
#, c-format
msgid "Trying really trivial in-index merge...\n"
msgstr "Проба със сливане в рамките на индекса…\n"
-#: builtin/merge.c:1433
+#: builtin/merge.c:1435
#, c-format
msgid "Nope.\n"
msgstr "Неуспешно сливане.\n"
-#: builtin/merge.c:1458
+#: builtin/merge.c:1460
msgid "Already up to date. Yeeah!"
msgstr "Вече е обновено!"
-#: builtin/merge.c:1464
+#: builtin/merge.c:1466
msgid "Not possible to fast-forward, aborting."
msgstr "Не може да се извърши превъртане, преустановяване на действието."
-#: builtin/merge.c:1487 builtin/merge.c:1566
+#: builtin/merge.c:1489 builtin/merge.c:1568
#, c-format
msgid "Rewinding the tree to pristine...\n"
msgstr "Привеждане на дървото към първоначалното…\n"
-#: builtin/merge.c:1491
+#: builtin/merge.c:1493
#, c-format
msgid "Trying merge strategy %s...\n"
msgstr "Пробване със стратегията за сливане „%s“…\n"
-#: builtin/merge.c:1557
+#: builtin/merge.c:1559
#, c-format
msgid "No merge strategy handled the merge.\n"
msgstr "Никоя стратегия за сливане не може да извърши сливането.\n"
-#: builtin/merge.c:1559
+#: builtin/merge.c:1561
#, c-format
msgid "Merge with strategy %s failed.\n"
msgstr "Неуспешно сливане със стратегия „%s“.\n"
-#: builtin/merge.c:1568
+#: builtin/merge.c:1570
#, c-format
msgid "Using the %s to prepare resolving by hand.\n"
msgstr ""
"Ползва се стратегията „%s“, която ще подготви дървото за коригиране на "
"ръка.\n"
-#: builtin/merge.c:1580
+#: builtin/merge.c:1582
#, c-format
msgid "Automatic merge went well; stopped before committing as requested\n"
msgstr ""
@@ -10748,24 +10853,24 @@ msgstr "git merge-base --is-ancestor ПОДАВАНЕ_1 ПОДАВАНЕ_2"
msgid "git merge-base --fork-point <ref> [<commit>]"
msgstr "git merge-base --fork-point УКАЗАТЕЛ [ПОДАВАНЕ]"
-#: builtin/merge-base.c:218
+#: builtin/merge-base.c:220
msgid "output all common ancestors"
msgstr "извеждане на всички общи предшественици"
-#: builtin/merge-base.c:220
+#: builtin/merge-base.c:222
msgid "find ancestors for a single n-way merge"
msgstr ""
"откриване на предшествениците за еднократно сливане на множество истории"
-#: builtin/merge-base.c:222
+#: builtin/merge-base.c:224
msgid "list revs not reachable from others"
msgstr "извеждане на недостижимите от другите указатели"
-#: builtin/merge-base.c:224
+#: builtin/merge-base.c:226
msgid "is the first one ancestor of the other?"
msgstr "ПОДАВАНЕ_1 предшественик ли е на ПОДАВАНЕ_2?"
-#: builtin/merge-base.c:226
+#: builtin/merge-base.c:228
msgid "find where <commit> forked from reflog of <ref>"
msgstr "откриване къде ПОДАВАНЕто се е отклонило от историята на УКАЗАТЕЛя"
@@ -11049,8 +11154,8 @@ msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref УКАЗАТЕЛ_ЗА_БЕЛЕЖКА] remove [ОБЕКТ…]"
#: builtin/notes.c:36
-msgid "git notes [--ref <notes-ref>] prune [-n | -v]"
-msgstr "git notes [--ref УКАЗАТЕЛ_ЗА_БЕЛЕЖКА] prune [-n | -v]"
+msgid "git notes [--ref <notes-ref>] prune [-n] [-v]"
+msgstr "git notes [--ref УКАЗАТЕЛ_ЗА_БЕЛЕЖКА] prune [-n] [-v]"
#: builtin/notes.c:37
msgid "git notes [--ref <notes-ref>] get-ref"
@@ -11398,7 +11503,7 @@ msgstr "опитът за изтриването на несъществуващ
msgid "read object names from the standard input"
msgstr "изчитане на имената на обектите от стандартния вход"
-#: builtin/notes.c:943 builtin/prune.c:105 builtin/worktree.c:146
+#: builtin/notes.c:943 builtin/prune.c:105 builtin/worktree.c:158
msgid "do not remove, show only"
msgstr "само извеждане без действително окастряне"
@@ -11419,205 +11524,213 @@ msgstr "да се използва бележката сочена от този
msgid "unknown subcommand: %s"
msgstr "непозната подкоманда: %s"
-#: builtin/pack-objects.c:31
+#: builtin/pack-objects.c:33
msgid ""
"git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
msgstr ""
"git pack-objects --stdout [ОПЦИЯ…] [< СПИСЪК_С_УКАЗАТЕЛИ | < СПИСЪК_С_ОБЕКТИ]"
-#: builtin/pack-objects.c:32
+#: builtin/pack-objects.c:34
msgid ""
"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
msgstr ""
"git pack-objects [ОПЦИЯ…] ПРЕФИКС_НА_ИМЕТО [< СПИСЪК_С_УКАЗАТЕЛИ | < "
"СПИСЪК_С_ОБЕКТИ]"
-#: builtin/pack-objects.c:181 builtin/pack-objects.c:184
+#: builtin/pack-objects.c:192 builtin/pack-objects.c:195
#, c-format
msgid "deflate error (%d)"
msgstr "грешка при декомпресиране с „deflate“ (%d)"
-#: builtin/pack-objects.c:777
+#: builtin/pack-objects.c:788
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
"изключване на записването на битовата маска, пакетите са разделени поради "
"стойността на „pack.packSizeLimit“"
-#: builtin/pack-objects.c:790
+#: builtin/pack-objects.c:801
msgid "Writing objects"
msgstr "Записване на обектите"
-#: builtin/pack-objects.c:1070
+#: builtin/pack-objects.c:1081
msgid "disabling bitmap writing, as some objects are not being packed"
msgstr ""
"изключване на записването на битовата маска, защото някои обекти няма да се "
"пакетират"
-#: builtin/pack-objects.c:2440
+#: builtin/pack-objects.c:2451
msgid "Compressing objects"
msgstr "Компресиране на обектите"
-#: builtin/pack-objects.c:2849
+#: builtin/pack-objects.c:2599
+msgid "invalid value for --missing"
+msgstr "неправилна стойност за „--missing“"
+
+#: builtin/pack-objects.c:2902
#, c-format
msgid "unsupported index version %s"
msgstr "неподдържана версия на индекса „%s“"
-#: builtin/pack-objects.c:2853
+#: builtin/pack-objects.c:2906
#, c-format
msgid "bad index version '%s'"
msgstr "неправилна версия на индекса „%s“"
-#: builtin/pack-objects.c:2883
+#: builtin/pack-objects.c:2936
msgid "do not show progress meter"
msgstr "без извеждане на напредъка"
-#: builtin/pack-objects.c:2885
+#: builtin/pack-objects.c:2938
msgid "show progress meter"
msgstr "извеждане на напредъка"
-#: builtin/pack-objects.c:2887
+#: builtin/pack-objects.c:2940
msgid "show progress meter during object writing phase"
msgstr "извеждане на напредъка във фазата на запазване на обектите"
-#: builtin/pack-objects.c:2890
+#: builtin/pack-objects.c:2943
msgid "similar to --all-progress when progress meter is shown"
msgstr ""
"същото действие като опцията „--all-progress“ при извеждането на напредъка"
-#: builtin/pack-objects.c:2891
+#: builtin/pack-objects.c:2944
msgid "version[,offset]"
msgstr "ВЕРСИЯ[,ОТМЕСТВАНЕ]"
-#: builtin/pack-objects.c:2892
+#: builtin/pack-objects.c:2945
msgid "write the pack index file in the specified idx format version"
msgstr ""
"запазване на индекса на пакетните файлове във форма̀та с указаната версия"
-#: builtin/pack-objects.c:2895
+#: builtin/pack-objects.c:2948
msgid "maximum size of each output pack file"
msgstr "максимален размер на всеки пакетен файл"
-#: builtin/pack-objects.c:2897
+#: builtin/pack-objects.c:2950
msgid "ignore borrowed objects from alternate object store"
msgstr "игнориране на обектите заети от други хранилища на обекти"
-#: builtin/pack-objects.c:2899
+#: builtin/pack-objects.c:2952
msgid "ignore packed objects"
msgstr "игнориране на пакетираните обекти"
-#: builtin/pack-objects.c:2901
+#: builtin/pack-objects.c:2954
msgid "limit pack window by objects"
msgstr "ограничаване на прозореца за пакетиране по брой обекти"
-#: builtin/pack-objects.c:2903
+#: builtin/pack-objects.c:2956
msgid "limit pack window by memory in addition to object limit"
msgstr ""
"ограничаване на прозореца за пакетиране и по памет освен по брой обекти"
-#: builtin/pack-objects.c:2905
+#: builtin/pack-objects.c:2958
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr ""
"максимална дължина на веригата от разлики, която е позволена в пакетния файл"
-#: builtin/pack-objects.c:2907
+#: builtin/pack-objects.c:2960
msgid "reuse existing deltas"
msgstr "преизползване на съществуващите разлики"
-#: builtin/pack-objects.c:2909
+#: builtin/pack-objects.c:2962
msgid "reuse existing objects"
msgstr "преизползване на съществуващите обекти"
-#: builtin/pack-objects.c:2911
+#: builtin/pack-objects.c:2964
msgid "use OFS_DELTA objects"
msgstr "използване на обекти „OFS_DELTA“"
-#: builtin/pack-objects.c:2913
+#: builtin/pack-objects.c:2966
msgid "use threads when searching for best delta matches"
msgstr ""
"стартиране на нишки за претърсване на най-добрите съвпадения на разликите"
-#: builtin/pack-objects.c:2915
+#: builtin/pack-objects.c:2968
msgid "do not create an empty pack output"
msgstr "без създаване на празен пакетен файл"
-#: builtin/pack-objects.c:2917
+#: builtin/pack-objects.c:2970
msgid "read revision arguments from standard input"
msgstr "изчитане на версиите от стандартния вход"
-#: builtin/pack-objects.c:2919
+#: builtin/pack-objects.c:2972
msgid "limit the objects to those that are not yet packed"
msgstr "ограничаване до все още непакетираните обекти"
-#: builtin/pack-objects.c:2922
+#: builtin/pack-objects.c:2975
msgid "include objects reachable from any reference"
msgstr ""
"включване на всички обекти, които могат да се достигнат от произволен "
"указател"
-#: builtin/pack-objects.c:2925
+#: builtin/pack-objects.c:2978
msgid "include objects referred by reflog entries"
msgstr "включване и на обектите сочени от записите в журнала на указателите"
-#: builtin/pack-objects.c:2928
+#: builtin/pack-objects.c:2981
msgid "include objects referred to by the index"
msgstr "включване и на обектите сочени от индекса"
-#: builtin/pack-objects.c:2931
+#: builtin/pack-objects.c:2984
msgid "output pack to stdout"
msgstr "извеждане на пакета на стандартния изход"
-#: builtin/pack-objects.c:2933
+#: builtin/pack-objects.c:2986
msgid "include tag objects that refer to objects to be packed"
msgstr ""
"включване и на обектите-етикети, които сочат към обектите, които ще бъдат "
"пакетирани"
-#: builtin/pack-objects.c:2935
+#: builtin/pack-objects.c:2988
msgid "keep unreachable objects"
msgstr "запазване на недостижимите обекти"
-#: builtin/pack-objects.c:2937
+#: builtin/pack-objects.c:2990
msgid "pack loose unreachable objects"
msgstr "пакетиране и на недостижимите обекти"
-#: builtin/pack-objects.c:2939
+#: builtin/pack-objects.c:2992
msgid "unpack unreachable objects newer than <time>"
msgstr "разпакетиране на недостижимите обекти, които са по-нови от това ВРЕМЕ"
-#: builtin/pack-objects.c:2942
+#: builtin/pack-objects.c:2995
msgid "create thin packs"
msgstr "създаване на съкратени пакети"
-#: builtin/pack-objects.c:2944
+#: builtin/pack-objects.c:2997
msgid "create packs suitable for shallow fetches"
msgstr "пакетиране подходящо за плитко доставяне"
-#: builtin/pack-objects.c:2946
+#: builtin/pack-objects.c:2999
msgid "ignore packs that have companion .keep file"
msgstr "игнориране на пакетите, които са придружени от файл „.keep“"
-#: builtin/pack-objects.c:2948
+#: builtin/pack-objects.c:3001
msgid "pack compression level"
msgstr "ниво на компресиране при пакетиране"
-#: builtin/pack-objects.c:2950
+#: builtin/pack-objects.c:3003
msgid "do not hide commits by grafts"
msgstr ""
"извеждане на всички родители — дори и тези, които нормално са скрити при "
"присажданията"
-#: builtin/pack-objects.c:2952
+#: builtin/pack-objects.c:3005
msgid "use a bitmap index if available to speed up counting objects"
msgstr ""
"използване на съществуващи индекси на база битови маски за ускоряване на "
"преброяването на обектите"
-#: builtin/pack-objects.c:2954
+#: builtin/pack-objects.c:3007
msgid "write a bitmap index together with the pack index"
msgstr ""
"запазване и на индекс на база побитова маска, заедно с индекса за пакета"
-#: builtin/pack-objects.c:3081
+#: builtin/pack-objects.c:3010
+msgid "handling for missing objects"
+msgstr "как да се обработват липсващите обекти"
+
+#: builtin/pack-objects.c:3144
msgid "Counting objects"
msgstr "Преброяване на обектите"
@@ -11642,8 +11755,8 @@ msgid "Removing duplicate objects"
msgstr "Изтриване на повтарящите се обекти"
#: builtin/prune.c:11
-msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]"
-msgstr "git prune [-n] [-v] [--expire ВРЕМЕ] [--] [ВРЪХ…]"
+msgid "git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]"
+msgstr "git prune [-n] [-v] [--progress] [--expire ВРЕМЕ] [--] [ВРЪХ…]"
#: builtin/prune.c:106
msgid "report pruned objects"
@@ -11666,40 +11779,40 @@ msgstr "Неправилна стойност за „%s“: „%s“"
msgid "git pull [<options>] [<repository> [<refspec>...]]"
msgstr "git push [ОПЦИЯ…] [ХРАНИЛИЩЕ [УКАЗАТЕЛ_НА_ВЕРСИЯ…]]"
-#: builtin/pull.c:124
+#: builtin/pull.c:127
msgid "control for recursive fetching of submodules"
msgstr "управление на рекурсивното доставяне на подмодулите"
-#: builtin/pull.c:128
+#: builtin/pull.c:131
msgid "Options related to merging"
msgstr "Опции при сливане"
-#: builtin/pull.c:131
+#: builtin/pull.c:134
msgid "incorporate changes by rebasing rather than merging"
msgstr "внасяне на промените чрез пребазиране, а не чрез сливане"
-#: builtin/pull.c:155 builtin/rebase--helper.c:21 builtin/revert.c:121
+#: builtin/pull.c:161 builtin/rebase--helper.c:23 builtin/revert.c:121
msgid "allow fast-forward"
msgstr "позволяване на превъртания"
-#: builtin/pull.c:164
+#: builtin/pull.c:170
msgid "automatically stash/stash pop before and after rebase"
msgstr "автоматично скатаване/прилагане на скатаното преди и след пребазиране"
-#: builtin/pull.c:180
+#: builtin/pull.c:186
msgid "Options related to fetching"
msgstr "Опции при доставяне"
-#: builtin/pull.c:198
+#: builtin/pull.c:204
msgid "number of submodules pulled in parallel"
msgstr "брой подмодули издърпани паралелно"
-#: builtin/pull.c:287
+#: builtin/pull.c:299
#, c-format
msgid "Invalid value for pull.ff: %s"
msgstr "Неправилна стойност за „pull.ff“: „%s“"
-#: builtin/pull.c:403
+#: builtin/pull.c:415
msgid ""
"There is no candidate for rebasing against among the refs that you just "
"fetched."
@@ -11707,14 +11820,14 @@ msgstr ""
"Между указателите, които току що доставихте, няма подходящ кандидат, върху "
"който да пребазирате."
-#: builtin/pull.c:405
+#: builtin/pull.c:417
msgid ""
"There are no candidates for merging among the refs that you just fetched."
msgstr ""
"Между указателите, които току що доставихте, няма подходящ кандидат, който "
"да слеете."
-#: builtin/pull.c:406
+#: builtin/pull.c:418
msgid ""
"Generally this means that you provided a wildcard refspec which had no\n"
"matches on the remote end."
@@ -11722,7 +11835,7 @@ msgstr ""
"Най вероятно сте подали шаблон за указатели, който не е напаснал с нищо в "
"отдалеченото хранилище."
-#: builtin/pull.c:409
+#: builtin/pull.c:421
#, c-format
msgid ""
"You asked to pull from the remote '%s', but did not specify\n"
@@ -11733,44 +11846,44 @@ msgstr ""
"Понеже това не е хранилището по подразбиране на текущия клон, трябва\n"
"да укажете отдалечения клон на командния ред."
-#: builtin/pull.c:414 git-parse-remote.sh:73
+#: builtin/pull.c:426 git-parse-remote.sh:73
msgid "You are not currently on a branch."
msgstr "Извън всички клони."
-#: builtin/pull.c:416 builtin/pull.c:431 git-parse-remote.sh:79
+#: builtin/pull.c:428 builtin/pull.c:443 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
msgstr "Укажете върху кой клон искате да пребазирате."
-#: builtin/pull.c:418 builtin/pull.c:433 git-parse-remote.sh:82
+#: builtin/pull.c:430 builtin/pull.c:445 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
msgstr "Укажете кой клон искате да слеете."
-#: builtin/pull.c:419 builtin/pull.c:434
+#: builtin/pull.c:431 builtin/pull.c:446
msgid "See git-pull(1) for details."
msgstr "За повече информация погледнете ръководството „git-pull(1)“"
-#: builtin/pull.c:421 builtin/pull.c:427 builtin/pull.c:436
+#: builtin/pull.c:433 builtin/pull.c:439 builtin/pull.c:448
#: git-parse-remote.sh:64
msgid "<remote>"
msgstr "ОТДАЛЕЧЕНО_ХРАНИЛИЩЕ"
-#: builtin/pull.c:421 builtin/pull.c:436 builtin/pull.c:441 git-rebase.sh:466
+#: builtin/pull.c:433 builtin/pull.c:448 builtin/pull.c:453 git-rebase.sh:466
#: git-parse-remote.sh:65
msgid "<branch>"
msgstr "КЛОН"
-#: builtin/pull.c:429 git-parse-remote.sh:75
+#: builtin/pull.c:441 git-parse-remote.sh:75
msgid "There is no tracking information for the current branch."
msgstr "Текущият клон не следи никой."
-#: builtin/pull.c:438 git-parse-remote.sh:95
+#: builtin/pull.c:450 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:443
+#: builtin/pull.c:455
#, c-format
msgid ""
"Your configuration specifies to merge with the ref '%s'\n"
@@ -11779,27 +11892,27 @@ msgstr ""
"За сливане е указан отдалеченият указател „%s“,\n"
"но такъв не е доставен."
-#: builtin/pull.c:796
+#: builtin/pull.c:817
msgid "ignoring --verify-signatures for rebase"
msgstr "без „--verify-signatures“ при пребазиране"
-#: builtin/pull.c:844
+#: builtin/pull.c:865
msgid "--[no-]autostash option is only valid with --rebase."
msgstr "опцията „--[no-]autostash“ изисква „--rebase“"
-#: builtin/pull.c:852
+#: builtin/pull.c:873
msgid "Updating an unborn branch with changes added to the index."
msgstr "Обновяване на все още несъздаден клон с промените от индекса"
-#: builtin/pull.c:855
+#: builtin/pull.c:876
msgid "pull with rebase"
msgstr "издърпване с пребазиране"
-#: builtin/pull.c:856
+#: builtin/pull.c:877
msgid "please commit or stash them."
msgstr "трябва да подадете или скатаете промените."
-#: builtin/pull.c:881
+#: builtin/pull.c:902
#, c-format
msgid ""
"fetch updated the current branch head.\n"
@@ -11809,7 +11922,7 @@ msgstr ""
"доставянето обнови върха на текущия клон. Работното\n"
"ви копие бе превъртяно от подаване „%s“."
-#: builtin/pull.c:886
+#: builtin/pull.c:907
#, c-format
msgid ""
"Cannot fast-forward your working tree.\n"
@@ -11826,15 +11939,15 @@ msgstr ""
" $ git reset --hard\n"
"за връщане към нормално състояние."
-#: builtin/pull.c:901
+#: builtin/pull.c:922
msgid "Cannot merge multiple branches into empty head."
msgstr "Не може да сливате множество клони в празен върхов указател."
-#: builtin/pull.c:905
+#: builtin/pull.c:926
msgid "Cannot rebase onto multiple branches."
msgstr "Не може да пребазирате върху повече от един клон."
-#: builtin/pull.c:912
+#: builtin/pull.c:933
msgid "cannot rebase with locally recorded submodule modifications"
msgstr ""
"пребазирането е невъзможно заради локално записаните промени по подмодулите"
@@ -11843,15 +11956,15 @@ msgstr ""
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [ОПЦИЯ…] [ХРАНИЛИЩЕ [УКАЗАТЕЛ_НА_ВЕРСИЯ…]]"
-#: builtin/push.c:90
+#: builtin/push.c:92
msgid "tag shorthand without <tag>"
msgstr "съкращение за етикет без ЕТИКЕТ"
-#: builtin/push.c:100
+#: builtin/push.c:102
msgid "--delete only accepts plain target ref names"
msgstr "опцията „--delete“ приема за цел само прости имена на указатели"
-#: builtin/push.c:144
+#: builtin/push.c:146
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
@@ -11860,7 +11973,7 @@ msgstr ""
"За да включите тази опция за постоянно, погледнете документацията за "
"настройката „push.default“ в „git help config“."
-#: builtin/push.c:147
+#: builtin/push.c:149
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -11885,7 +11998,7 @@ msgstr ""
" git push %s %s\n"
"%s"
-#: builtin/push.c:162
+#: builtin/push.c:164
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -11899,7 +12012,7 @@ msgstr ""
"\n"
" git push %s HEAD:ИМЕ_НА_ОТДАЛЕЧЕНИЯ_КЛОН\n"
-#: builtin/push.c:176
+#: builtin/push.c:178
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -11913,14 +12026,14 @@ msgstr ""
"\n"
" git push --set-upstream %s %s\n"
-#: builtin/push.c:184
+#: builtin/push.c:186
#, c-format
msgid "The current branch %s has multiple upstream branches, refusing to push."
msgstr ""
"Текущият клон „%s“ следи няколко отдалечени клона, не можете просто да "
"изтласкате."
-#: builtin/push.c:187
+#: builtin/push.c:189
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -11932,14 +12045,14 @@ msgstr ""
"Трябва да укажете коя версия да се изтласка, за обновяване на отдалечения "
"клон."
-#: builtin/push.c:246
+#: builtin/push.c:248
msgid ""
"You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr ""
"Не сте указали версия за подаване, а настройката „push.default“ е "
"„nothing“ (нищо без изрично указана версия да не се изтласква)"
-#: builtin/push.c:253
+#: builtin/push.c:255
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -11948,12 +12061,12 @@ msgid ""
msgstr ""
"Обновяването е отхвърлено, защото върхът на текущия ви клон е преди върха "
"на\n"
-"отдалечения клон. Внесете отдалечените промени (напр. с командата „git "
+"отдалечения клон. Внесете отдалечените промени (напр. с командата „git "
"pull…“),\n"
"преди отново да изтласкате промените. За повече информация вижте раздела\n"
"„Note about fast-forwards“ в страницата от ръководството „git push --help“."
-#: builtin/push.c:259
+#: builtin/push.c:261
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -11961,12 +12074,13 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr ""
"Обновяването е отхвърлено, защото върхът на изтласквания клон е преди върха\n"
-"на отдалечения клон. Проверете клона и внесете отдалечените промени (напр.\n"
+"на отдалечения клон. Преминете към клона и внесете отдалечените промени "
+"(напр.\n"
"с командата „git pull…“), преди отново да изтласкате промените. За повече\n"
"информация погледнете раздела „Note about fast-forwards“ в страницата от\n"
"ръководството „git push --help“."
-#: builtin/push.c:265
+#: builtin/push.c:267
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -11985,14 +12099,14 @@ msgstr ""
"страницата\n"
"от ръководството „git push --help“."
-#: builtin/push.c:272
+#: builtin/push.c:274
msgid "Updates were rejected because the tag already exists in the remote."
msgstr ""
"Изтласкването е отхвърлено, защото в отдалеченото хранилище съществува "
"етикет,\n"
"който ще припокриете с етикет от вашето хранилище."
-#: builtin/push.c:275
+#: builtin/push.c:277
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
@@ -12002,22 +12116,22 @@ msgstr ""
"указател, който вече сочи към обект, който не е подаване, както и тепърва\n"
"да го промените да сочи към подобен обект.\n"
-#: builtin/push.c:335
+#: builtin/push.c:337
#, c-format
msgid "Pushing to %s\n"
msgstr "Изтласкване към „%s“\n"
-#: builtin/push.c:339
+#: builtin/push.c:341
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "част от указателите не бяха изтласкани към „%s“"
-#: builtin/push.c:370
+#: builtin/push.c:372
#, c-format
msgid "bad repository '%s'"
msgstr "неправилно указано хранилище „%s“"
-#: builtin/push.c:371
+#: builtin/push.c:373
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote "
@@ -12039,115 +12153,115 @@ msgstr ""
"\n"
" git push ИМЕ\n"
-#: builtin/push.c:389
+#: builtin/push.c:391
msgid "--all and --tags are incompatible"
msgstr "опциите „--all“ и „--tags“ са несъвместими"
-#: builtin/push.c:390
+#: builtin/push.c:392
msgid "--all can't be combined with refspecs"
msgstr "опцията „--all“ е несъвместима с указването на версия"
-#: builtin/push.c:395
+#: builtin/push.c:397
msgid "--mirror and --tags are incompatible"
msgstr "опциите „--mirror“ и „--tags“ са несъвместими"
-#: builtin/push.c:396
+#: builtin/push.c:398
msgid "--mirror can't be combined with refspecs"
msgstr "опцията „--mirror“ е несъвместима с указването на версия"
-#: builtin/push.c:401
+#: builtin/push.c:403
msgid "--all and --mirror are incompatible"
msgstr "опциите „--all“ и „--mirror“ са несъвместими"
-#: builtin/push.c:523
+#: builtin/push.c:535
msgid "repository"
msgstr "хранилище"
-#: builtin/push.c:524 builtin/send-pack.c:163
+#: builtin/push.c:536 builtin/send-pack.c:163
msgid "push all refs"
msgstr "изтласкване на всички указатели"
-#: builtin/push.c:525 builtin/send-pack.c:165
+#: builtin/push.c:537 builtin/send-pack.c:165
msgid "mirror all refs"
msgstr "огледално копие на всички указатели"
-#: builtin/push.c:527
+#: builtin/push.c:539
msgid "delete refs"
msgstr "изтриване на указателите"
-#: builtin/push.c:528
+#: builtin/push.c:540
msgid "push tags (can't be used with --all or --mirror)"
msgstr "изтласкване на етикетите (несъвместимо с опциите „--all“ и „--mirror“)"
-#: builtin/push.c:531 builtin/send-pack.c:166
+#: builtin/push.c:543 builtin/send-pack.c:166
msgid "force updates"
msgstr "принудително обновяване"
-#: builtin/push.c:533 builtin/send-pack.c:180
+#: builtin/push.c:545 builtin/send-pack.c:180
msgid "refname>:<expect"
msgstr "УКАЗАТЕЛ>:<ОЧАКВАНА_СТОЙНОСТ"
-#: builtin/push.c:534 builtin/send-pack.c:181
+#: builtin/push.c:546 builtin/send-pack.c:181
msgid "require old value of ref to be at this value"
msgstr "УКАЗАТЕЛят трябва първоначално да е с тази ОЧАКВАНА_СТОЙНОСТ"
-#: builtin/push.c:537
+#: builtin/push.c:549
msgid "control recursive pushing of submodules"
msgstr "управление на рекурсивното изтласкване на подмодулите"
-#: builtin/push.c:539 builtin/send-pack.c:174
+#: builtin/push.c:551 builtin/send-pack.c:174
msgid "use thin pack"
msgstr "използване на съкратени пакети"
-#: builtin/push.c:540 builtin/push.c:541 builtin/send-pack.c:160
+#: builtin/push.c:552 builtin/push.c:553 builtin/send-pack.c:160
#: builtin/send-pack.c:161
msgid "receive pack program"
msgstr "програма за получаването на пакети"
-#: builtin/push.c:542
+#: builtin/push.c:554
msgid "set upstream for git pull/status"
msgstr "задаване на отдалеченото хранилище за командите „git pull/status“"
-#: builtin/push.c:545
+#: builtin/push.c:557
msgid "prune locally removed refs"
msgstr "окастряне на указателите, които са премахнати от локалното хранилище"
-#: builtin/push.c:547
+#: builtin/push.c:559
msgid "bypass pre-push hook"
msgstr "без изпълнение на куката преди изтласкване (pre-push)"
-#: builtin/push.c:548
+#: builtin/push.c:560
msgid "push missing but relevant tags"
msgstr ""
"изтласкване на липсващите в отдалеченото хранилище, но свързани с текущото "
"изтласкване, етикети"
-#: builtin/push.c:551 builtin/send-pack.c:168
+#: builtin/push.c:563 builtin/send-pack.c:168
msgid "GPG sign the push"
msgstr "подписване на изтласкването с GPG"
-#: builtin/push.c:553 builtin/send-pack.c:175
+#: builtin/push.c:565 builtin/send-pack.c:175
msgid "request atomic transaction on remote side"
msgstr "изискване на атомарни операции от отсрещната страна"
-#: builtin/push.c:554 builtin/send-pack.c:171
+#: builtin/push.c:566 builtin/send-pack.c:171
msgid "server-specific"
msgstr "специфични за сървъра"
-#: builtin/push.c:554 builtin/send-pack.c:172
+#: builtin/push.c:566 builtin/send-pack.c:172
msgid "option to transmit"
msgstr "опция за пренос"
-#: builtin/push.c:568
+#: builtin/push.c:583
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr ""
"опцията „--delete“ е несъвместима с опциите „--all“, „--mirror“ и „--tags“"
-#: builtin/push.c:570
+#: builtin/push.c:585
msgid "--delete doesn't make sense without any refs"
msgstr "опцията „--delete“ изисква поне един указател на версия"
-#: builtin/push.c:589
+#: builtin/push.c:604
msgid "push options must not have new line characters"
msgstr "опциите за изтласкване не трябва да съдържат знак за нов ред"
@@ -12230,49 +12344,53 @@ msgstr "изчистване на грешки в командата „unpack-t
msgid "git rebase--helper [<options>]"
msgstr "git rebase--helper [ОПЦИЯ…]"
-#: builtin/rebase--helper.c:22
+#: builtin/rebase--helper.c:24
msgid "keep empty commits"
msgstr "запазване на празните подавания"
-#: builtin/rebase--helper.c:23
+#: builtin/rebase--helper.c:25
msgid "continue rebase"
msgstr "продължаване на пребазирането"
-#: builtin/rebase--helper.c:25
+#: builtin/rebase--helper.c:27
msgid "abort rebase"
msgstr "преустановяване на пребазирането"
-#: builtin/rebase--helper.c:28
+#: builtin/rebase--helper.c:30
msgid "make rebase script"
msgstr "създаване на скрипт за пребазиране"
-#: builtin/rebase--helper.c:30
-msgid "shorten SHA-1s in the todo list"
-msgstr "съкратени суми по SHA1 в списъка за изпълнение"
-
#: builtin/rebase--helper.c:32
-msgid "expand SHA-1s in the todo list"
-msgstr "пълни суми по SHA1 в списъка за изпълнение"
+msgid "shorten commit ids in the todo list"
+msgstr "съкратени идентификатори в списъка за изпълнение"
#: builtin/rebase--helper.c:34
+msgid "expand commit ids in the todo list"
+msgstr "пълни идентификатори в списъка за изпълнение"
+
+#: builtin/rebase--helper.c:36
msgid "check the todo list"
msgstr "проверка на списъка за изпълнение"
-#: builtin/rebase--helper.c:36
+#: builtin/rebase--helper.c:38
msgid "skip unnecessary picks"
msgstr "прескачане на излишните команди за отбиране"
-#: builtin/rebase--helper.c:38
+#: builtin/rebase--helper.c:40
msgid "rearrange fixup/squash lines"
msgstr ""
"преподреждане на редовете за сливане на подаванията със и без смени на "
"съобщението"
-#: builtin/receive-pack.c:29
+#: builtin/rebase--helper.c:42
+msgid "insert exec commands in todo list"
+msgstr "вмъкване на командите за изпълнение в списъка за изпълнение"
+
+#: builtin/receive-pack.c:30
msgid "git receive-pack <git-dir>"
msgstr "git receive-pack ДИРЕКТОРИЯ_НА_GIT"
-#: builtin/receive-pack.c:839
+#: builtin/receive-pack.c:840
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"
@@ -12305,7 +12423,7 @@ msgstr ""
"За да заглушите това съобщение, като запазите стандартното поведение,\n"
"задайте настройката „receive.denyCurrentBranch“ да е „refuse“ (отказ)."
-#: builtin/receive-pack.c:859
+#: builtin/receive-pack.c:860
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"
@@ -12326,20 +12444,15 @@ msgstr ""
"За да заглушите това съобщение, задайте настройката\n"
"„receive.denyDeleteCurrent“ да е „refuse“ (отказ)."
-#: builtin/receive-pack.c:1932
+#: builtin/receive-pack.c:1933
msgid "quiet"
msgstr "без извеждане на информация"
-#: builtin/receive-pack.c:1946
+#: builtin/receive-pack.c:1947
msgid "You must specify a directory."
msgstr "Трябва да укажете директория."
-#: builtin/reflog.c:424
-#, c-format
-msgid "'%s' for '%s' is not a valid timestamp"
-msgstr "„%s“ не е правилна стойност за време за „%s“"
-
-#: builtin/reflog.c:541 builtin/reflog.c:546
+#: builtin/reflog.c:531 builtin/reflog.c:536
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "„%s“ не е правилна стойност за време"
@@ -12870,7 +12983,7 @@ msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
msgstr ""
-"Постепенното препакетиране е несъвместимо с индекси на база битови маски. \n"
+"Постепенното препакетиране е несъвместимо с индекси на база битови маски.\n"
"Ползвайте опцията --no-write-bitmap-index или изключете настройката\n"
"„pack.writebitmaps“."
@@ -12963,7 +13076,7 @@ msgstr "пакетите в хранилище с важни обекти не
msgid "--keep-unreachable and -A are incompatible"
msgstr "Опциите „--keep-unreachable“ и „-A“ са несъвместими"
-#: builtin/repack.c:406 builtin/worktree.c:134
+#: builtin/repack.c:406 builtin/worktree.c:146
#, c-format
msgid "failed to remove '%s'"
msgstr "директорията „%s“ не може да бъде изтрита"
@@ -13192,10 +13305,23 @@ msgstr "Индексът не може да бъде занулен към ве
msgid "Could not write new index file."
msgstr "Новият индекс не може да бъде записан."
-#: builtin/rev-list.c:361
+#: builtin/rev-list.c:399
+msgid "object filtering requires --objects"
+msgstr "филтрирането на обекти изисква опцията „--objects“"
+
+#: builtin/rev-list.c:402
+#, c-format
+msgid "invalid sparse value '%s'"
+msgstr "неправилна частична стойност: %s"
+
+#: builtin/rev-list.c:442
msgid "rev-list does not support display of notes"
msgstr "командата „rev-list“ не поддържа извеждането на бележки"
+#: builtin/rev-list.c:445
+msgid "cannot combine --use-bitmap-index with object filtering"
+msgstr "опцията „--use-bitmap-index“ е несъвместима с филтриране на обектите"
+
#: builtin/rev-parse.c:402
msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
msgstr "git rev-parse --parseopt [ОПЦИЯ…] -- [АРГУМЕНТ…]"
@@ -13657,35 +13783,35 @@ msgstr "пропускане на всички редове, които запо
msgid "prepend comment character and space to each line"
msgstr "добавяне на „# “ в началото на всеки ред"
-#: builtin/submodule--helper.c:24 builtin/submodule--helper.c:1094
+#: builtin/submodule--helper.c:34 builtin/submodule--helper.c:1332
#, c-format
msgid "No such ref: %s"
msgstr "Такъв указател няма: %s"
-#: builtin/submodule--helper.c:31 builtin/submodule--helper.c:1103
+#: builtin/submodule--helper.c:41 builtin/submodule--helper.c:1341
#, c-format
msgid "Expecting a full ref name, got %s"
msgstr "Очаква се пълно име на указател, а не „%s“"
-#: builtin/submodule--helper.c:71
+#: builtin/submodule--helper.c:81
#, c-format
msgid "cannot strip one component off url '%s'"
msgstr "не може да се махне компонент от адреса „%s“"
-#: builtin/submodule--helper.c:302 builtin/submodule--helper.c:623
+#: builtin/submodule--helper.c:370 builtin/submodule--helper.c:861
msgid "alternative anchor for relative paths"
msgstr "директория за определянето на относителните пътища"
-#: builtin/submodule--helper.c:307
+#: builtin/submodule--helper.c:375
msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper list [--prefix=ПЪТ] [ПЪТ…]"
-#: builtin/submodule--helper.c:350 builtin/submodule--helper.c:374
+#: builtin/submodule--helper.c:426 builtin/submodule--helper.c:449
#, c-format
msgid "No url found for submodule path '%s' in .gitmodules"
msgstr "Във файла „.gitmodules“ не е открит адрес за пътя към подмодул „%s“"
-#: builtin/submodule--helper.c:389
+#: builtin/submodule--helper.c:464
#, c-format
msgid ""
"could not lookup configuration '%s'. Assuming this repository is its own "
@@ -13694,81 +13820,111 @@ msgstr ""
"настройката „%s“ липсва. Приема се, че това хранилище е правилният източник "
"за себе си."
-#: builtin/submodule--helper.c:400
+#: builtin/submodule--helper.c:475
#, c-format
msgid "Failed to register url for submodule path '%s'"
msgstr "Неуспешно регистриране на адрес за пътя към подмодул „%s“"
-#: builtin/submodule--helper.c:404
+#: builtin/submodule--helper.c:479
#, c-format
msgid "Submodule '%s' (%s) registered for path '%s'\n"
msgstr "Регистриран е подмодул „%s“ (%s) за пътя към подмодул „%s“\n"
-#: builtin/submodule--helper.c:414
+#: builtin/submodule--helper.c:489
#, c-format
msgid "warning: command update mode suggested for submodule '%s'\n"
msgstr "ПРЕДУПРЕЖДЕНИЕ: препоръчва се режим на обновяване за подмодула „%s“\n"
-#: builtin/submodule--helper.c:421
+#: builtin/submodule--helper.c:496
#, c-format
msgid "Failed to register update mode for submodule path '%s'"
msgstr ""
"Неуспешно регистриране на режима на обновяване за пътя към подмодул „%s“"
-#: builtin/submodule--helper.c:437
+#: builtin/submodule--helper.c:518
msgid "Suppress output for initializing a submodule"
msgstr "Без извеждане на информация при инициализирането на подмодул"
-#: builtin/submodule--helper.c:442
+#: builtin/submodule--helper.c:523
msgid "git submodule--helper init [<path>]"
msgstr "git submodule--helper name [ПЪТ]"
-#: builtin/submodule--helper.c:470
-msgid "git submodule--helper name <path>"
-msgstr "git submodule--helper name ПЪТ"
-
-#: builtin/submodule--helper.c:475
+#: builtin/submodule--helper.c:591 builtin/submodule--helper.c:713
#, c-format
msgid "no submodule mapping found in .gitmodules for path '%s'"
msgstr "Във файла „.gitmodules“ липсва информация за пътя „%s“"
-#: builtin/submodule--helper.c:558 builtin/submodule--helper.c:561
+#: builtin/submodule--helper.c:626
+#, c-format
+msgid "could not resolve HEAD ref inside the submodule '%s'"
+msgstr "указателят сочен от „HEAD“ в подмодула „%s“ не може да бъде открит"
+
+#: builtin/submodule--helper.c:653
+#, c-format
+msgid "failed to recurse into submodule '%s'"
+msgstr "неуспешно рекурсивно обхождане на подмодула „%s“"
+
+#: builtin/submodule--helper.c:677
+msgid "Suppress submodule status output"
+msgstr "Заглушаване на изхода за състоянието на подмодула"
+
+#: builtin/submodule--helper.c:678
+msgid ""
+"Use commit stored in the index instead of the one stored in the submodule "
+"HEAD"
+msgstr ""
+"Използване на подаването указано в индекса, а не това от указателя „HEAD“ на "
+"подмодула"
+
+#: builtin/submodule--helper.c:679
+msgid "recurse into nested submodules"
+msgstr "рекурсивно обхождане на подмодулите"
+
+#: builtin/submodule--helper.c:684
+msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]"
+msgstr "git submodule status [--quiet] [--cached] [--recursive] [ПЪТ…]"
+
+#: builtin/submodule--helper.c:708
+msgid "git submodule--helper name <path>"
+msgstr "git submodule--helper name ПЪТ"
+
+#: builtin/submodule--helper.c:796 builtin/submodule--helper.c:799
#, c-format
msgid "submodule '%s' cannot add alternate: %s"
msgstr "към подмодула „%s“ не може да се добави алтернативен източник: %s"
-#: builtin/submodule--helper.c:597
+#: builtin/submodule--helper.c:835
#, c-format
msgid "Value '%s' for submodule.alternateErrorStrategy is not recognized"
msgstr ""
"Непозната стойност „%s“ за настройката „submodule.alternateErrorStrategy“"
-#: builtin/submodule--helper.c:604
+#: builtin/submodule--helper.c:842
#, c-format
msgid "Value '%s' for submodule.alternateLocation is not recognized"
msgstr "Непозната стойност „%s“ за настройката „submodule.alternateLocation“"
-#: builtin/submodule--helper.c:626
+#: builtin/submodule--helper.c:864
msgid "where the new submodule will be cloned to"
msgstr "къде да се клонира новият подмодул"
-#: builtin/submodule--helper.c:629
+#: builtin/submodule--helper.c:867
msgid "name of the new submodule"
msgstr "име на новия подмодул"
-#: builtin/submodule--helper.c:632
+#: builtin/submodule--helper.c:870
msgid "url where to clone the submodule from"
msgstr "адрес, от който да се клонира новият подмодул"
-#: builtin/submodule--helper.c:638
+#: builtin/submodule--helper.c:876
msgid "depth for shallow clones"
msgstr "дълбочина на плитките хранилища"
-#: builtin/submodule--helper.c:641 builtin/submodule--helper.c:1012
+#: builtin/submodule--helper.c:879 builtin/submodule--helper.c:1250
msgid "force cloning progress"
msgstr "извеждане на напредъка на клонирането"
-#: builtin/submodule--helper.c:646
+#: builtin/submodule--helper.c:884
msgid ""
"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
"<repository>] [--name <name>] [--depth <depth>] --url <url> --path <path>"
@@ -13776,85 +13932,85 @@ msgstr ""
"git submodule--helper clone [--prefix=ПЪТ] [--quiet] [--reference ХРАНИЛИЩЕ] "
"[--name ИМЕ] [--depth ДЪЛБОЧИНА] --url АДРЕС --path ПЪТ…"
-#: builtin/submodule--helper.c:677
+#: builtin/submodule--helper.c:915
#, c-format
msgid "clone of '%s' into submodule path '%s' failed"
msgstr "Неуспешно клониране на адреса „%s“ в пътя „%s“ като подмодул"
-#: builtin/submodule--helper.c:692
+#: builtin/submodule--helper.c:930
#, c-format
msgid "could not get submodule directory for '%s'"
msgstr "директорията на подмодула „%s“ не може да бъде получена"
-#: builtin/submodule--helper.c:757
+#: builtin/submodule--helper.c:995
#, c-format
msgid "Submodule path '%s' not initialized"
msgstr "Пътят на подмодула „%s“ не е инициализиран"
-#: builtin/submodule--helper.c:761
+#: builtin/submodule--helper.c:999
msgid "Maybe you want to use 'update --init'?"
msgstr "Вероятно искахте да използвате „update --init“?"
-#: builtin/submodule--helper.c:790
+#: builtin/submodule--helper.c:1028
#, c-format
msgid "Skipping unmerged submodule %s"
msgstr "Прескачане на неслетия подмодул „%s“"
-#: builtin/submodule--helper.c:819
+#: builtin/submodule--helper.c:1057
#, c-format
msgid "Skipping submodule '%s'"
msgstr "Прескачане на подмодула „%s“"
-#: builtin/submodule--helper.c:952
+#: builtin/submodule--helper.c:1190
#, c-format
msgid "Failed to clone '%s'. Retry scheduled"
msgstr "Неуспешен опит за клониране на „%s“. Насрочен е втори опит"
-#: builtin/submodule--helper.c:963
+#: builtin/submodule--helper.c:1201
#, c-format
msgid "Failed to clone '%s' a second time, aborting"
msgstr ""
"Втори неуспешен опит за клониране на „%s“. Действието се преустановява"
-#: builtin/submodule--helper.c:993 builtin/submodule--helper.c:1213
+#: builtin/submodule--helper.c:1231 builtin/submodule--helper.c:1451
msgid "path into the working tree"
msgstr "път към работното дърво"
-#: builtin/submodule--helper.c:996
+#: builtin/submodule--helper.c:1234
msgid "path into the working tree, across nested submodule boundaries"
msgstr "път към работното дърво, през границите на вложените подмодули"
-#: builtin/submodule--helper.c:1000
+#: builtin/submodule--helper.c:1238
msgid "rebase, merge, checkout or none"
msgstr ""
"„rebase“ (пребазиране), „merge“ (сливане), „checkout“ (изтегляне) или "
"„none“ (нищо да не се прави)"
-#: builtin/submodule--helper.c:1004
+#: builtin/submodule--helper.c:1242
msgid "Create a shallow clone truncated to the specified number of revisions"
msgstr "Плитко клониране, отрязано до указания брой версии"
-#: builtin/submodule--helper.c:1007
+#: builtin/submodule--helper.c:1245
msgid "parallel jobs"
msgstr "брой паралелни процеси"
-#: builtin/submodule--helper.c:1009
+#: builtin/submodule--helper.c:1247
msgid "whether the initial clone should follow the shallow recommendation"
msgstr "дали първоначалното клониране да е плитко, както се препоръчва"
-#: builtin/submodule--helper.c:1010
+#: builtin/submodule--helper.c:1248
msgid "don't print cloning progress"
msgstr "без извеждане на напредъка на клонирането"
-#: builtin/submodule--helper.c:1017
+#: builtin/submodule--helper.c:1255
msgid "git submodule--helper update_clone [--prefix=<path>] [<path>...]"
msgstr "git submodule--helper update_clone [--prefix=ПЪТ] [ПЪТ…]"
-#: builtin/submodule--helper.c:1030
+#: builtin/submodule--helper.c:1268
msgid "bad value for update parameter"
msgstr "неправилен параметър към опцията „--update“"
-#: builtin/submodule--helper.c:1098
+#: builtin/submodule--helper.c:1336
#, c-format
msgid ""
"Submodule (%s) branch configured to inherit branch from superproject, but "
@@ -13863,20 +14019,20 @@ msgstr ""
"Клонът на подмодула „%s“ е настроен да наследява клона от обхващащия проект, "
"но той не е на никой клон"
-#: builtin/submodule--helper.c:1214
+#: builtin/submodule--helper.c:1452
msgid "recurse into submodules"
msgstr "рекурсивно обхождане подмодулите"
-#: builtin/submodule--helper.c:1220
+#: builtin/submodule--helper.c:1458
msgid "git submodule--helper embed-git-dir [<path>...]"
msgstr "git submodule--helper name embed-git-dir [ПЪТ…]"
-#: builtin/submodule--helper.c:1278
+#: builtin/submodule--helper.c:1517
#, c-format
msgid "%s doesn't support --super-prefix"
msgstr "„%s“ не поддържа опцията „--super-prefix“"
-#: builtin/submodule--helper.c:1284
+#: builtin/submodule--helper.c:1523
#, c-format
msgid "'%s' is not a valid submodule--helper subcommand"
msgstr "„%s“ не е подкоманда на „submodule--helper“"
@@ -14116,207 +14272,223 @@ msgstr "Обновен етикет „%s“ (бе „%s“)\n"
msgid "Unpacking objects"
msgstr "Разпакетиране на обектите"
-#: builtin/update-index.c:80
+#: builtin/update-index.c:82
#, c-format
msgid "failed to create directory %s"
msgstr "директорията „%s“ не може да бъде създадена"
-#: builtin/update-index.c:86
+#: builtin/update-index.c:88
#, c-format
msgid "failed to stat %s"
msgstr "не може да бъде получена информация чрез „stat“ за „%s“"
-#: builtin/update-index.c:96
+#: builtin/update-index.c:98
#, c-format
msgid "failed to create file %s"
msgstr "файлът „%s“ не може да бъде създаден"
-#: builtin/update-index.c:104
+#: builtin/update-index.c:106
#, c-format
msgid "failed to delete file %s"
msgstr "файлът „%s“ не може да бъде изтрит"
-#: builtin/update-index.c:111 builtin/update-index.c:217
+#: builtin/update-index.c:113 builtin/update-index.c:219
#, c-format
msgid "failed to delete directory %s"
msgstr "директорията „%s“ не може да бъде изтрита"
-#: builtin/update-index.c:136
+#: builtin/update-index.c:138
#, c-format
msgid "Testing mtime in '%s' "
msgstr "Проверка на времето на промяна (mtime) на файла „%s“"
-#: builtin/update-index.c:150
+#: builtin/update-index.c:152
msgid "directory stat info does not change after adding a new file"
msgstr ""
"информацията получена чрез „stat“ за директорията не се променя след "
"добавянето на нов файл"
-#: builtin/update-index.c:163
+#: builtin/update-index.c:165
msgid "directory stat info does not change after adding a new directory"
msgstr ""
"информацията получена чрез „stat“ за директорията не се променя след "
"добавянето на нова директория"
-#: builtin/update-index.c:176
+#: builtin/update-index.c:178
msgid "directory stat info changes after updating a file"
msgstr ""
"информацията получена чрез „stat“ за директорията се променя след "
"обновяването на нов файл"
-#: builtin/update-index.c:187
+#: builtin/update-index.c:189
msgid "directory stat info changes after adding a file inside subdirectory"
msgstr ""
"информацията получена чрез „stat“ за директорията се променя след добавянето "
"на файл в поддиректория"
-#: builtin/update-index.c:198
+#: builtin/update-index.c:200
msgid "directory stat info does not change after deleting a file"
msgstr ""
"информацията получена чрез „stat“ за директорията не се променя след "
"изтриването на файл"
-#: builtin/update-index.c:211
+#: builtin/update-index.c:213
msgid "directory stat info does not change after deleting a directory"
msgstr ""
"информацията получена чрез „stat“ за директорията не се променя след "
"изтриването на директория"
-#: builtin/update-index.c:218
+#: builtin/update-index.c:220
msgid " OK"
msgstr " Добре"
-#: builtin/update-index.c:571
+#: builtin/update-index.c:579
msgid "git update-index [<options>] [--] [<file>...]"
msgstr "git update-index [ОПЦИЯ…] [--] [ФАЙЛ…]"
-#: builtin/update-index.c:926
+#: builtin/update-index.c:936
msgid "continue refresh even when index needs update"
msgstr ""
"продължаване с обновяването, дори когато индексът трябва да бъде обновен"
-#: builtin/update-index.c:929
+#: builtin/update-index.c:939
msgid "refresh: ignore submodules"
msgstr "подмодулите да се игнорират при обновяването"
-#: builtin/update-index.c:932
+#: builtin/update-index.c:942
msgid "do not ignore new files"
msgstr "новите файлове да не се игнорират"
-#: builtin/update-index.c:934
+#: builtin/update-index.c:944
msgid "let files replace directories and vice-versa"
msgstr "файлове да могат да заменят директории и обратно"
-#: builtin/update-index.c:936
+#: builtin/update-index.c:946
msgid "notice files missing from worktree"
msgstr "предупреждаване при липсващи в работното дърво файлове"
-#: builtin/update-index.c:938
+#: builtin/update-index.c:948
msgid "refresh even if index contains unmerged entries"
msgstr "обновяване дори и индексът да съдържа неслети обекти"
-#: builtin/update-index.c:941
+#: builtin/update-index.c:951
msgid "refresh stat information"
msgstr "обновяване на информацията от функцията „stat“"
-#: builtin/update-index.c:945
+#: builtin/update-index.c:955
msgid "like --refresh, but ignore assume-unchanged setting"
msgstr ""
"като опцията „--refresh“, но да се проверят и обектите, които са били приети "
"за непроменени"
-#: builtin/update-index.c:949
+#: builtin/update-index.c:959
msgid "<mode>,<object>,<path>"
msgstr "РЕЖИМ,ОБЕКТ,ПЪТ"
-#: builtin/update-index.c:950
+#: builtin/update-index.c:960
msgid "add the specified entry to the index"
msgstr "добавяне на изброените обекти към индекса"
-#: builtin/update-index.c:959
+#: builtin/update-index.c:969
msgid "mark files as \"not changing\""
msgstr "задаване на флаг, че файлът не се променя"
-#: builtin/update-index.c:962
+#: builtin/update-index.c:972
msgid "clear assumed-unchanged bit"
msgstr "изчистване на флага, че файлът не се променя"
-#: builtin/update-index.c:965
+#: builtin/update-index.c:975
msgid "mark files as \"index-only\""
msgstr "задаване на флаг, че файловете са само за индекса"
-#: builtin/update-index.c:968
+#: builtin/update-index.c:978
msgid "clear skip-worktree bit"
msgstr "изчистване на флага, че файловете са само за индекса"
-#: builtin/update-index.c:971
+#: builtin/update-index.c:981
msgid "add to index only; do not add content to object database"
msgstr "добавяне само към индекса без добавяне към базата от данни за обектите"
-#: builtin/update-index.c:973
+#: builtin/update-index.c:983
msgid "remove named paths even if present in worktree"
msgstr "изтриване на указаните пътища, дори и да съществуват в работното дърво"
-#: builtin/update-index.c:975
+#: builtin/update-index.c:985
msgid "with --stdin: input lines are terminated by null bytes"
msgstr ""
"при комбиниране с опцията „--stdin“ — входните редове са разделени с нулевия "
"байт"
-#: builtin/update-index.c:977
+#: builtin/update-index.c:987
msgid "read list of paths to be updated from standard input"
msgstr "изчитане на списъка с пътища за обновяване от стандартния вход"
-#: builtin/update-index.c:981
+#: builtin/update-index.c:991
msgid "add entries from standard input to the index"
msgstr "добавяне на елементите от стандартния вход към индекса"
-#: builtin/update-index.c:985
+#: builtin/update-index.c:995
msgid "repopulate stages #2 and #3 for the listed paths"
msgstr ""
"възстановяване на състоянието преди сливане или нужда от обновяване за "
"изброените пътища"
-#: builtin/update-index.c:989
+#: builtin/update-index.c:999
msgid "only update entries that differ from HEAD"
msgstr "добавяне само на съдържанието, което се различава от това в „HEAD“"
-#: builtin/update-index.c:993
+#: builtin/update-index.c:1003
msgid "ignore files missing from worktree"
msgstr "игнориране на файловете, които липсват в работното дърво"
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1006
msgid "report actions to standard output"
msgstr "извеждане на действията на стандартния изход"
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1008
msgid "(for porcelains) forget saved unresolved conflicts"
msgstr ""
"забравяне на записаната информация за неразрешени конфликти — за командите "
"от потребителско ниво"
-#: builtin/update-index.c:1002
+#: builtin/update-index.c:1012
msgid "write index in this format"
msgstr "записване на индекса в този формат"
-#: builtin/update-index.c:1004
+#: builtin/update-index.c:1014
msgid "enable or disable split index"
msgstr "включване или изключване на разделянето на индекса"
-#: builtin/update-index.c:1006
+#: builtin/update-index.c:1016
msgid "enable/disable untracked cache"
msgstr "включване/изключване на кеша за неследените файлове"
-#: builtin/update-index.c:1008
+#: builtin/update-index.c:1018
msgid "test if the filesystem supports untracked cache"
msgstr "проверка дали файловата система поддържа кеш за неследени файлове"
-#: builtin/update-index.c:1010
+#: builtin/update-index.c:1020
msgid "enable untracked cache without testing the filesystem"
msgstr ""
"включване на кеша за неследените файлове без проверка на файловата система"
-#: builtin/update-index.c:1107
+#: builtin/update-index.c:1022
+msgid "write out the index even if is not flagged as changed"
+msgstr "запис на индекса, дори да не е отбелязан като променен"
+
+#: builtin/update-index.c:1024
+msgid "enable or disable file system monitor"
+msgstr "включване или изключване на наблюдението на файловата система"
+
+#: builtin/update-index.c:1026
+msgid "mark files as fsmonitor valid"
+msgstr "отбелязване на файловете, че могат да се следят чрез файловата система"
+
+#: builtin/update-index.c:1029
+msgid "clear fsmonitor valid bit"
+msgstr "изчистване на флага за следенето чрез файловата система"
+
+#: builtin/update-index.c:1127
msgid ""
"core.splitIndex is set to false; remove or change it, if you really want to "
"enable split index"
@@ -14324,7 +14496,7 @@ msgstr ""
"Настройката „core.splitIndex“ е зададена на „false“ (лъжа). Сменете я или я "
"изтрийте, за да включите разделянето на индекса"
-#: builtin/update-index.c:1116
+#: builtin/update-index.c:1136
msgid ""
"core.splitIndex is set to true; remove or change it, if you really want to "
"disable split index"
@@ -14332,7 +14504,7 @@ msgstr ""
"Настройката „core.splitIndex“ е зададена на „true“ (истина). Сменете я или "
"я изтрийте, за да изключите разделянето на индекса."
-#: builtin/update-index.c:1127
+#: builtin/update-index.c:1147
msgid ""
"core.untrackedCache is set to true; remove or change it, if you really want "
"to disable the untracked cache"
@@ -14340,11 +14512,11 @@ msgstr ""
"Настройката „core.untrackedCache“ е зададена на „true“ (истина). Сменете я "
"или я изтрийте, за да изключите кеша за неследените файлове"
-#: builtin/update-index.c:1131
+#: builtin/update-index.c:1151
msgid "Untracked cache disabled"
msgstr "Кешът за неследените файлове е изключен"
-#: builtin/update-index.c:1139
+#: builtin/update-index.c:1159
msgid ""
"core.untrackedCache is set to false; remove or change it, if you really want "
"to enable the untracked cache"
@@ -14352,11 +14524,32 @@ msgstr ""
"Настройката „core.untrackedCache“ е зададена на „false“ (лъжа). Сменете я "
"или я изтрийте, за да включите кеша за неследените файлове"
-#: builtin/update-index.c:1143
+#: builtin/update-index.c:1163
#, c-format
msgid "Untracked cache enabled for '%s'"
msgstr "Кешът за неследените файлове е включен за „%s“"
+#: builtin/update-index.c:1171
+msgid "core.fsmonitor is unset; set it if you really want to enable fsmonitor"
+msgstr ""
+"Настройката „core.fsmonitor“ не е зададена. Задайте я, за да включите "
+"следенето чрез файловата система."
+
+#: builtin/update-index.c:1175
+msgid "fsmonitor enabled"
+msgstr "следенето чрез файловата система е включено"
+
+#: builtin/update-index.c:1178
+msgid ""
+"core.fsmonitor is set; remove it if you really want to disable fsmonitor"
+msgstr ""
+"Настройката „core.fsmonitor“ е зададена. Изтрийте я, за да изключите "
+"следенето чрез файловата система."
+
+#: builtin/update-index.c:1182
+msgid "fsmonitor disabled"
+msgstr "следенето чрез файловата система е изключено"
+
#: builtin/update-ref.c:10
msgid "git update-ref [<options>] -d <refname> [<old-val>]"
msgstr "git update-ref [ОПЦИЯ…] -d ИМЕ_НА_УКАЗАТЕЛ [СТАРА_СТОЙНОСТ]"
@@ -14427,43 +14620,43 @@ msgstr "git verify-tag [-v | --verbose] [--format=ФОРМАТ] ЕТИКЕТ…"
msgid "print tag contents"
msgstr "извеждане на съдържанието на ЕТИКЕТи"
-#: builtin/worktree.c:16
+#: builtin/worktree.c:17
msgid "git worktree add [<options>] <path> [<branch>]"
msgstr "git worktree add [ОПЦИЯ…] ПЪТ [КЛОН]"
-#: builtin/worktree.c:17
+#: builtin/worktree.c:18
msgid "git worktree list [<options>]"
msgstr "git worktree list [ОПЦИЯ…]"
-#: builtin/worktree.c:18
+#: builtin/worktree.c:19
msgid "git worktree lock [<options>] <path>"
msgstr "git worktree lock [ОПЦИЯ…] [ПЪТ]"
-#: builtin/worktree.c:19
+#: builtin/worktree.c:20
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [ОПЦИЯ…]"
-#: builtin/worktree.c:20
+#: builtin/worktree.c:21
msgid "git worktree unlock <path>"
msgstr "git worktree unlock [ПЪТ]"
-#: builtin/worktree.c:46
+#: builtin/worktree.c:58
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Изтриване на „worktrees/%s“: не е правилна поддиректория"
-#: builtin/worktree.c:52
+#: builtin/worktree.c:64
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Изтриване на „worktrees/%s“: файлът „gitdir“ не съществува"
-#: builtin/worktree.c:57 builtin/worktree.c:66
+#: builtin/worktree.c:69 builtin/worktree.c:78
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr ""
"Изтриване на „worktrees/%s“: файлът „gitdir“ (%s) не може да бъде прочетен"
-#: builtin/worktree.c:76
+#: builtin/worktree.c:88
#, c-format
msgid ""
"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
@@ -14472,89 +14665,101 @@ msgstr ""
"Изтриване на „worktrees/%s“: изчитането върна по-малко байтове от очакваното "
"(очаквани: %<PRIuMAX> байта, получени: %<PRIuMAX>)"
-#: builtin/worktree.c:84
+#: builtin/worktree.c:96
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Изтриване на „worktrees/%s“: неправилен файл „gitdir“"
-#: builtin/worktree.c:100
+#: builtin/worktree.c:112
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr ""
"Изтриване на „worktrees/%s“: файлът „gitdir“ сочи несъществуващо "
"местоположение"
-#: builtin/worktree.c:147
+#: builtin/worktree.c:159
msgid "report pruned working trees"
msgstr "докладване на окастрените работни дървета"
-#: builtin/worktree.c:149
+#: builtin/worktree.c:161
msgid "expire working trees older than <time>"
msgstr "обявяване на работните копия по-стари от това ВРЕМЕ за остарели"
-#: builtin/worktree.c:223
+#: builtin/worktree.c:236
#, c-format
msgid "'%s' already exists"
msgstr "„%s“ вече съществува"
-#: builtin/worktree.c:254
+#: builtin/worktree.c:267
#, c-format
msgid "could not create directory of '%s'"
msgstr "директорията „%s“ не може да бъде създадена"
-#: builtin/worktree.c:293
+#: builtin/worktree.c:306
#, c-format
msgid "Preparing %s (identifier %s)"
msgstr "Подготвяне на %s (идентификатор %s)"
-#: builtin/worktree.c:345
+#: builtin/worktree.c:368
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "Изтегляне КЛОНа, дори и да е изтеглен в друго работно дърво"
-#: builtin/worktree.c:347
+#: builtin/worktree.c:370
msgid "create a new branch"
msgstr "създаване на нов клон"
-#: builtin/worktree.c:349
+#: builtin/worktree.c:372
msgid "create or reset a branch"
msgstr "създаване или зануляване на клони"
-#: builtin/worktree.c:351
+#: builtin/worktree.c:374
msgid "populate the new working tree"
msgstr "подготвяне на новото работно дърво"
-#: builtin/worktree.c:352
+#: builtin/worktree.c:375
msgid "keep the new working tree locked"
msgstr "новото работно дърво да остане заключено"
-#: builtin/worktree.c:360
+#: builtin/worktree.c:377
+msgid "set up tracking mode (see git-branch(1))"
+msgstr "задаване на режима на следене (виж git-branch(1))"
+
+#: builtin/worktree.c:380
+msgid "try to match the new branch name with a remote-tracking branch"
+msgstr "опит за напасване на името на новия клон с това на следящ клон"
+
+#: builtin/worktree.c:388
msgid "-b, -B, and --detach are mutually exclusive"
msgstr "Опциите „-b“, „-B“ и „--detach“ са несъвместими една с друга"
-#: builtin/worktree.c:499
+#: builtin/worktree.c:453
+msgid "--[no-]track can only be used if a new branch is created"
+msgstr "„--[no-]track“ може да се използва само при създаването на нов клон"
+
+#: builtin/worktree.c:553
msgid "reason for locking"
msgstr "причина за заключване"
-#: builtin/worktree.c:511 builtin/worktree.c:544
+#: builtin/worktree.c:565 builtin/worktree.c:598
#, c-format
msgid "'%s' is not a working tree"
msgstr "„%s“ не е работно дърво"
-#: builtin/worktree.c:513 builtin/worktree.c:546
+#: builtin/worktree.c:567 builtin/worktree.c:600
msgid "The main working tree cannot be locked or unlocked"
msgstr "Основното дърво не може да се отключи или заключи"
-#: builtin/worktree.c:518
+#: builtin/worktree.c:572
#, c-format
msgid "'%s' is already locked, reason: %s"
msgstr "„%s“ вече е заключено, защото „%s“"
-#: builtin/worktree.c:520
+#: builtin/worktree.c:574
#, c-format
msgid "'%s' is already locked"
msgstr "„%s“ вече е заключено"
-#: builtin/worktree.c:548
+#: builtin/worktree.c:602
#, c-format
msgid "'%s' is not locked"
msgstr "„%s“ не е заключено"
@@ -14575,24 +14780,24 @@ msgstr "запис на обект-дърво за поддиректорият
msgid "only useful for debugging"
msgstr "само за изчистване на грешки"
-#: upload-pack.c:23
+#: upload-pack.c:24
msgid "git upload-pack [<options>] <dir>"
msgstr "git upload-repack [ОПЦИЯ…] ДИРЕКТОРИЯ"
-#: upload-pack.c:1040
+#: upload-pack.c:1041
msgid "quit after a single request/response exchange"
msgstr "изход след първоначалната размяна на заявка и отговор"
-#: upload-pack.c:1042
+#: upload-pack.c:1043
msgid "exit immediately after initial ref advertisement"
msgstr "изход след първоначалната обява на указатели"
-#: upload-pack.c:1044
+#: upload-pack.c:1045
msgid "do not try <directory>/.git/ if <directory> is no Git directory"
msgstr ""
"да не се търси „ДИРЕКТОРИЯ/.git/“, ако ДИРЕКТОРИЯта не е под контрола на Git"
-#: upload-pack.c:1046
+#: upload-pack.c:1047
msgid "interrupt transfer after <n> seconds of inactivity"
msgstr "трансферът да се преустанови след този БРОЙ секунди"
@@ -14621,28 +14826,30 @@ msgid ""
"concept guides. See 'git help <command>' or 'git help <concept>'\n"
"to read about a specific subcommand or concept."
msgstr ""
-"„git help -a“ извежда наличните подкоманди, а „git help -g“ извежда наличните\n"
-"ръководства. За помощ за специфична КОМАНДА ползвайте „git help КОМАНДА“, а за\n"
+"„git help -a“ извежда наличните подкоманди, а „git help -g“ извежда "
+"наличните\n"
+"въведения. За помощ за специфична КОМАНДА ползвайте „git help КОМАНДА“, а "
+"за\n"
"някое определено ПОНЯТИЕ използвайте „git help ПОНЯТИЕ“.\n"
"\n"
"Български превод на книгата „Pro Git“ от Чакън и Страуб:\n"
"http://i-can.eu/progit2-bg/progit.html"
-#: http.c:338
+#: http.c:339
#, c-format
msgid "negative value for http.postbuffer; defaulting to %d"
msgstr ""
-"отрицателна стойност за „http.postbuffer“. Ще се ползва стандартната: %d"
+"отрицателна стойност за „http.postbuffer“. Ще се ползва стандартната: %d"
-#: http.c:359
+#: http.c:360
msgid "Delegation control is not supported with cURL < 7.22.0"
msgstr "Управлението на делегирането не се поддържа от cURL < 7.22.0"
-#: http.c:368
+#: http.c:369
msgid "Public key pinning not supported with cURL < 7.44.0"
msgstr "Задаването на постоянен публичен ключ не се поддържа от cURL < 7.44.0"
-#: http.c:1768
+#: http.c:1791
#, c-format
msgid ""
"unable to update url base from redirection:\n"
@@ -14658,6 +14865,14 @@ msgstr ""
msgid "redirecting to %s"
msgstr "пренасочване към „%s“"
+#: list-objects-filter-options.h:54
+msgid "args"
+msgstr "АРГУМЕНТИ"
+
+#: list-objects-filter-options.h:55
+msgid "object filtering"
+msgstr "филтриране по вид на обекта"
+
#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "създаване на работно дърво (погледнете: „git help tutorial“)"
@@ -14837,27 +15052,27 @@ msgstr "Неправилен указател „HEAD“"
msgid "Bad bisect_write argument: $state"
msgstr "Неправилен аргумент на функцията „bisect_write“: „${state}“"
-#: git-bisect.sh:262
+#: git-bisect.sh:246
#, sh-format
msgid "Bad rev input: $arg"
msgstr "Неправилна версия: „${arg}“"
-#: git-bisect.sh:281
+#: git-bisect.sh:265
#, sh-format
msgid "Bad rev input: $bisected_head"
msgstr "Неправилна версия: „$bisected_head“"
-#: git-bisect.sh:290
+#: git-bisect.sh:274
#, sh-format
msgid "Bad rev input: $rev"
msgstr "Неправилна версия: „${rev}“"
-#: git-bisect.sh:299
+#: git-bisect.sh:283
#, sh-format
msgid "'git bisect $TERM_BAD' can take only one argument."
msgstr "Командата „git bisect ${TERM_BAD}“ приема само един аргумент."
-#: git-bisect.sh:322
+#: git-bisect.sh:306
#, sh-format
msgid "Warning: bisecting only with a $TERM_BAD commit."
msgstr "ПРЕДУПРЕЖДЕНИЕ: двоично търсене само по ${TERM_BAD} подаване."
@@ -14865,11 +15080,11 @@ msgstr "ПРЕДУПРЕЖДЕНИЕ: двоично търсене само п
#. TRANSLATORS: Make sure to include [Y] and [n] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-bisect.sh:328
+#: git-bisect.sh:312
msgid "Are you sure [Y/n]? "
msgstr "Да се продължи ли? „Y“ — ДА, „n“ — не"
-#: git-bisect.sh:340
+#: git-bisect.sh:324
#, sh-format
msgid ""
"You need to give me at least one $bad_syn and one $good_syn revision.\n"
@@ -14880,7 +15095,7 @@ msgstr ""
"направи съответно и чрез командите „git bisect ${bad_syn}“ и „git bisect "
"${good_syn}“.)"
-#: git-bisect.sh:343
+#: git-bisect.sh:327
#, sh-format
msgid ""
"You need to start by \"git bisect start\".\n"
@@ -14892,16 +15107,16 @@ msgstr ""
"направи съответно и чрез командите „git bisect ${bad_syn}“ и „git bisect "
"${good_syn}“.)"
-#: git-bisect.sh:414 git-bisect.sh:546
+#: git-bisect.sh:398 git-bisect.sh:512
msgid "We are not bisecting."
msgstr "В момента не се извършва двоично търсене."
-#: git-bisect.sh:421
+#: git-bisect.sh:405
#, sh-format
msgid "'$invalid' is not a valid commit"
msgstr "„${invalid}“ е неправилно подаване"
-#: git-bisect.sh:430
+#: git-bisect.sh:414
#, sh-format
msgid ""
"Could not check out original HEAD '$branch'.\n"
@@ -14910,28 +15125,32 @@ msgstr ""
"Първоначално указаният клон „${branch}“ в указателя „HEAD“ не може да бъде\n"
"изтеглен. Пробвайте да изпълните командата „git bisect reset ПОДАВАНЕ“."
-#: git-bisect.sh:458
+#: git-bisect.sh:422
msgid "No logfile given"
msgstr "Не е зададен журнален файл"
-#: git-bisect.sh:459
+#: git-bisect.sh:423
#, sh-format
msgid "cannot read $file for replaying"
msgstr ""
"Журналният файл „${file}“ не може да бъде прочетен, за да се изпълнят "
"командите от него наново"
-#: git-bisect.sh:480
+#: git-bisect.sh:444
msgid "?? what are you talking about?"
msgstr ""
"Непозната команда. Възможните варианти са: „start“, „good“, „bad“, „skip“"
-#: git-bisect.sh:492
+#: git-bisect.sh:453
+msgid "bisect run failed: no command provided."
+msgstr "неуспешно двоично търсене, не е зададена команда."
+
+#: git-bisect.sh:458
#, sh-format
msgid "running $command"
msgstr "изпълнение на командата „${command}“"
-#: git-bisect.sh:499
+#: git-bisect.sh:465
#, sh-format
msgid ""
"bisect run failed:\n"
@@ -14941,11 +15160,11 @@ msgstr ""
"изходният код от командата „${command}“ е ${res} — това е извън интервала "
"[0, 128)"
-#: git-bisect.sh:525
+#: git-bisect.sh:491
msgid "bisect run cannot continue any more"
msgstr "двоичното търсене не може да продължи"
-#: git-bisect.sh:531
+#: git-bisect.sh:497
#, sh-format
msgid ""
"bisect run failed:\n"
@@ -14954,42 +15173,22 @@ msgstr ""
"неуспешно двоично търсене:\n"
"функцията „bisect_state ${state}“ завърши с код за грешка ${res}"
-#: git-bisect.sh:538
+#: git-bisect.sh:504
msgid "bisect run success"
msgstr "успешно двоично търсене"
-#: git-bisect.sh:565
-msgid "please use two different terms"
-msgstr "използвайте две различни управляващи думи"
-
-#: git-bisect.sh:575
-#, sh-format
-msgid "'$term' is not a valid term"
-msgstr "„${term}“ не е правилна управляваща дума"
-
-#: git-bisect.sh:578
-#, sh-format
-msgid "can't use the builtin command '$term' as a term"
-msgstr ""
-"„${term}“ е вградена команда и не може да се използва като управляваща дума"
-
-#: git-bisect.sh:587 git-bisect.sh:593
-#, sh-format
-msgid "can't change the meaning of term '$term'"
-msgstr "не може да смените значението на управляващата дума „${term}“"
-
-#: git-bisect.sh:606
+#: git-bisect.sh:533
#, sh-format
msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect."
msgstr ""
"Неправилна команда: в момента се изпълнява двоично търсене по ${TERM_BAD}/"
"${TERM_GOOD}."
-#: git-bisect.sh:636
+#: git-bisect.sh:567
msgid "no terms defined"
msgstr "не са указани управляващи думи"
-#: git-bisect.sh:653
+#: git-bisect.sh:584
#, sh-format
msgid ""
"invalid argument $arg for 'git bisect terms'.\n"
@@ -15069,7 +15268,7 @@ msgid "The pre-rebase hook refused to rebase."
msgstr "Куката за изпълнение преди пребазиране отхвърли пребазирането."
#: git-rebase.sh:219
-msgid "It looks like git-am is in progress. Cannot rebase."
+msgid "It looks like 'git am' is in progress. Cannot rebase."
msgstr ""
"Изглежда, че сега се прилагат кръпки чрез командата „git-am“. Не може да "
"пребазирате в момента."
@@ -15118,7 +15317,7 @@ msgstr ""
#: git-rebase.sh:480
#, sh-format
-msgid "invalid upstream $upstream_name"
+msgid "invalid upstream '$upstream_name'"
msgstr "неправилна основа за сравнение „${upstream_name}“"
#: git-rebase.sh:504
@@ -15138,47 +15337,57 @@ msgstr "указателят „${onto_name}“ не сочи към никак
msgid "Does not point to a valid commit: $onto_name"
msgstr "Указателят „${onto_name}“ не сочи към подаване"
-#: git-rebase.sh:539
+#: git-rebase.sh:542
#, sh-format
-msgid "fatal: no such branch: $branch_name"
+msgid "fatal: no such branch/commit '$branch_name'"
msgstr "ФАТАЛНА ГРЕШКА: не съществува клон „${branch_name}“"
-#: git-rebase.sh:572
+#: git-rebase.sh:575
msgid "Cannot autostash"
msgstr "Не може да се скатае автоматично"
-#: git-rebase.sh:577
+#: git-rebase.sh:580
#, sh-format
msgid "Created autostash: $stash_abbrev"
msgstr "Автоматично скатано: „${stash_abbrev}“"
-#: git-rebase.sh:581
+#: git-rebase.sh:584
msgid "Please commit or stash them."
msgstr "Промените трябва или да се подадат, или да се скатаят."
-#: git-rebase.sh:601
+#: git-rebase.sh:607
+#, sh-format
+msgid "HEAD is up to date."
+msgstr "Указателят „HEAD“ е напълно актуален"
+
+#: git-rebase.sh:609
#, sh-format
msgid "Current branch $branch_name is up to date."
msgstr "Текущият клон „${branch_name}“ е напълно актуален."
-#: git-rebase.sh:605
+#: git-rebase.sh:617
+#, sh-format
+msgid "HEAD is up to date, rebase forced."
+msgstr "Указателят „HEAD“ е напълно актуален. Пребазирането е принудително."
+
+#: git-rebase.sh:619
#, sh-format
msgid "Current branch $branch_name is up to date, rebase forced."
msgstr ""
"Текущият клон „${branch_name}“ е напълно актуален. Пребазирането е "
"принудително."
-#: git-rebase.sh:616
+#: git-rebase.sh:631
#, sh-format
msgid "Changes from $mb to $onto:"
msgstr "Промените от „${mb}“ към „${onto}“:"
-#: git-rebase.sh:625
+#: git-rebase.sh:640
msgid "First, rewinding head to replay your work on top of it..."
msgstr ""
"Първо, указателят „HEAD“ започва да сочи към базата, върху която пребазирате…"
-#: git-rebase.sh:635
+#: git-rebase.sh:650
#, sh-format
msgid "Fast-forwarded $branch_name to $onto_name."
msgstr "Превъртане на „${branch_name}“ върху „${onto_name}“."
@@ -15187,163 +15396,149 @@ msgstr "Превъртане на „${branch_name}“ върху „${onto_name
msgid "git stash clear with parameters is unimplemented"
msgstr "Командата „git stash clear“ не поддържа аргументи"
-#: git-stash.sh:102
+#: git-stash.sh:108
msgid "You do not have the initial commit yet"
msgstr "Все още липсва първоначално подаване"
-#: git-stash.sh:117
+#: git-stash.sh:123
msgid "Cannot save the current index state"
msgstr "Състоянието на текущия индекс не може да бъде запазено"
-#: git-stash.sh:132
+#: git-stash.sh:138
msgid "Cannot save the untracked files"
msgstr "Неследените файлове не могат да се запазят"
-#: git-stash.sh:152 git-stash.sh:165
+#: git-stash.sh:158 git-stash.sh:171
msgid "Cannot save the current worktree state"
msgstr "Състоянието на работното дърво не може да бъде запазено"
-#: git-stash.sh:169
+#: git-stash.sh:175
msgid "No changes selected"
msgstr "Не са избрани никакви промени"
-#: git-stash.sh:172
+#: git-stash.sh:178
msgid "Cannot remove temporary index (can't happen)"
msgstr "Временният индекс не може да бъде изтрит"
-#: git-stash.sh:185
+#: git-stash.sh:191
msgid "Cannot record working tree state"
msgstr "Състоянието на работното дърво не може да бъде запазено"
-#: git-stash.sh:217
+#: git-stash.sh:229
#, sh-format
msgid "Cannot update $ref_stash with $w_commit"
msgstr ""
"Указателят „${ref_stash}“ не може да бъде обновен да сочи към „${w_commit}“"
-#. TRANSLATORS: $option is an invalid option, like
-#. `--blah-blah'. The 7 spaces at the beginning of the
-#. second line correspond to "error: ". So you should line
-#. up the second line with however many characters the
-#. translation of "error: " takes in your language. E.g. in
-#. English this is:
-#.
-#. $ git stash save --blah-blah 2>&1 | head -n 2
-#. error: unknown option for 'stash save': --blah-blah
-#. To provide a message, use git stash save -- '--blah-blah'
-#: git-stash.sh:273
+#: git-stash.sh:281
#, sh-format
-msgid ""
-"error: unknown option for 'stash save': $option\n"
-" To provide a message, use git stash save -- '$option'"
-msgstr ""
-"грешка: командата „git stash save“ не поддържа опция „${option}“\n"
-" За да зададете съобщение, изпълнете „git stash save -- '${option}'“"
+msgid "error: unknown option for 'stash push': $option"
+msgstr "ГРЕШКА: командата „stash push“ не приема опцията „$option“"
-#: git-stash.sh:288
+#: git-stash.sh:295
msgid "Can't use --patch and --include-untracked or --all at the same time"
msgstr "Опцията „--patch“ е несъвместима с „--include-untracked“ и „--all“"
-#: git-stash.sh:296
+#: git-stash.sh:303
msgid "No local changes to save"
msgstr "Няма никакви локални промени за скатаване"
-#: git-stash.sh:301
+#: git-stash.sh:308
msgid "Cannot initialize stash"
msgstr "Скатаването не може да стартира"
-#: git-stash.sh:305
+#: git-stash.sh:312
msgid "Cannot save the current status"
msgstr "Текущото състояние не може да бъде запазено"
-#: git-stash.sh:306
+#: git-stash.sh:313
#, sh-format
msgid "Saved working directory and index state $stash_msg"
msgstr ""
"Състоянието на работната директория и индекса са запазени: „$stash_msg“"
-#: git-stash.sh:334
+#: git-stash.sh:341
msgid "Cannot remove worktree changes"
msgstr "Промените в работното дърво не могат да бъдат занулени"
-#: git-stash.sh:482
+#: git-stash.sh:489
#, sh-format
msgid "unknown option: $opt"
msgstr "непозната опция: ${opt}"
-#: git-stash.sh:495
+#: git-stash.sh:502
msgid "No stash entries found."
msgstr "Не е открито нищо скатано."
-#: git-stash.sh:502
+#: git-stash.sh:509
#, sh-format
msgid "Too many revisions specified: $REV"
msgstr "Указани са прекалено много версии: „${REV}“"
-#: git-stash.sh:517
+#: git-stash.sh:524
#, sh-format
msgid "$reference is not a valid reference"
msgstr "Указателят „${reference}“ е грешен"
-#: git-stash.sh:545
+#: git-stash.sh:552
#, sh-format
msgid "'$args' is not a stash-like commit"
msgstr "„${args}“ не е подаване, приличащо на нещо скатано"
-#: git-stash.sh:556
+#: git-stash.sh:563
#, sh-format
msgid "'$args' is not a stash reference"
msgstr "„${args}“ не е указател към нещо скатано"
-#: git-stash.sh:564
+#: git-stash.sh:571
msgid "unable to refresh index"
msgstr "индексът не може да бъде обновен"
-#: git-stash.sh:568
+#: git-stash.sh:575
msgid "Cannot apply a stash in the middle of a merge"
msgstr "По време на сливане не може да приложите нещо скатано"
-#: git-stash.sh:576
+#: git-stash.sh:583
msgid "Conflicts in index. Try without --index."
msgstr ""
"В индекса има конфликти. Пробвайте да изпълните командата без опцията „--"
"index“."
-#: git-stash.sh:578
+#: git-stash.sh:585
msgid "Could not save index tree"
msgstr "Дървото сочено от индекса не може да бъде запазено"
-#: git-stash.sh:587
+#: git-stash.sh:594
msgid "Could not restore untracked files from stash entry"
msgstr "Неследени файлове не могат да се възстановят от скатаното"
-#: git-stash.sh:612
+#: git-stash.sh:619
msgid "Cannot unstage modified files"
msgstr "Променените файлове не могат да бъдат извадени от индекса"
-#: git-stash.sh:627
+#: git-stash.sh:634
msgid "Index was not unstashed."
msgstr "Индексът не е скатан."
-#: git-stash.sh:641
+#: git-stash.sh:648
msgid "The stash entry is kept in case you need it again."
msgstr "Скатаното е запазено в случай, че ви потрябва отново"
-#: git-stash.sh:650
+#: git-stash.sh:657
#, sh-format
msgid "Dropped ${REV} ($s)"
msgstr "Изтрито е скатаното „${REV}“ ($s)"
-#: git-stash.sh:651
+#: git-stash.sh:658
#, sh-format
msgid "${REV}: Could not drop stash entry"
msgstr "Скатаното „${REV}“ не може да бъде изтрито"
-#: git-stash.sh:659
+#: git-stash.sh:666
msgid "No branch name specified"
msgstr "Не е указано име на клон"
-#: git-stash.sh:738
+#: git-stash.sh:745
msgid "(To restore them type \"git stash apply\")"
msgstr "(За да ги възстановите, изпълнете командата „git stash apply“)"
@@ -15584,41 +15779,35 @@ msgid "Failed to recurse into submodule path '$displaypath'"
msgstr ""
"Неуспешна обработка на поддиректориите в пътя към подмодул „${displaypath}“"
-#: git-submodule.sh:840
+#: git-submodule.sh:828
msgid "The --cached option cannot be used with the --files option"
msgstr "Опциите „--cached“ и „--files“ са несъвместими"
-#: git-submodule.sh:892
+#: git-submodule.sh:880
#, sh-format
msgid "unexpected mode $mod_dst"
msgstr "неочакван режим „${mod_dst}“"
-#: git-submodule.sh:912
+#: git-submodule.sh:900
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_src"
msgstr ""
" ПРЕДУПРЕЖДЕНИЕ: „${display_name}“ не съдържа подаването „${sha1_src}“"
-#: git-submodule.sh:915
+#: git-submodule.sh:903
#, sh-format
msgid " Warn: $display_name doesn't contain commit $sha1_dst"
msgstr ""
" ПРЕДУПРЕЖДЕНИЕ: „${display_name}“ не съдържа подаването „${sha1_dst}“"
-#: git-submodule.sh:918
+#: git-submodule.sh:906
#, 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:1064
-#, sh-format
-msgid "Failed to recurse into submodule path '$sm_path'"
-msgstr ""
-"Неуспешна обработка на поддиректориите в пътя към подмодул „${sm_path}“"
-
-#: git-submodule.sh:1136
+#: git-submodule.sh:1077
#, sh-format
msgid "Synchronizing submodule url for '$displaypath'"
msgstr "Синхронизиране на адреса за пътя към подмодул „${displaypath}“"
@@ -15854,15 +16043,15 @@ msgstr "Коригирайте това чрез „git rebase --edit-todo“."
msgid "Successfully rebased and updated $head_name."
msgstr "Успешно пребазиране и обновяване на „$head_name“."
-#: git-rebase--interactive.sh:749
+#: git-rebase--interactive.sh:728
msgid "could not detach HEAD"
msgstr "указателят „HEAD“ не може да се отдели"
-#: git-rebase--interactive.sh:784
+#: git-rebase--interactive.sh:763
msgid "Could not remove CHERRY_PICK_HEAD"
msgstr "Указателят „CHERRY_PICK_HEAD“ не може да бъде изтрит"
-#: git-rebase--interactive.sh:789
+#: git-rebase--interactive.sh:768
#, sh-format
msgid ""
"You have staged changes in your working tree.\n"
@@ -15892,11 +16081,11 @@ msgstr ""
"\n"
" git rebase --continue\n"
-#: git-rebase--interactive.sh:806
+#: git-rebase--interactive.sh:785
msgid "Error trying to find the author identity to amend commit"
msgstr "Не може да бъде открит автор за поправянето на подаването"
-#: git-rebase--interactive.sh:811
+#: git-rebase--interactive.sh:790
msgid ""
"You have uncommitted changes in your working tree. Please commit them\n"
"first and then run 'git rebase --continue' again."
@@ -15904,11 +16093,11 @@ msgstr ""
"В работното дърво има неподадени промени. Първо ги подайте, а след това\n"
"отново изпълнете „git rebase --continue“."
-#: git-rebase--interactive.sh:816 git-rebase--interactive.sh:820
+#: git-rebase--interactive.sh:795 git-rebase--interactive.sh:799
msgid "Could not commit staged changes."
msgstr "Промените в индекса не могат да бъдат подадени."
-#: git-rebase--interactive.sh:848
+#: git-rebase--interactive.sh:827
msgid ""
"\n"
"You are editing the todo file of an ongoing interactive rebase.\n"
@@ -15917,38 +16106,43 @@ msgid ""
"\n"
msgstr ""
"\n"
-"В момента редактирате командния файл на текущото интерактивно пребазиране.\n"
+"В момента редактирате файла с командите на текущото интерактивно "
+"пребазиране.\n"
"За да продължите пребазирането след това, изпълнете:\n"
" git rebase --continue\n"
"\n"
-#: git-rebase--interactive.sh:856 git-rebase--interactive.sh:1015
+#: git-rebase--interactive.sh:835 git-rebase--interactive.sh:995
msgid "Could not execute editor"
msgstr "Текстовият редактор не може да бъде стартиран"
-#: git-rebase--interactive.sh:869
+#: git-rebase--interactive.sh:848
#, sh-format
msgid "Could not checkout $switch_to"
msgstr "„$switch_to“ не може да се изтегли"
-#: git-rebase--interactive.sh:874
+#: git-rebase--interactive.sh:853
msgid "No HEAD?"
msgstr "Липсва указател „HEAD“"
-#: git-rebase--interactive.sh:875
+#: git-rebase--interactive.sh:854
#, sh-format
msgid "Could not create temporary $state_dir"
msgstr "Временната директория „$state_dir“ не може да бъде създадена"
-#: git-rebase--interactive.sh:877
+#: git-rebase--interactive.sh:856
msgid "Could not mark as interactive"
msgstr "Пребазирането не е интерактивно"
-#: git-rebase--interactive.sh:887 git-rebase--interactive.sh:892
+#: git-rebase--interactive.sh:866 git-rebase--interactive.sh:871
msgid "Could not init rewritten commits"
msgstr "Списъкът с презаписаните подавания не може да бъде създаден"
-#: git-rebase--interactive.sh:993
+#: git-rebase--interactive.sh:897
+msgid "Could not generate todo list"
+msgstr "Файлът с командите не може да се генерира"
+
+#: git-rebase--interactive.sh:973
#, sh-format
msgid "Rebase $shortrevisions onto $shortonto ($todocount command)"
msgid_plural "Rebase $shortrevisions onto $shortonto ($todocount commands)"
@@ -15957,7 +16151,7 @@ msgstr[0] ""
msgstr[1] ""
"Пребазиране на $shortrevisions върху $shortonto ($todocount команди)"
-#: git-rebase--interactive.sh:998
+#: git-rebase--interactive.sh:978
msgid ""
"\n"
"However, if you remove everything, the rebase will be aborted.\n"
@@ -15967,7 +16161,7 @@ msgstr ""
"Ако изтриете всичко, пребазирането ще бъде преустановено.\n"
"\n"
-#: git-rebase--interactive.sh:1005
+#: git-rebase--interactive.sh:985
msgid "Note that empty commits are commented out"
msgstr "Празните подавания са коментирани"
@@ -16208,7 +16402,7 @@ msgstr ""
msgid ""
"Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
msgstr ""
-"Редактираното парче не може да се приложи. Да се продължи ли с "
+"Редактираното парче не може да се приложи. Да се продължи ли с "
"редактирането? (текущите редакции ще се отменят при отказ!): „y“ (да)/ "
"„n“ (не)? "
@@ -16719,7 +16913,7 @@ msgstr "„%s“ не може да се отвори: %s"
#: git-send-email.perl:745
msgid "To/Cc/Bcc fields are not interpreted yet, they have been ignored\n"
msgstr ""
-"Полетата „To“/„Cc“/„Bcc“ все още не се интерпретират. Те бяха прескочени\n"
+"Полетата „To“/„Cc“/„Bcc“ все още не се интерпретират. Те бяха прескочени\n"
#: git-send-email.perl:754
msgid "Summary email is empty, skipping it\n"
@@ -16771,7 +16965,7 @@ msgstr ""
"Идентификатор на съобщение „Message-ID“, което да се използва за обявяването "
"на отговор „In-Reply-To“ (незадължително поле)"
-#: git-send-email.perl:927 git-send-email.perl:935
+#: git-send-email.perl:929 git-send-email.perl:937
#, perl-format
msgid "error: unable to extract a valid address from: %s\n"
msgstr "ГРЕШКА: не може да се извлече адрес от „%s“\n"
@@ -16779,18 +16973,18 @@ msgstr "ГРЕШКА: не може да се извлече адрес от „
#. TRANSLATORS: Make sure to include [q] [d] [e] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-send-email.perl:939
+#: git-send-email.perl:941
msgid "What to do with this address? ([q]uit|[d]rop|[e]dit): "
msgstr ""
"Какво да се направи с този адрес? „q“ (спиране), „d“ (изтриване), "
"„e“ (редактиране): "
-#: git-send-email.perl:1260
+#: git-send-email.perl:1262
#, perl-format
msgid "CA path \"%s\" does not exist"
msgstr "Пътят към сертификат „%s“ не съществува."
-#: git-send-email.perl:1335
+#: git-send-email.perl:1337
msgid ""
" The Cc list above has been expanded by additional\n"
" addresses found in the patch commit message. By default\n"
@@ -16818,131 +17012,131 @@ msgstr ""
#. TRANSLATORS: Make sure to include [y] [n] [q] [a] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-send-email.perl:1350
+#: git-send-email.perl:1352
msgid "Send this email? ([y]es|[n]o|[q]uit|[a]ll): "
msgstr ""
"Изпращане на е-писмото? „y“ (да), „n“ (не), „q“ (изход), „a“ (всичко): "
-#: git-send-email.perl:1353
+#: git-send-email.perl:1355
msgid "Send this email reply required"
msgstr "Изискване на отговор към това е-писмо"
-#: git-send-email.perl:1379
+#: git-send-email.perl:1381
msgid "The required SMTP server is not properly defined."
msgstr "Сървърът за SMTP не е настроен правилно."
-#: git-send-email.perl:1426
+#: git-send-email.perl:1428
#, perl-format
msgid "Server does not support STARTTLS! %s"
msgstr "Сървърът не поддържа „STARTTLS“! %s"
-#: git-send-email.perl:1431 git-send-email.perl:1435
+#: git-send-email.perl:1433 git-send-email.perl:1437
#, perl-format
msgid "STARTTLS failed! %s"
msgstr "Неуспешно изпълнение на STARTTLS! %s"
-#: git-send-email.perl:1445
+#: git-send-email.perl:1447
msgid "Unable to initialize SMTP properly. Check config and use --smtp-debug."
msgstr ""
-"Подсистемата за SMTP не може да се инициализира. Проверете настройките и "
+"Подсистемата за SMTP не може да се инициализира. Проверете настройките и "
"използвайте опцията: „--smtp-debug“."
-#: git-send-email.perl:1463
+#: git-send-email.perl:1465
#, perl-format
msgid "Failed to send %s\n"
msgstr "„%s“ не може да бъде изпратен\n"
-#: git-send-email.perl:1466
+#: git-send-email.perl:1468
#, perl-format
msgid "Dry-Sent %s\n"
msgstr "Проба за изпращане на „%s“\n"
-#: git-send-email.perl:1466
+#: git-send-email.perl:1468
#, perl-format
msgid "Sent %s\n"
msgstr "Изпращане на „%s“\n"
-#: git-send-email.perl:1468
+#: git-send-email.perl:1470
msgid "Dry-OK. Log says:\n"
-msgstr "Успех при пробата. От журнала:\n"
+msgstr "Успех при пробата. От журнала:\n"
-#: git-send-email.perl:1468
+#: git-send-email.perl:1470
msgid "OK. Log says:\n"
-msgstr "Успех. От журнала:\n"
+msgstr "Успех. От журнала:\n"
-#: git-send-email.perl:1480
+#: git-send-email.perl:1482
msgid "Result: "
msgstr "Резултат: "
-#: git-send-email.perl:1483
+#: git-send-email.perl:1485
msgid "Result: OK\n"
msgstr "Резултат: успех\n"
-#: git-send-email.perl:1496
+#: git-send-email.perl:1498
#, perl-format
msgid "can't open file %s"
msgstr "файлът „%s“ не може да бъде отворен"
-#: git-send-email.perl:1543 git-send-email.perl:1563
+#: git-send-email.perl:1545 git-send-email.perl:1565
#, perl-format
msgid "(mbox) Adding cc: %s from line '%s'\n"
msgstr "(mbox) Добавяне на „як: %s“ от ред „%s“\n"
-#: git-send-email.perl:1549
+#: git-send-email.perl:1551
#, perl-format
msgid "(mbox) Adding to: %s from line '%s'\n"
msgstr "(mbox) Добавяне на „до: %s“ от ред „%s“\n"
-#: git-send-email.perl:1597
+#: git-send-email.perl:1599
#, perl-format
msgid "(non-mbox) Adding cc: %s from line '%s'\n"
msgstr "(не-mbox) Добавяне на „як: %s“ от ред „%s“\n"
-#: git-send-email.perl:1622
+#: git-send-email.perl:1624
#, perl-format
msgid "(body) Adding cc: %s from line '%s'\n"
msgstr "(тяло) Добавяне на „як: %s“ от ред „%s“\n"
-#: git-send-email.perl:1728
+#: git-send-email.perl:1730
#, perl-format
msgid "(%s) Could not execute '%s'"
msgstr "(%s) Не може да бъде се изпълни „%s“"
-#: git-send-email.perl:1735
+#: git-send-email.perl:1737
#, perl-format
msgid "(%s) Adding %s: %s from: '%s'\n"
msgstr "(%s) Добавяне на „%s: %s“ от: „%s“\n"
-#: git-send-email.perl:1739
+#: git-send-email.perl:1741
#, perl-format
msgid "(%s) failed to close pipe to '%s'"
msgstr "(%s) програмният канал не може да се затвори за изпълнението на „%s“"
-#: git-send-email.perl:1766
+#: git-send-email.perl:1768
msgid "cannot send message as 7bit"
msgstr "съобщението не може да се изпрати чрез 7 битови знаци"
-#: git-send-email.perl:1774
+#: git-send-email.perl:1776
msgid "invalid transfer encoding"
msgstr "неправилно кодиране за пренос"
-#: git-send-email.perl:1812 git-send-email.perl:1863 git-send-email.perl:1873
+#: git-send-email.perl:1814 git-send-email.perl:1865 git-send-email.perl:1875
#, perl-format
msgid "unable to open %s: %s\n"
msgstr "„%s“ не може да се отвори: %s\n"
-#: git-send-email.perl:1815
+#: git-send-email.perl:1817
#, perl-format
msgid "%s: patch contains a line longer than 998 characters"
msgstr "„%s“: кръпката съдържа ред с над 988 знака"
-#: git-send-email.perl:1831
+#: git-send-email.perl:1833
#, perl-format
msgid "Skipping %s with backup suffix '%s'.\n"
msgstr "„%s“ се пропуска, защото е с разширение за архивен файл: „%s“.\n"
#. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:1835
+#: git-send-email.perl:1837
#, perl-format
msgid "Do you really want to send %s? [y|N]: "
msgstr "Наистина ли искате да изпратите „%s“? [y|N]: "
diff --git a/po/ca.po b/po/ca.po
index 7f8c30f..874ad3c 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -39,7 +39,7 @@
# cherry pick | «cherry pick»
# rebase | «rebase»
# stage | «stage»
-# stash | «sta»
+# stash | «stash»
# squash | «squash»
# trailer | «trailer»
# unstage | «unstage»
@@ -107,7 +107,7 @@ msgstr "No heu conclòs la vostra fusió (MERGE_HEAD existeix)."
#: advice.c:119
msgid "Please, commit your changes before merging."
-msgstr "Si us plau, cometeu els vostres canvis abans de fusionar."
+msgstr "Cometeu els vostres canvis abans de fusionar."
#: advice.c:120
msgid "Exiting because of unfinished merge."
@@ -189,24 +189,24 @@ msgstr "no s'ha pogut trobar el nom de fitxer en el pedaç a la línia %d"
#, 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"
+"git apply: git-diff incorrecte - s'esperava /dev/null, s'ha rebut %s en la línia %d"
#: apply.c:972
#, 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"
+"git apply: git-diff incorrecte - nom de fitxer nou inconsistent en la línia %d"
#: apply.c:973
#, 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"
+"git apply: git-diff incorrecte - nom de fitxer antic inconsistent en la línia %d"
#: apply.c:978
#, 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"
+msgstr "git apply: git-diff incorrecte - s'esperava /dev/null en la línia %d"
#: apply.c:1007
#, c-format
@@ -371,7 +371,7 @@ msgstr "el pedaç binari no s'aplica a «%s»"
#, 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)"
+"el pedaç binari a «%s» crea un resultat incorrecte (s'esperava %s, s'ha rebut %s)"
#: apply.c:3247
#, c-format
@@ -876,7 +876,7 @@ msgstr "Opció inesperada --remote"
#: archive.c:470
msgid "Option --exec can only be used together with --remote"
-msgstr "L'opció --exec només es pot usar junt amb --remote"
+msgstr "L'opció --exec només es pot usar juntament amb --remote"
#: archive.c:472
msgid "Unexpected option --output"
@@ -966,7 +966,7 @@ msgid ""
"We continue anyway."
msgstr ""
"s'ha d'ometre la base de fusió entre %s i [%s].\n"
-"Llavors, no podem estar segurs de que la primera comissió %s sigui entre %s "
+"Llavors, no podem estar segurs que la primera comissió %s sigui entre %s "
"i %s.\n"
"Continuem de totes maneres."
@@ -1006,7 +1006,7 @@ msgid ""
"Maybe you started with bad path parameters?\n"
msgstr ""
"No s'ha trobat cap comissió comprovable.\n"
-"Potser heu començat amb paràmetres de camí dolents?\n"
+"Potser heu començat amb paràmetres de camí incorrectes?\n"
#: bisect.c:995
#, c-format
@@ -1180,11 +1180,11 @@ 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"
+"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"
+"«git push -u» per a establir la configuració font\n"
"mentre pugeu."
#: branch.c:264
@@ -1397,7 +1397,7 @@ msgstr ""
#: config.c:895
#, 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"
+msgstr "valor de configuració numèric incorrecte «%s» per «%s» en %s: %s"
#: config.c:990
#, c-format
@@ -1407,7 +1407,7 @@ msgstr "s'ha produït un error en expandir el directori d'usuari en: «%s»"
#: config.c:1085 config.c:1096
#, c-format
msgid "bad zlib compression level %d"
-msgstr "nivell de compressió de zlib dolent %d"
+msgstr "nivell de compressió de zlib incorrecte %d"
#: config.c:1213
#, c-format
@@ -1485,7 +1485,7 @@ msgid ""
msgstr ""
"No s'ha pogut llegir del dipòsit remot.\n"
"\n"
-"Si us plau, assegureu-vos que tingueu els permisos\n"
+"Assegureu-vos que tingueu els permisos\n"
"d'accés correctes i que el dipòsit existeixi."
#: connected.c:64 builtin/fsck.c:183 builtin/prune.c:141
@@ -1707,7 +1707,7 @@ msgstr ""
#: dir.c:2885 dir.c:2890
#, c-format
msgid "could not create directories for %s"
-msgstr "no s'ha pogut crear directoris per %s"
+msgstr "no s'han pogut crear directoris per %s"
#: dir.c:2915
#, c-format
@@ -1729,7 +1729,7 @@ msgstr "git fetch-pack: llista superficial esperada"
#: fetch-pack.c:264
msgid "git fetch-pack: expected ACK/NAK, got EOF"
-msgstr "git fetch-pack: ACK/NAK esperat, EOF rebut"
+msgstr "git fetch-pack: s'esperava ACK/NAK, s'ha rebut EOF"
#: fetch-pack.c:283 builtin/archive.c:63
#, c-format
@@ -1739,7 +1739,7 @@ msgstr "error remot: %s"
#: fetch-pack.c:284
#, c-format
msgid "git fetch-pack: expected ACK/NAK, got '%s'"
-msgstr "git fetch-pack: ACK/NAK esperat, «%s» rebut"
+msgstr "git fetch-pack: s'esperava ACK/NAK, s'ha rebut «%s»"
#: fetch-pack.c:336
msgid "--stateless-rpc requires multi_ack_detailed"
@@ -1778,7 +1778,7 @@ msgstr "s'esperava shallow/unshallow, s'ha rebut %s"
#: fetch-pack.c:477
#, c-format
msgid "got %s %d %s"
-msgstr "%s %d %s rebut"
+msgstr "s'ha rebut %s %d %s"
#: fetch-pack.c:491
#, c-format
@@ -1921,7 +1921,7 @@ msgstr "s'ha produït un error en escriure la signatura separada a «%s»"
#: graph.c:97
#, c-format
msgid "ignore invalid color '%.*s' in log.graphColors"
-msgstr "ignora el color invàlid '%.*s' en log.graphColors"
+msgstr "ignora el color no vàlid «%.*s» en log.graphColors"
#: grep.c:1970
#, c-format
@@ -1974,12 +1974,12 @@ msgstr ""
#: help.c:363
#, c-format
msgid "Continuing under the assumption that you meant '%s'."
-msgstr "Es continua amb l'assumpció de que volíeu dir «%s»."
+msgstr "El procés continuarà, pressuposant que volíeu dir «%s»."
#: help.c:368
#, c-format
msgid "Continuing in %0.1f seconds, assuming that you meant '%s'."
-msgstr "Es continua en %0.1f segons, assumint que volíeu dir «%s»."
+msgstr "El procés continuarà en %0.1f segons, pressuposant que volíeu dir «%s»."
#: help.c:376
#, c-format
@@ -2038,7 +2038,7 @@ msgid ""
"\n"
msgstr ""
"\n"
-"*** Si us plau, digueu-me qui sou.\n"
+"*** Digueu-me qui sou.\n"
"\n"
"Executeu\n"
"\n"
@@ -2058,8 +2058,7 @@ msgstr ""
#, c-format
msgid "unable to auto-detect email address (got '%s')"
msgstr ""
-"no s'ha pogut detectar automàticament una adreça de correu vàlida («%s» "
-"rebut)"
+"no s'ha pogut detectar automàticament una adreça electrònica vàlida (s'ha rebut «%s»)"
#: ident.c:381
msgid "no name was given and auto-detection is disabled"
@@ -2069,7 +2068,7 @@ msgstr ""
#: ident.c:387
#, c-format
msgid "unable to auto-detect name (got '%s')"
-msgstr "no s'ha pogut detectar automàticament el nom («%s» rebut)"
+msgstr "no s'ha pogut detectar automàticament el nom (s'ha rebut «%s»)"
#: ident.c:395
#, c-format
@@ -2100,10 +2099,10 @@ 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"
+"dipòsit, per exemple, un editor obert per 'git commit'. \n"
+"Assegureu-vos que tots els processos s'hagin terminat i\n"
"llavors proveu de nou. Si encara falla, pot ser que un procés de\n"
-"git ha tingut una pana:\n"
+"git ha tingut un error:\n"
"elimineu el fitxer manualment per a continuar."
#: lockfile.c:159
@@ -2358,7 +2357,7 @@ msgstr "la fusió dels arbres %s i %s ha fallat"
#: merge-recursive.c:2060
msgid "Merging:"
-msgstr "Fusionant:"
+msgstr "S'està fusionant:"
#: merge-recursive.c:2073
#, c-format
@@ -2388,7 +2387,7 @@ msgid ""
"commit/abort the previous merge before you start a new notes merge."
msgstr ""
"No heu acabat la vostra fusió de notes prèvia (%s existeix).\n"
-"Si us plau, useu 'git notes merge --commit' o 'git notes merge --abort' per "
+"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."
#: notes-merge.c:279
@@ -2484,7 +2483,7 @@ msgstr ""
#: pathspec.c:147
msgid "Only one 'attr:' specification is allowed."
-msgstr "només es permet una especificació 'attr:'."
+msgstr "Només es permet una especificació 'attr:'."
#: pathspec.c:150
msgid "attr spec must not be empty"
@@ -2555,7 +2554,7 @@ msgid ""
"use . instead if you meant to match all paths"
msgstr ""
"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 "
+"versions futures. Useu . en lloc d'això si volíeu coincidir amb "
"tots els camins"
#: pathspec.c:595
@@ -2628,7 +2627,7 @@ msgstr "no s'ha pogut suprimir la referència %s: %s"
#: refs/files-backend.c:1153 refs/packed-backend.c:1443
#, c-format
msgid "could not delete references: %s"
-msgstr "no s'ha pogut suprimir les referències: %s"
+msgstr "no s'han pogut suprimir les referències: %s"
#: ref-filter.c:35 wt-status.c:1811
msgid "gone"
@@ -3311,7 +3310,7 @@ msgstr "no s'ha pogut llegir «%s»."
#: sequencer.c:1361
msgid "please fix this using 'git rebase --edit-todo'."
-msgstr "si us plau, corregiu-ho això usant 'git rebase --edit-todo'."
+msgstr "corregiu-ho usant «git rebase --edit-todo»."
#: sequencer.c:1363
#, c-format
@@ -3487,7 +3486,7 @@ msgstr "no s'ha pogut llegir 'onto'"
#: sequencer.c:2129
#, c-format
msgid "could not update %s"
-msgstr "no s'ha pogut analitzar %s"
+msgstr "no s'ha pogut actualitzar %s"
#: sequencer.c:2136
#, c-format
@@ -3523,12 +3522,12 @@ msgid ""
"first and then run 'git rebase --continue' again."
msgstr ""
"\n"
-"Teniu canvis no comesos en el vostre arbre de treball. Si us plau,\n"
-"primer cometeu-los i després executeu 'git rebase --continue' de nou."
+"Teniu canvis no comesos en el vostre arbre de treball. \n"
+"Primer cometeu-los i després executeu 'git rebase --continue' de nou."
#: sequencer.c:2251
msgid "could not commit staged changes."
-msgstr "No s'ha pogut cometre els canvis «staged»."
+msgstr "No s'han pogut cometre els canvis «staged»."
#: sequencer.c:2331
#, c-format
@@ -3538,7 +3537,7 @@ msgstr "%s: no es pot fer «cherry pick» a %s"
#: sequencer.c:2335
#, c-format
msgid "%s: bad revision"
-msgstr "%s: revisió dolenta"
+msgstr "%s: revisió incorrecta"
#: sequencer.c:2368
msgid "can't revert as initial commit"
@@ -3550,7 +3549,7 @@ msgstr "make_script: opcions no gestionades"
#: sequencer.c:2474
msgid "make_script: error preparing revisions"
-msgstr "make_script: s'ha produït un error preparant les revisions"
+msgstr "make_script: s'ha produït un error en preparar les revisions"
#: sequencer.c:2510
#, c-format
@@ -3766,10 +3765,10 @@ msgstr ""
"\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"
+"on «$br» és d'alguna manera buida i una referència de 40 caràcters\n"
+"hexadecimals. Examineu aquestes referències i potser\n"
"suprimiu-les. Desactiveu aquest missatge executant\n"
-"\"git config advice.objectNameWarning false\""
+"«git config advice.objectNameWarning false»"
#: submodule.c:93 submodule.c:127
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
@@ -3804,7 +3803,7 @@ msgstr "al submòdul no populat «%s»"
#: submodule.c:340
#, c-format
msgid "Pathspec '%s' is in submodule '%.*s'"
-msgstr "L'especificació «%s» és en el submòdul '%.*s'"
+msgstr "L'especificació «%s» és en el submòdul «%.*s»"
#: submodule.c:799
#, c-format
@@ -3823,7 +3822,7 @@ msgstr "«%s» no reconegut com un dipòsit git"
#: submodule.c:1442
#, c-format
msgid "could not start 'git status' in submodule '%s'"
-msgstr "no s'ha pogut iniciar 'git status' al submòdul «%s»"
+msgstr "no s'ha pogut iniciar «git status» al submòdul «%s»"
#: submodule.c:1455
#, c-format
@@ -3861,7 +3860,7 @@ msgid ""
"'%s' to\n"
"'%s'\n"
msgstr ""
-"S'està migrant el directori de '%s%s' des de\n"
+"S'està migrant el directori de «%s%s» des de\n"
"«%s» a\n"
"«%s»\n"
@@ -3981,7 +3980,7 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Si us plau, intenteu\n"
+"Intenteu\n"
"\n"
"\tgit push --recurse-submodules=on-demand\n"
"\n"
@@ -4024,7 +4023,7 @@ msgid ""
msgstr ""
"Els vostres canvis locals als fitxers següents se sobreescriurien per "
"agafar:\n"
-"%%sSi us plau, cometeu els vostres canvis o feu «stash» abans de canviar de "
+"%%sCometeu els vostres canvis o feu «stash» abans de canviar de "
"branca."
#: unpack-trees.c:108
@@ -4045,7 +4044,7 @@ msgid ""
msgstr ""
"Els vostres canvis locals als fitxers següents se sobreescriurien per "
"fusionar:\n"
-"%%sSi us plau, cometeu els vostres canvis o feu «stash» abans de fusionar."
+"%%sCometeu els vostres canvis o feu «stash» abans de fusionar."
#: unpack-trees.c:113
#, c-format
@@ -4064,7 +4063,7 @@ msgid ""
"%%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 feu «stash» abans de %s."
+"%%sCometeu els vostres canvis o feu «stash» abans de %s."
#: unpack-trees.c:118
#, c-format
@@ -4092,7 +4091,7 @@ msgid ""
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."
+"%%sMoveu-los o elimineu-los abans de canviar de branca."
#: unpack-trees.c:129
#, c-format
@@ -4112,7 +4111,7 @@ msgid ""
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."
+"%%sMoveu-los o elimineu-los abans de fusionar."
#: unpack-trees.c:134
#, c-format
@@ -4131,7 +4130,7 @@ msgid ""
"%%sPlease move or remove them before you %s."
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."
+"%%sMoveu-los o elimineu-los abans de %s."
#: unpack-trees.c:139
#, c-format
@@ -4151,7 +4150,7 @@ msgid ""
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."
+"%%sMoveu-los o elimineu-los abans de canviar de branca."
#: unpack-trees.c:146
#, c-format
@@ -4172,7 +4171,7 @@ msgid ""
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."
+"%%sMoveu-los o elimineu-los abans de fusionar."
#: unpack-trees.c:151
#, c-format
@@ -4192,7 +4191,7 @@ msgid ""
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."
+"%%sMoveu-los o elimineu-los abans de %s."
#: unpack-trees.c:156
#, c-format
@@ -4680,11 +4679,11 @@ msgstr "En la branca "
#: wt-status.c:1574
msgid "interactive rebase in progress; onto "
-msgstr "«rebase» interactiu en progrés; sobre "
+msgstr "«rebase» interactiu en curs; sobre "
#: wt-status.c:1576
msgid "rebase in progress; onto "
-msgstr "«rebase» en progrés; sobre "
+msgstr "«rebase» en curs; sobre "
#: wt-status.c:1581
msgid "HEAD detached at "
@@ -4996,7 +4995,7 @@ msgstr "-A i -u són mútuament incompatibles"
#: builtin/add.c:403
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"
+msgstr "L'opció --ignore-missing només es pot usar juntament amb --dry-run"
#: builtin/add.c:407
#, c-format
@@ -5011,7 +5010,7 @@ msgstr "No s'ha especificat res, no s'ha afegit res.\n"
#: builtin/add.c:423
#, c-format
msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr "Potser volíeu dir 'git add .'?\n"
+msgstr "Potser volíeu dir «git add .»?\n"
#: builtin/add.c:428 builtin/check-ignore.c:176 builtin/checkout.c:282
#: builtin/checkout.c:479 builtin/clean.c:957 builtin/commit.c:350
@@ -5272,7 +5271,7 @@ msgstr "silenciós"
#: builtin/am.c:2226
msgid "add a Signed-off-by line to the commit message"
-msgstr "afegeix una línia Signed-off-by al missatge de comissió"
+msgstr "afegeix una línia «Signed-off-by» al missatge de comissió"
#: builtin/am.c:2229
msgid "recode into utf8 (default)"
@@ -5280,24 +5279,24 @@ msgstr "recodifica en utf8 (per defecte)"
#: builtin/am.c:2231
msgid "pass -k flag to git-mailinfo"
-msgstr "passa la bandera -k al git-mailinfo"
+msgstr "passa l'indicador -k a git-mailinfo"
#: builtin/am.c:2233
msgid "pass -b flag to git-mailinfo"
-msgstr "passa la bandera -b al git-mailinfo"
+msgstr "passa l'indicador -b a git-mailinfo"
#: builtin/am.c:2235
msgid "pass -m flag to git-mailinfo"
-msgstr "passa la bandera -m al git-mailinfo"
+msgstr "passa l'indicador -m a git-mailinfo"
#: builtin/am.c:2237
msgid "pass --keep-cr flag to git-mailsplit for mbox format"
-msgstr "passa la bandera --keep-cr al git-mailsplit per al format mbox"
+msgstr "passa l'indicador --keep-cr a git-mailsplit per al format mbox"
#: builtin/am.c:2240
msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
msgstr ""
-"no passis la bandera --keep-cr al git-mailsplit independent de am.keepcr"
+"no passis l'indicador --keep-cr a git-mailsplit independent d'am.keepcr"
#: builtin/am.c:2243
msgid "strip everything before a scissors line"
@@ -5307,7 +5306,7 @@ msgstr "elimina tot abans d'una línia de tisores"
#: builtin/am.c:2257 builtin/am.c:2260 builtin/am.c:2263 builtin/am.c:2266
#: builtin/am.c:2272
msgid "pass it through git-apply"
-msgstr "passa-ho a través del git-apply"
+msgstr "passa-ho a través de git-apply"
#: builtin/am.c:2262 builtin/fmt-merge-msg.c:664 builtin/fmt-merge-msg.c:667
#: builtin/grep.c:843 builtin/merge.c:205 builtin/pull.c:142 builtin/pull.c:197
@@ -5329,7 +5328,7 @@ msgstr "el format en el qual estan els pedaços"
#: builtin/am.c:2275
msgid "override error message when patch failure occurs"
msgstr ""
-"passa per alt el missatge d'error quan s'ocorre una fallada en apedaçar"
+"passa per alt el missatge d'error si falla l'aplicació del pedaç"
#: builtin/am.c:2277
msgid "continue applying patches after resolving a conflict"
@@ -5366,7 +5365,7 @@ msgstr "signa les comissions amb GPG"
#: builtin/am.c:2298
msgid "(internal use for git-rebase)"
-msgstr "(ús intern per al git-rebase)"
+msgstr "(ús intern per a git-rebase)"
#: builtin/am.c:2316
msgid ""
@@ -5374,7 +5373,7 @@ msgid ""
"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."
+"s'eliminarà. No l'useu més."
#: builtin/am.c:2323
msgid "failed to read the index"
@@ -5419,7 +5418,7 @@ msgstr "git archive: Remot sense URL"
#: builtin/archive.c:58
msgid "git archive: expected ACK/NAK, got EOF"
-msgstr "git archive: ACK/NAK esperat, EOF rebut"
+msgstr "git archive: s'esperava ACK/NAK, s'ha rebut EOF"
#: builtin/archive.c:61
#, c-format
@@ -5517,7 +5516,7 @@ msgstr "Omet el nom d'autor i la marca de temps (Per defecte: desactivat)"
#: builtin/blame.c:682
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 "
+"Mostra l'adreça electrònica de l'autor en lloc del nom (Per "
"defecte: desactivat)"
#: builtin/blame.c:683
@@ -5766,7 +5765,7 @@ msgid ""
" %s\n"
"Lines starting with '%c' will be stripped.\n"
msgstr ""
-"Si us plau, editeu la descripció de la branca\n"
+"Editeu la descripció de la branca\n"
" %s\n"
"S'eliminaran les línies que comencin amb '%c'.\n"
@@ -6125,7 +6124,7 @@ msgstr "ignora l'índex en comprovar"
#: builtin/check-ignore.c:158
msgid "cannot specify pathnames with --stdin"
-msgstr "no es pot especificar noms de camí amb --stdin"
+msgstr "no es poden especificar noms de camí amb --stdin"
#: builtin/check-ignore.c:161
msgid "-z only makes sense with --stdin"
@@ -6141,7 +6140,7 @@ msgstr "--quiet només és vàlid amb un sol nom de camí"
#: builtin/check-ignore.c:169
msgid "cannot have both --quiet and --verbose"
-msgstr "no es pot tenir ambdós --quiet i --verbose"
+msgstr "no es poden especificar --quiet i --verbose alhora"
#: builtin/check-ignore.c:172
msgid "--non-matching is only valid with --verbose"
@@ -6628,7 +6627,7 @@ msgstr "Voleu eliminar %s [y/N]? "
#: builtin/clean.c:787 git-add--interactive.perl:1616
#, c-format
msgid "Bye.\n"
-msgstr "Adéu.\n"
+msgstr "Adeu.\n"
#: builtin/clean.c:795
msgid ""
@@ -6709,7 +6708,7 @@ msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
"clean"
msgstr ""
-"clean.requireForce està establerta a veritat i ni -i, -n ni -f s'han "
+"clean.requireForce està establerta en cert i ni -i, -n ni -f s'han "
"indicat; refusant netejar"
#: builtin/clean.c:944
@@ -6717,7 +6716,7 @@ msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
msgstr ""
-"clean.requireForce és per defecte veritat i ni -i, -n ni -f s'han indicat; "
+"clean.requireForce és per defecte cert i ni -i, -n ni -f s'han indicat; "
"refusant netejar"
#: builtin/clone.c:39
@@ -6861,7 +6860,7 @@ msgid ""
"Please specify a directory on the command line"
msgstr ""
"No s'ha pogut endevinar cap nom de directori.\n"
-"Si us plau, especifiqueu un directori en la línia d'ordres"
+"Especifiqueu un directori en la línia d'ordres"
#: builtin/clone.c:326
#, c-format
@@ -6935,7 +6934,7 @@ msgstr "no s'ha pogut agafar l'arbre de treball"
#: builtin/clone.c:796
msgid "unable to write parameters to config file"
-msgstr "no s'ha pogut escriure els paràmetres al fitxer de configuració"
+msgstr "no s'han pogut escriure els paràmetres al fitxer de configuració"
#: builtin/clone.c:859
msgid "cannot repack to clean up"
@@ -7101,9 +7100,9 @@ msgid ""
"\n"
" git commit --amend --reset-author\n"
msgstr ""
-"S'han configurat el vostre nom i adreça de correu electrònic\n"
-"automàticament basats en el vostre nom d'usuari i nom de màquina. Si\n"
-"us plau, comproveu que siguin correctes. Podeu suprimir aquest\n"
+"S'han configurat el vostre nom i adreça electrònica\n"
+"automàticament basats en el vostre nom d'usuari i nom de màquina. \n"
+"Comproveu que siguin correctes. Podeu suprimir aquest\n"
"missatge establint-los explícitament. Executeu l'ordre següent i\n"
"seguiu les instruccions en el vostre editor per editar el vostre\n"
"fitxer de configuració:\n"
@@ -7127,9 +7126,9 @@ msgid ""
"\n"
" git commit --amend --reset-author\n"
msgstr ""
-"S'han configurat el vostre nom i adreça de correu electrònic\n"
-"automàticament basats en el vostre nom d'usuari i nom de màquina. Si\n"
-"us plau, comproveu que siguin correctes. Podeu suprimir aquest\n"
+"S'han configurat el vostre nom i adreça electrònica\n"
+"automàticament basats en el vostre nom d'usuari i nom de màquina. \n"
+"Comproveu que siguin correctes. Podeu suprimir aquest\n"
"missatge establint-los explícitament:\n"
"\n"
" git config --global user.name \"El Vostre Nom\"\n"
@@ -7167,7 +7166,7 @@ msgstr ""
#: builtin/commit.c:86
msgid "Otherwise, please use 'git reset'\n"
-msgstr "D'altra manera, si us plau, useu 'git reset'\n"
+msgstr "D'altra manera, useu «git reset»\n"
#: builtin/commit.c:89
msgid ""
@@ -7289,7 +7288,7 @@ msgid ""
msgstr ""
"\n"
"Sembla que podeu estar cometent una fusió.\n"
-"Si això no és correcte, si us plau, elimineu el fitxer\n"
+"Si això no és correcte, elimineu el fitxer\n"
"\t%s\n"
"i intenteu-ho de nou.\n"
@@ -7304,7 +7303,7 @@ msgid ""
msgstr ""
"\n"
"Sembla que podeu estar cometent un «cherry pick».\n"
-"Si això no és correcte, si us plau, elimineu el fitxer\n"
+"Si això no és correcte, elimineu el fitxer\n"
"\t%s\n"
"i intenteu-ho de nou.\n"
@@ -7314,7 +7313,7 @@ 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 ""
-"Si us plau, introduïu el missatge de comissió dels vostres canvis.\n"
+"Introduïu el missatge de comissió dels vostres canvis.\n"
"S'ignoraran les línies començant amb '%c', i un missatge de\n"
"comissió buit avorta la comissió.\n"
@@ -7325,7 +7324,7 @@ msgid ""
"with '%c' will be kept; you may remove them yourself if you want to.\n"
"An empty message aborts the commit.\n"
msgstr ""
-"Si us plau, introduïu el missatge de comissió dels vostres canvis.\n"
+"Introduïu el missatge de comissió dels vostres canvis.\n"
"Es mantindran les línies que comencin amb '%c'; podeu eliminar-les "
"vosaltres\n"
"mateixos si voleu. Un missatge buit avorta la comissió.\n"
@@ -7356,13 +7355,13 @@ msgstr "Error en construir arbres"
#: builtin/commit.c:972 builtin/tag.c:252
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
-msgstr "Si us plau, proveïu el missatge usant l'opció -m o l'opció -F.\n"
+msgstr "Especifiqueu el missatge usant l'opció -m o l'opció -F.\n"
#: builtin/commit.c:1075
#, 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"
+"--author «%s» no és «Nom <adreça-electrònica>» i no coincideix amb\n"
"cap autor existent"
#: builtin/commit.c:1090 builtin/commit.c:1335
@@ -7567,7 +7566,7 @@ msgstr ""
#: builtin/commit.c:1608
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)"
+msgstr "l'autor de la comissió ja soc jo (s'usa amb -C/-c/--amend)"
#: builtin/commit.c:1609 builtin/log.c:1436 builtin/merge.c:239
#: builtin/revert.c:105
@@ -7684,7 +7683,7 @@ msgstr ""
"S'ha actualitzat el dipòsit, però no es pot escriure el\n"
"fitxer new_index. Comproveu que el disc no estigui ple i\n"
"que la quota no estigui excedida, i després\n"
-"\"git reset HEAD\" per a recuperar."
+"«git reset HEAD» per a recuperar."
#: builtin/config.c:10
msgid "git config [<options>]"
@@ -7836,7 +7835,7 @@ msgid ""
msgstr ""
"# Això és el fitxer de configuració del Git de l'usuari.\n"
"[user]\n"
-"# Si us plau, adapteu i descomenteu les línies següents:\n"
+"# Adapteu i descomenteu les línies següents:\n"
"#\tname = %s\n"
"#\temail = %s\n"
@@ -7855,7 +7854,7 @@ 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"
+"no es poden sobreescriure múltiples valors amb un sol valor\n"
" Useu una expressió regular, --add o --replace-all per a canviar %s."
#: builtin/count-objects.c:88
@@ -8143,7 +8142,7 @@ msgid ""
"make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
"code"
msgstr ""
-"fes que 'git-difftool' surti quan l'eina de diff invocada torna un codi de sortida diferent a zero"
+"fes que 'git-difftool' surti quan l'eina de diff invocada torna un codi de sortida diferent de zero"
#: builtin/difftool.c:715
msgid "<command>"
@@ -8454,7 +8453,7 @@ msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
msgstr ""
-"Cap dipòsit remot especificat. Si us plau, especifiqueu un URL o\n"
+"Cap dipòsit remot especificat. Especifiqueu un URL o\n"
"un nom remot del qual es deuen obtenir les revisions noves."
#: builtin/fetch.c:1301
@@ -8535,7 +8534,7 @@ msgstr "git for-each-ref [(--merged | --no-merged) [<comissió>]]"
#: builtin/for-each-ref.c:13
msgid "git for-each-ref [--contains [<commit>]] [--no-contains [<commit>]]"
msgstr ""
-"git for-each-ref [--contains [<comissió>]] [--no-contains [<comissió>]]"
+"git for-each-ref [--contains [<comissió>]] [--no-contains [<comissió>]]"
#: builtin/for-each-ref.c:28
msgid "quote placeholders suitably for shells"
@@ -8665,7 +8664,7 @@ msgid ""
"\n"
"%s"
msgstr ""
-"L'última execució de gc ha informat el següent. Si us plau, corregiu\n"
+"L'última execució de gc ha informat el següent. Corregiu\n"
"la causa primordial i elimineu %s.\n"
"No es realitzarà la neteja automàtica fins que s'elimini el fitxer.\n"
"\n"
@@ -8759,7 +8758,7 @@ msgstr "no es pot fer grep des d'un objecte de tipus %s"
#: builtin/grep.c:694
#, c-format
msgid "switch `%c' expects a numerical value"
-msgstr "l'opció `%c' espera un valor numèric"
+msgstr "l'opció «%c» espera un valor numèric"
#: builtin/grep.c:781
msgid "search in index instead of in the work tree"
@@ -8811,7 +8810,7 @@ msgstr "descendeix com a màxim <profunditat> nivells"
#: builtin/grep.c:809
msgid "use extended POSIX regular expressions"
-msgstr "usa les expressions regulars POSIX esteses"
+msgstr "usa les expressions regulars POSIX ampliades"
#: builtin/grep.c:812
msgid "use basic POSIX regular expressions (default)"
@@ -8927,7 +8926,7 @@ msgstr ""
#: builtin/grep.c:880
msgid "show parse tree for grep expression"
-msgstr "mostra l'arbre d'anàlisis de l'expressió de grep"
+msgstr "mostra l'arbre d'anàlisi de l'expressió grep"
#: builtin/grep.c:884
msgid "pager"
@@ -9084,7 +9083,7 @@ msgid ""
"Please consider using 'man.<tool>.cmd' instead."
msgstr ""
"«%s»: camí a un visualitzador de manuals no compatible.\n"
-"Si us plau, considereu usar 'man.<eina>.cmd' en lloc d'això."
+"Considereu usar 'man.<eina>.cmd' en lloc d'això."
#: builtin/help.c:223
#, c-format
@@ -9093,7 +9092,7 @@ msgid ""
"Please consider using 'man.<tool>.path' instead."
msgstr ""
"«%s»: ordre per a un visualitzador de manuals compatible.\n"
-"Si us plau, considereu usar 'man.<eina>.path' en lloc d'això."
+"Considereu usar 'man.<eina>.path' en lloc d'això."
#: builtin/help.c:340
#, c-format
@@ -9172,7 +9171,7 @@ msgstr "no s'ha rebut l'objecte esperat %s"
#: builtin/index-pack.c:229
#, c-format
msgid "object %s: expected type %s, found %s"
-msgstr "objecte %s: tipus %s esperat, %s trobat"
+msgstr "objecte %s: s'esperava el tipus %s, s'ha trobat %s"
#: builtin/index-pack.c:271
#, c-format
@@ -9223,7 +9222,7 @@ msgstr "la versió de paquet %<PRIu32> no és compatible"
#: builtin/index-pack.c:359
#, c-format
msgid "pack has bad object at offset %<PRIuMAX>: %s"
-msgstr "el paquet té un objecte dolent a la posició %<PRIuMAX>: %s"
+msgstr "el paquet té un objecte incorrecte a la posició %<PRIuMAX>: %s"
#: builtin/index-pack.c:480
#, c-format
@@ -9396,7 +9395,7 @@ msgstr "no es pot emmagatzemar el fitxer d'índex"
#: builtin/index-pack.c:1485
#, c-format
msgid "bad pack.indexversion=%<PRIu32>"
-msgstr "pack.indexversion=%<PRIu32> dolent"
+msgstr "pack.indexversion=%<PRIu32> incorrecte"
#: builtin/index-pack.c:1553
#, c-format
@@ -9431,7 +9430,7 @@ msgstr "el nom del fitxer de paquet «%s» no acaba amb '.pack'"
#: builtin/index-pack.c:1724 builtin/index-pack.c:1728
#, c-format
msgid "bad %s"
-msgstr "%s dolent"
+msgstr "%s incorrecte"
#: builtin/index-pack.c:1744
msgid "--fix-thin cannot be used without --stdin"
@@ -9488,7 +9487,7 @@ msgstr "no s'han trobat les plantilles %s"
#: builtin/init-db.c:135
#, c-format
msgid "not copying templates from '%s': %s"
-msgstr "no s'està copiant plantilles de «%s»: %s"
+msgstr "no s'estan copiant plantilles de «%s»: %s"
#: builtin/init-db.c:328
#, c-format
@@ -9607,7 +9606,7 @@ msgstr "uneix els valors continus amb espais en blanc"
#: builtin/interpret-trailers.c:105
msgid "set parsing options"
-msgstr "estableix les opcions d'anàlisis"
+msgstr "estableix les opcions d'anàlisi"
#: builtin/interpret-trailers.c:107
msgid "trailer"
@@ -9666,7 +9665,7 @@ msgstr "Sortida final: %d %s\n"
#: builtin/log.c:501
#, c-format
msgid "git show %s: bad file"
-msgstr "git show %s: fitxer dolent"
+msgstr "git show %s: fitxer incorrecte"
#: builtin/log.c:516 builtin/log.c:610
#, c-format
@@ -9738,7 +9737,7 @@ msgid ""
msgstr ""
"S'ha produït un error en obtenir la font. Si voleu registrar la comissió "
"base\n"
-"automàticament, si us plau, useu git branch --set-upstream-to per a\n"
+"automàticament, useu git branch --set-upstream-to per a\n"
"seguir una branca remota. O podeu especificar la comissió base manualment\n"
"amb --base=<id-de-comissió-base>."
@@ -9874,7 +9873,7 @@ msgstr "límit"
#: builtin/log.c:1483
msgid "attach the patch"
-msgstr "ajunta el pedaç"
+msgstr "adjunta el pedaç"
#: builtin/log.c:1486
msgid "inline the patch"
@@ -9968,7 +9967,7 @@ msgstr "git cherry [-v] [<font> [<cap> [<límit>]]]"
msgid ""
"Could not find a tracked remote branch, please specify <upstream> manually.\n"
msgstr ""
-"No s'ha pogut trobar una branca remota seguida. Si us plau, especifiqueu "
+"No s'ha pogut trobar una branca remota seguida. Especifiqueu "
"<font> manualment.\n"
#: builtin/ls-files.c:466
@@ -10176,7 +10175,7 @@ msgstr "git merge --continue"
#: builtin/merge.c:107
msgid "switch `m' requires a value"
-msgstr "l'opció `m' requereix un valor"
+msgstr "l'opció «m» requereix un valor"
#: builtin/merge.c:144
#, c-format
@@ -10311,7 +10310,7 @@ msgstr "«%s» no assenyala una comissió"
#: builtin/merge.c:546
#, c-format
msgid "Bad branch.%s.mergeoptions string: %s"
-msgstr "Cadena branch.%s.mergeoptions dolenta: %s"
+msgstr "Cadena branch.%s.mergeoptions incorrecta: %s"
#: builtin/merge.c:666
msgid "Not handling anything other than two heads merge."
@@ -10347,7 +10346,7 @@ msgid ""
"Lines starting with '%c' will be ignored, and an empty message aborts\n"
"the commit.\n"
msgstr ""
-"Si us plau, introduïu un missatge de comissió per a explicar per què\n"
+"Introduïu un missatge de comissió per a explicar per què\n"
"aquesta fusió és necessària, especialment si fusiona una font\n"
"actualitzada a una branca temàtica.\n"
"\n"
@@ -10390,7 +10389,7 @@ msgstr "No hi ha cap branca amb seguiment remot per a %s de %s"
#: builtin/merge.c:972
#, c-format
msgid "Bad value '%s' in environment '%s'"
-msgstr "Valor dolent «%s» en l'entorn «%s»"
+msgstr "Valor incorrecte «%s» en l'entorn «%s»"
#: builtin/merge.c:1073
#, c-format
@@ -10415,7 +10414,7 @@ msgstr "--continue no accepta paràmetres"
#: builtin/merge.c:1192
msgid "There is no merge in progress (MERGE_HEAD missing)."
-msgstr "No hi ha fusió en progrés (manca MERGE_HEAD)."
+msgstr "No hi ha cap fusió en curs (manca MERGE_HEAD)."
#: builtin/merge.c:1208
msgid ""
@@ -10423,7 +10422,7 @@ msgid ""
"Please, commit your changes before you merge."
msgstr ""
"No heu conclòs la vostra fusió (MERGE_HEAD existeix).\n"
-"Si us plau, cometeu els vostres canvis abans de fusionar."
+"Cometeu els vostres canvis abans de fusionar."
#: builtin/merge.c:1215
msgid ""
@@ -10431,7 +10430,7 @@ msgid ""
"Please, commit your changes before you merge."
msgstr ""
"No heu conclòs el vostre «cherry pick» (CHERRY_PICK_HEAD existeix).\n"
-"Si us plau, cometeu els vostres canvis abans de fusionar."
+"Cometeu els vostres canvis abans de fusionar."
#: builtin/merge.c:1218
msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
@@ -10472,7 +10471,7 @@ msgstr "La comissió %s té una signatura GPG no fiable, suposadament de %s."
#: builtin/merge.c:1298
#, c-format
msgid "Commit %s has a bad GPG signature allegedly by %s."
-msgstr "La comissió %s té una signatura GPG dolenta suposadament de %s."
+msgstr "La comissió %s té una signatura GPG incorrecta suposadament de %s."
#: builtin/merge.c:1301
#, c-format
@@ -10687,7 +10686,7 @@ msgstr "El directori %s és en l'índex i no hi ha cap submòdul?"
#: builtin/mv.c:85 builtin/rm.c:289
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
-"Si us plau, «stage» els vostres canvis a .gitmodules o feu «stash» dels "
+"Feu «stage» dels vostres canvis a .gitmodules o feu «stash» dels "
"mateixos per a procedir"
#: builtin/mv.c:103
@@ -10715,7 +10714,7 @@ msgstr "S'està comprovant el canvi de nom de «%s» a «%s»\n"
#: builtin/mv.c:182
msgid "bad source"
-msgstr "font dolenta"
+msgstr "font incorrecta"
#: builtin/mv.c:185
msgid "can not move directory into itself"
@@ -10811,7 +10810,7 @@ msgstr "permet imprimir els noms `undefined` (per defecte)"
#: builtin/name-rev.c:410
msgid "dereference tags in the input (internal use)"
-msgstr "dereferencia les etiquetes en l'entrada (ús intern)"
+msgstr "desreferencia les etiquetes en l'entrada (ús intern)"
#: builtin/notes.c:26
msgid "git notes [--ref <notes-ref>] [list [<object>]]"
@@ -10947,7 +10946,7 @@ msgstr "S'ha produït un error en finalitzar 'show' per a l'objecte «%s»"
#: builtin/notes.c:195
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 "
+"especifiqueu el contingut de la nota fent servir l'opció -m o "
"l'opció -F"
#: builtin/notes.c:204
@@ -10984,7 +10983,7 @@ msgstr "s'ha produït un error en llegir l'objecte «%s»."
#: builtin/notes.c:262
#, 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»."
+msgstr "no es poden llegir les dades de node de l'objecte no de blob «%s»."
#: builtin/notes.c:302
#, c-format
@@ -11092,7 +11091,7 @@ msgid ""
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr ""
"Es desaconsellen 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"
+"Useu «git notes add -f -m/-F/-c/-C» en lloc d'això.\n"
#: builtin/notes.c:688
msgid "failed to delete ref NOTES_MERGE_PARTIAL"
@@ -11281,7 +11280,7 @@ msgstr "versió d'índex no compatible %s"
#: builtin/pack-objects.c:2853
#, c-format
msgid "bad index version '%s'"
-msgstr "versió d'índex dolenta «%s»"
+msgstr "versió d'índex incorrecta «%s»"
#: builtin/pack-objects.c:2883
msgid "do not show progress meter"
@@ -11316,7 +11315,7 @@ msgstr "mida màxima de cada fitxer de paquet de sortida"
#: builtin/pack-objects.c:2897
msgid "ignore borrowed objects from alternate object store"
msgstr ""
-"ignora els objectes prestats d'un emmagatzemament d'objectes alternatiu"
+"ignora els objectes prestats d'un emmagatzematge d'objectes alternatiu"
#: builtin/pack-objects.c:2899
msgid "ignore packed objects"
@@ -11427,7 +11426,7 @@ msgstr ""
#: builtin/pack-objects.c:2954
msgid "write a bitmap index together with the pack index"
-msgstr "escriu un índex de mapa de bits junt amb l'índex de paquet"
+msgstr "escriu un índex de mapa de bits juntament amb l'índex de paquet"
#: builtin/pack-objects.c:3081
msgid "Counting objects"
@@ -11551,11 +11550,11 @@ msgstr "Actualment no sou en cap branca."
#: builtin/pull.c:416 builtin/pull.c:431 git-parse-remote.sh:79
msgid "Please specify which branch you want to rebase against."
-msgstr "Si us plau, especifiqueu sobre què branca voleu fer «rebase»."
+msgstr "Especifiqueu sobre què branca voleu fer «rebase»."
#: builtin/pull.c:418 builtin/pull.c:433 git-parse-remote.sh:82
msgid "Please specify which branch you want to merge with."
-msgstr "Si us plau, especifiqueu amb quina branca voleu fusionar."
+msgstr "Especifiqueu amb quina branca voleu fusionar."
#: builtin/pull.c:419 builtin/pull.c:434
msgid "See git-pull(1) for details."
@@ -11610,7 +11609,7 @@ msgstr "baixar fent «rebase»"
#: builtin/pull.c:856
msgid "please commit or stash them."
-msgstr "si us plau, cometeu-los o emmagatzemeu-los."
+msgstr "cometeu-los o emmagatzemeu-los."
#: builtin/pull.c:881
#, c-format
@@ -11820,7 +11819,7 @@ msgstr "s'ha produït un error en pujar algunes referències a «%s»"
#: builtin/push.c:370
#, c-format
msgid "bad repository '%s'"
-msgstr "dipòsit dolent «%s»"
+msgstr "dipòsit incorrecte «%s»"
#: builtin/push.c:371
msgid ""
@@ -12234,8 +12233,8 @@ msgid ""
"--mirror is dangerous and deprecated; please\n"
"\t use --mirror=fetch or --mirror=push instead"
msgstr ""
-"--mirror és perillós i està en desús; si us\n"
-"\t plau, useu --mirror=fetch o\n"
+"--mirror és perillós i està en desús; \n"
+"\t useu --mirror=fetch o\n"
"\t --mirror=push en lloc d'això"
#: builtin/remote.c:144
@@ -12329,7 +12328,7 @@ msgstr ""
"No s'està actualitzant l'especificació de referències d'obtenció no per "
"defecte\n"
"\t%s\n"
-"\tSi us plau, actualitzeu la configuració manualment si és necessari."
+"\tActualitzeu la configuració manualment si és necessari."
#: builtin/remote.c:697
#, c-format
@@ -12509,19 +12508,19 @@ msgstr " (estat no consultat)"
#: builtin/remote.c:1195
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
-msgstr[0] " Branca local configurada per a 'git pull':"
-msgstr[1] " Branques locals configurades per a 'git pull':"
+msgstr[0] " Branca local configurada per a «git pull»:"
+msgstr[1] " Branques locals configurades per a «git pull»:"
#: builtin/remote.c:1203
msgid " Local refs will be mirrored by 'git push'"
-msgstr " 'git push' reflectirà les referències locals"
+msgstr " «git push» reflectirà les referències locals"
#: builtin/remote.c:1209
#, 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:"
+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:1230
msgid "set refs/remotes/<name>/HEAD according to remote"
@@ -12538,7 +12537,7 @@ msgstr "No es pot determinar el HEAD remot"
#: builtin/remote.c:1249
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 "
+"Múltiples branques de HEAD remotes. Trieu-ne una explícitament "
"amb:"
#: builtin/remote.c:1259
@@ -12626,7 +12625,7 @@ msgstr "afegeix URL"
#: builtin/remote.c:1526
msgid "delete URLs"
-msgstr "suprimeix URLs"
+msgstr "suprimeix els URL"
#: builtin/remote.c:1533
msgid "--add --delete doesn't make sense"
@@ -12664,7 +12663,7 @@ msgid ""
"Incremental repacks are incompatible with bitmap indexes. Use\n"
"--no-write-bitmap-index or disable the pack.writebitmaps configuration."
msgstr ""
-"Els re-empaquetaments incrementals són incompatibles amb els índexs de bitmaps. Useu\n"
+"Els reempaquetaments incrementals són incompatibles amb els índexs de bitmaps. Useu\n"
"--no-write-bitmap-index o inhabiliteu el paràmetre de configuració pack.writebitmaps."
#: builtin/repack.c:168
@@ -12743,7 +12742,7 @@ msgstr "reempaqueta els objectes en paquets marcats amb .keep"
#: builtin/repack.c:210
msgid "cannot delete packs in a precious-objects repo"
-msgstr "no es pot suprimir paquets en un dipòsit d'objectes preciosos"
+msgstr "no es poden suprimir paquets en un dipòsit d'objectes preciosos"
#: builtin/repack.c:214
msgid "--keep-unreachable and -A are incompatible"
@@ -12782,7 +12781,7 @@ msgstr "No és un nom d'objecte vàlid: «%s»"
#: builtin/replace.c:361
#, c-format
msgid "bad mergetag in commit '%s'"
-msgstr "etiqueta de fusió dolenta en la comissió «%s»"
+msgstr "etiqueta de fusió incorrecta en la comissió «%s»"
#: builtin/replace.c:363
#, c-format
@@ -12986,7 +1