diff options
96 files changed, 52601 insertions, 45139 deletions
diff --git a/Documentation/RelNotes/2.33.0.txt b/Documentation/RelNotes/2.33.0.txt new file mode 100644 index 0000000..6795a27 --- /dev/null +++ b/Documentation/RelNotes/2.33.0.txt @@ -0,0 +1,32 @@ +Git 2.33 Release Notes +====================== + +Updates since Git 2.32 +---------------------- + +UI, Workflows & Features + +Performance, Internal Implementation, Development Support etc. + + +Fixes since v2.31 +----------------- + + * We historically rejected a very short string as an author name + while accepting a patch e-mail, which has been loosened. + (merge 72ee47ceeb ef/mailinfo-short-name later to maint). + + * The parallel checkout codepath did not initialize object ID field + used to talk to the worker processes in a futureproof way. + + * Rewrite code that triggers undefined behaiour warning. + (merge aafa5df0df jn/size-t-casted-to-off-t-fix later to maint). + + * The description of "fast-forward" in the glossary has been updated. + (merge e22f2daed0 ry/clarify-fast-forward-in-glossary later to maint). + + * Other code cleanup, docfix, build fix, etc. + (merge bfe35a6165 ah/doc-describe later to maint). + (merge f302c1e4aa jc/clarify-revision-range later to maint). + (merge 3127ff90ea tl/fix-packfile-uri-doc later to maint). + (merge a84216c684 jk/doc-color-pager later to maint). diff --git a/Documentation/config/color.txt b/Documentation/config/color.txt index d5daacb..e05d520 100644 --- a/Documentation/config/color.txt +++ b/Documentation/config/color.txt @@ -127,8 +127,9 @@ color.interactive.<slot>:: interactive commands. color.pager:: - A boolean to enable/disable colored output when the pager is in - use (default is true). + A boolean to specify whether `auto` color modes should colorize + output going to the pager. Defaults to true; set this to false + if your pager does not understand ANSI color codes. color.push:: A boolean to enable/disable color in push errors. May be set to diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index 530d115..32e6dee 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -49,10 +49,9 @@ ifdef::git-log[] --diff-merges=m::: -m::: This option makes diff output for merge commits to be shown in - the default format. `-m` will produce the output only if `-p` - is given as well. The default format could be changed using + the default format. The default format could be changed using `log.diffMerges` configuration parameter, which default value - is `separate`. + is `separate`. `-m` implies `-p`. + --diff-merges=first-parent::: --diff-merges=1::: @@ -62,7 +61,8 @@ ifdef::git-log[] --diff-merges=separate::: This makes merge commits show the full diff with respect to each of the parents. Separate log entry and diff is generated - for each parent. + for each parent. This is the format that `-m` produced + historically. + --diff-merges=combined::: --diff-merges=c::: diff --git a/Documentation/git-describe.txt b/Documentation/git-describe.txt index a88f6ae..c6a79c2 100644 --- a/Documentation/git-describe.txt +++ b/Documentation/git-describe.txt @@ -63,9 +63,10 @@ OPTIONS Automatically implies --tags. --abbrev=<n>:: - Instead of using the default 7 hexadecimal digits as the - abbreviated object name, use <n> digits, or as many digits - as needed to form a unique object name. An <n> of 0 + Instead of using the default number of hexadecimal digits (which + will vary according to the number of objects in the repository with + a default of 7) of the abbreviated object name, use <n> digits, or + as many digits as needed to form a unique object name. An <n> of 0 will suppress long format, only showing the closest tag. --candidates=<n>:: @@ -139,8 +140,11 @@ at the end. The number of additional commits is the number of commits which would be displayed by "git log v1.0.4..parent". -The hash suffix is "-g" + unambiguous abbreviation for the tip commit -of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`). +The hash suffix is "-g" + an unambigous abbreviation for the tip commit +of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`). The +length of the abbreviation scales as the repository grows, using the +approximate number of objects in the repository and a bit of math +around the birthday paradox, and defaults to a minimum of 7. The "g" prefix stands for "git" and is used to allow describing the version of a software depending on the SCM the software is managed with. This is useful in an environment where people may use different SCMs. diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index 93708ae..3db4eab 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -167,6 +167,14 @@ Sending `sendemail.envelopeSender` configuration variable; if that is unspecified, choosing the envelope sender is left to your MTA. +--sendmail-cmd=<command>:: + Specify a command to run to send the email. The command should + be sendmail-like; specifically, it must support the `-i` option. + The command will be executed in the shell if necessary. Default + is the value of `sendemail.sendmailcmd`. If unspecified, and if + --smtp-server is also unspecified, git-send-email will search + for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH. + --smtp-encryption=<encryption>:: Specify the encryption to use, either 'ssl' or 'tls'. Any other value reverts to plain SMTP. Default is the value of @@ -211,13 +219,16 @@ a password is obtained using 'git-credential'. --smtp-server=<host>:: If set, specifies the outgoing SMTP server to use (e.g. - `smtp.example.com` or a raw IP address). Alternatively it can - specify a full pathname of a sendmail-like program instead; - the program must support the `-i` option. Default value can - be specified by the `sendemail.smtpServer` configuration - option; the built-in default is to search for `sendmail` in - `/usr/sbin`, `/usr/lib` and $PATH if such program is - available, falling back to `localhost` otherwise. + `smtp.example.com` or a raw IP address). If unspecified, and if + `--sendmail-cmd` is also unspecified, the default is to search + for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a + program is available, falling back to `localhost` otherwise. ++ +For backward compatibility, this option can also specify a full pathname +of a sendmail-like program instead; the program must support the `-i` +option. This method does not support passing arguments or using plain +command names. For those use cases, consider using `--sendmail-cmd` +instead. --smtp-server-port=<port>:: Specifies a port different from the default port (SMTP diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt index 67c7a50..c077971 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -146,8 +146,8 @@ current branch integrates with) obviously do not work, as there is no <<def_revision,revision>> and you are "merging" another <<def_branch,branch>>'s changes that happen to be a descendant of what you have. In such a case, you do not make a new <<def_merge,merge>> - <<def_commit,commit>> but instead just update to his - revision. This will happen frequently on a + <<def_commit,commit>> but instead just update your branch to point at the same + revision as the branch you are merging. This will happen frequently on a <<def_remote_tracking_branch,remote-tracking branch>> of a remote <<def_repository,repository>>. diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt index d9169c0..f5f17b6 100644 --- a/Documentation/revisions.txt +++ b/Documentation/revisions.txt @@ -260,6 +260,9 @@ any of the given commits. A commit's reachable set is the commit itself and the commits in its ancestry chain. +There are several notations to specify a set of connected commits +(called a "revision range"), illustrated below. + Commit Exclusions ~~~~~~~~~~~~~~~~~ @@ -294,6 +297,26 @@ is a shorthand for 'HEAD..origin' and asks "What did the origin do since I forked from them?" Note that '..' would mean 'HEAD..HEAD' which is an empty range that is both reachable and unreachable from HEAD. +Commands that are specifically designed to take two distinct ranges +(e.g. "git range-diff R1 R2" to compare two ranges) do exist, but +they are exceptions. Unless otherwise noted, all "git" commands +that operate on a set of commits work on a single revision range. +In other words, writing two "two-dot range notation" next to each +other, e.g. + + $ git log A..B C..D + +does *not* specify two revision ranges for most commands. Instead +it will name a single connected set of commits, i.e. those that are +reachable from either B or D but are reachable from neither A or C. +In a linear history like this: + + ---A---B---o---o---C---D + +because A and B are reachable from C, the revision range specified +by these two dotted ranges is a single commit D. + + Other <rev>{caret} Parent Shorthand Notations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Three other shorthands exist, particularly useful for merge commits, diff --git a/Documentation/technical/packfile-uri.txt b/Documentation/technical/packfile-uri.txt index f7eabc6..1eb525f 100644 --- a/Documentation/technical/packfile-uri.txt +++ b/Documentation/technical/packfile-uri.txt @@ -35,13 +35,14 @@ include some sort of non-trivial implementation in the Minimum Viable Product, at least so that we can test the client. This is the implementation: a feature, marked experimental, that allows the -server to be configured by one or more `uploadpack.blobPackfileUri=<sha1> -<uri>` entries. Whenever the list of objects to be sent is assembled, all such -blobs are excluded, replaced with URIs. As noted in "Future work" below, the -server can evolve in the future to support excluding other objects (or other -implementations of servers could be made that support excluding other objects) -without needing a protocol change, so clients should not expect that packfiles -downloaded in this way only contain single blobs. +server to be configured by one or more `uploadpack.blobPackfileUri= +<object-hash> <pack-hash> <uri>` entries. Whenever the list of objects to be +sent is assembled, all such blobs are excluded, replaced with URIs. As noted +in "Future work" below, the server can evolve in the future to support +excluding other objects (or other implementations of servers could be made +that support excluding other objects) without needing a protocol change, so +clients should not expect that packfiles downloaded in this way only contain +single blobs. Client design ------------- diff --git a/Documentation/technical/remembering-renames.txt b/Documentation/technical/remembering-renames.txt new file mode 100644 index 0000000..2fd5cc8 --- /dev/null +++ b/Documentation/technical/remembering-renames.txt @@ -0,0 +1,671 @@ +Rebases and cherry-picks involve a sequence of merges whose results are +recorded as new single-parent commits. The first parent side of those +merges represent the "upstream" side, and often include a far larger set of +changes than the second parent side. Traditionally, the renames on the +first-parent side of that sequence of merges were repeatedly re-detected +for every merge. This file explains why it is safe and effective during +rebases and cherry-picks to remember renames on the upstream side of +history as an optimization, assuming all merges are automatic and clean +(i.e. no conflicts and not interrupted for user input or editing). + +Outline: + + 0. Assumptions + + 1. How rebasing and cherry-picking work + + 2. Why the renames on MERGE_SIDE1 in any given pick are *always* a + superset of the renames on MERGE_SIDE1 for the next pick. + + 3. Why any rename on MERGE_SIDE1 in any given pick is _almost_ always also + a rename on MERGE_SIDE1 for the next pick + + 4. A detailed description of the the counter-examples to #3. + + 5. Why the special cases in #4 are still fully reasonable to use to pair + up files for three-way content merging in the merge machinery, and why + they do not affect the correctness of the merge. + + 6. Interaction with skipping of "irrelevant" renames + + 7. Additional items that need to be cached + + 8. How directory rename detection interacts with the above and why this + optimization is still safe even if merge.directoryRenames is set to + "true". + + +=== 0. Assumptions === + +There are two assumptions that will hold throughout this document: + + * The upstream side where commits are transplanted to is treated as the + first parent side when rebase/cherry-pick call the merge machinery + + * All merges are fully automatic + +and a third that will hold in sections 2-5 for simplicity, that I'll later +address in section 8: + + * No directory renames occur + + +Let me explain more about each assumption and why I include it: + + +The first assumption is merely for the purposes of making this document +clearer; the optimization implementation does not actually depend upon it. +However, the assumption does hold in all cases because it reflects the way +that both rebase and cherry-pick were implemented; and the implementation +of cherry-pick and rebase are not readily changeable for backwards +compatibility reasons (see for example the discussion of the --ours and +--theirs flag in the documentation of `git checkout`, particularly the +comments about how they behave with rebase). The optimization avoids +checking first-parent-ness, though. It checks the conditions that make the +optimization valid instead, so it would still continue working if someone +changed the parent ordering that cherry-pick and rebase use. But making +this assumption does make this document much clearer and prevents me from +having to repeat every example twice. + +If the second assumption is violated, then the optimization simply is +turned off and thus isn't relevant to consider. The second assumption can +also be stated as "there is no interruption for a user to resolve conflicts +or to just further edit or tweak files". While real rebases and +cherry-picks are often interrupted (either because it's an interactive +rebase where the user requested to stop and edit, or because there were +conflicts that the user needs to resolve), the cache of renames is not +stored on disk, and thus is thrown away as soon as the rebase or cherry +pick stops for the user to resolve the operation. + +The third assumption makes sections 2-5 simpler, and allows people to +understand the basics of why this optimization is safe and effective, and +then I can go back and address the specifics in section 8. It is probably +also worth noting that if directory renames do occur, then the default of +merge.directoryRenames being set to "conflict" means that the operation +will stop for users to resolve the conflicts and the cache will be thrown +away, and thus that there won't be an optimization to apply. So, the only +reason we need to address directory renames specifically, is that some +users will have set merge.directoryRenames to "true" to allow the merges to +continue to proceed automatically. The optimization is still safe with +this config setting, but we have to discuss a few more cases to show why; +this discussion is deferred until section 8. + + +=== 1. How rebasing and cherry-picking work === + +Consider the following setup (from the git-rebase manpage): + + A---B---C topic + / + D---E---F---G main + +After rebasing or cherry-picking topic onto main, this will appear as: + + A'--B'--C' topic + / + D---E---F---G main + +The way the commits A', B', and C' are created is through a series of +merges, where rebase or cherry-pick sequentially uses each of the three +A-B-C commits in a special merge operation. Let's label the three commits +in the merge operation as MERGE_BASE, MERGE_SIDE1, and MERGE_SIDE2. For +this picture, the three commits for each of the three merges would be: + +To create A': + MERGE_BASE: E + MERGE_SIDE1: G + MERGE_SIDE2: A + +To create B': + MERGE_BASE: A + MERGE_SIDE1: A' + MERGE_SIDE2: B + +To create C': + MERGE_BASE: B + MERGE_SIDE1: B' + MERGE_SIDE2: C + +Sometimes, folks are surprised that these three-way merges are done. It +can be useful in understanding these three-way merges to view them in a +slightly different light. For example, in creating C', you can view it as +either: + + * Apply the changes between B & C to B' + * Apply the changes between B & B' to C + +Conceptually the two statements above are the same as a three-way merge of +B, B', and C, at least the parts before you decide to record a commit. + + +=== 2. Why the renames on MERGE_SIDE1 in any given pick are always a === +=== superset of the renames on MERGE_SIDE1 for the next pick. === + +The merge machinery uses the filenames it is fed from MERGE_BASE, +MERGE_SIDE1, and MERGE_SIDE2. It will only move content to a different +filename under one of three conditions: + + * To make both pieces of a conflict available to a user during conflict + resolution (examples: directory/file conflict, add/add type conflict + such as symlink vs. regular file) + + * When MERGE_SIDE1 renames the file. + + * When MERGE_SIDE2 renames the file. + +First, let's remember what commits are involved in the first and second +picks of the cherry-pick or rebase sequence: + +To create A': + MERGE_BASE: E + MERGE_SIDE1: G + MERGE_SIDE2: A + +To create B': + MERGE_BASE: A + MERGE_SIDE1: A' + MERGE_SIDE2: B + +So, in particular, we need to show that the renames between E and G are a +superset of those between A and A'. + +A' is created by the first merge. A' will only have renames for one of the +three reasons listed above. The first case, a conflict, results in a +situation where the cache is dropped and thus this optimization doesn't +take effect, so we need not consider that case. The third case, a rename +on MERGE_SIDE2 (i.e. from G to A), will show up in A' but it also shows up +in A -- therefore when diffing A and A' that path does not show up as a +rename. The only remaining way for renames to show up in A' is for the +rename to come from MERGE_SIDE1. Therefore, all renames between A and A' +are a subset of those between E and G. Equivalently, all renames between E +and G are a superset of those between A and A'. + + +=== 3. Why any rename on MERGE_SIDE1 in any given pick is _almost_ === +=== always also a rename on MERGE_SIDE1 for the next pick. === + +Let's again look at the first two picks: + +To create A': + MERGE_BASE: E + MERGE_SIDE1: G + MERGE_SIDE2: A + +To create B': + MERGE_BASE: A + MERGE_SIDE1: A' + MERGE_SIDE2: B + +Now let's look at any given rename from MERGE_SIDE1 of the first pick, i.e. +any given rename from E to G. Let's use the filenames 'oldfile' and +'newfile' for demonstration purposes. That first pick will function as +follows; when the rename is detected, the merge machinery will do a +three-way content merge of the following: + E:oldfile + G:newfile + A:oldfile +and produce a new result: + A':newfile + +Note above that I've assumed that E->A did not rename oldfile. If that +side did rename, then we most likely have a rename/rename(1to2) conflict +that will cause the rebase or cherry-pick operation to halt and drop the +in-memory cache of renames and thus doesn't need to be considered further. +In the special case that E->A does rename the file but also renames it to +newfile, then there is no conflict from the renaming and the merge can +succeed. In this special case, the rename is not valid to cache because +the second merge will find A:newfile in the MERGE_BASE (see also the new +testcases in t6429 with "rename same file identically" in their +description). So a rename/rename(1to1) needs to be specially handled by +pruning renames from the cache and decrementing the dir_rename_counts in +the current and leading directories associated with those renames. Or, +since these are really rare, one could just take the easy way out and +disable the remembering renames optimization when a rename/rename(1to1) +happens. + +The previous paragraph handled the cases for E->A renaming oldfile, let's +continue assuming that oldfile is not renamed in A. + +As per the diagram for creating B', MERGE_SIDE1 involves the changes from A +to A'. So, we are curious whether A:oldfile and A':newfile will be viewed +as renames. Note that: + + * There will be no A':oldfile (because there could not have been a + G:oldfile as we do not do break detection in the merge machinery and + G:newfile was detected as a rename, and by the construction of the + rename above that merged cleanly, the merge machinery will ensure there + is no 'oldfile' in the result). + + * There will be no A:newfile (if there had been, we would have had a + rename/add conflict). + + * Clearly A:oldfile and A':newfile are "related" (A':newfile came from a + clean three-way content merge involving A:oldfile). + +We can also expound on the third point above, by noting that three-way +content merges can also be viewed as applying the differences between the +base and one side to the other side. Thus we can view A':newfile as +having been created by taking the changes between E:oldfile and G:newfile +(which were detected as being related, i.e. <50% changed) to A:oldfile. + +Thus A:oldfile and A':newfile are just as related as E:oldfile and +G:newfile are -- they have exactly identical differences. Since the latter +were detected as renames, A:oldfile and A':newfile should also be +detectable as renames almost always. + + +=== 4. A detailed description of the counter-examples to #3. === + +We already noted in section 3 that rename/rename(1to1) (i.e. both sides +renaming a file the same way) was one counter-example. The more +interesting bit, though, is why did we need to use the "almost" qualifier +when stating that A:oldfile and A':newfile are "almost" always detectable +as renames? + +Let's repeat an earlier point that section 3 made: + + A':newfile was created by applying the changes between E:oldfile and + G:newfile to A:oldfile. The changes between E:oldfile and G:newfile were + <50% of the size of E:oldfile. + +If those changes that were <50% of the size of E:oldfile are also <50% of +the size of A:oldfile, then A:oldfile and A':newfile will be detectable as +renames. However, if there is a dramatic size reduction between E:oldfile +and A:oldfile (but the changes between E:oldfile, G:newfile, and A:oldfile +still somehow merge cleanly), then traditional rename detection would not +detect A:oldfile and A':newfile as renames. + +Here's an example where that can happen: + * E:oldfile had 20 lines + * G:newfile added 10 new lines at the beginning of the file + * A:oldfile kept the first 3 lines of the file, and deleted all the rest +then + => A':newfile would have 13 lines, 3 of which matches those in A:oldfile. +E:oldfile -> G:newfile would be detected as a rename, but A:oldfile and +A':newfile would not be. + + +=== 5. Why the special cases in #4 are still fully reasonable to use to === +=== pair up files for three-way content merging in the merge machinery, === +=== and why they do not affect the correctness of the merge. === + +In the rename/rename(1to1) case, A:newfile and A':newfile are not renames +since they use the *same* filename. However, files with the same filename +are obviously fine to pair up for three-way content merging (the merge +machinery has never employed break detection). The interesting +counter-example case is thus not the rename/rename(1to1) case, but the case +where A did not rename oldfile. That was the case that we spent most of +the time discussing in sections 3 and 4. The remainder of this section +will be devoted to that case as well. + +So, even if A:oldfile and A':newfile aren't detectable as renames, why is +it still reasonable to pair them up for three-way content merging in the +merge machinery? There are multiple reasons: + + * As noted in sections 3 and 4, the diff between A:oldfile and A':newfile + is *exactly* the same as the diff between E:oldfile and G:newfile. The + latter pair were detected as renames, so it seems unlikely to surprise + users for us to treat A:oldfile and A':newfile as renames. + + * In fact, "oldfile" and "newfile" were at one point detected as renames + due to how they were constructed in the E..G chain. And we used that + information once already in this rebase/cherry-pick. I think users + would be unlikely to be surprised at us continuing to treat the files + as renames and would quickly understand why we had done so. + + * Marking or declaring files as renames is *not* the end goal for merges. + Merges use renames to determine which files make sense to be paired up + for three-way content merges. + + * A:oldfile and A':newfile were _already_ paired up in a three-way + content merge; that is how A':newfile was created. In fact, that + three-way content merge was clean. So using them again in a later + three-way content merge seems very reasonable. + +However, the above is focusing on the common scenarios. Let's try to look +at all possible unusual scenarios and compare without the optimization to +with the optimization. Consider the following theoretical cases; we will +then dive into each to determine which of them are possible, +and if so, what they mean: + + 1. Without the optimization, the second merge results in a conflict. + With the optimization, the second merge also results in a conflict. + Questions: Are the conflicts confusingly different? Better in one case? + + 2. Without the optimization, the second merge results in NO conflict. + With the optimization, the second merge also results in NO conflict. + Questions: Are the merges the same? + + 3. Without the optimization, the second merge results in a conflict. + With the optimization, the second merge results in NO conflict. + Questions: Possible? Bug, bugfix, or something else? + + 4. Without the optimization, the second merge results in NO conflict. + With the optimization, the second merge results in a conflict. + Questions: Possible? Bug, bugfix, or something else? + +I'll consider all four cases, but out of order. + +The fourth case is impossible. For the code without the remembering +renames optimization to not get a conflict, B:oldfile would need to exactly +match A:oldfile -- if it doesn't, there would be a modify/delete conflict. +If A:oldfile matches B:oldfile exactly, then a three-way content merge +between A:oldfile, A':newfile, and B:oldfile would have no conflict and +just give us the version of newfile from A' as the result. + +From the same logic as the above paragraph, the second case would indeed +result in identical merges. When A:oldfile exactly matches B:oldfile, an +undetected rename would say, "Oh, I see one side didn't modify 'oldfile' +and the other side deleted it. I'll delete it. And I see you have this +brand new file named 'newfile' in A', so I'll keep it." That gives the +same results as three-way content merging A:oldfile, A':newfile, and +B:oldfile -- a removal of oldfile with the version of newfile from A' +showing up in the result. + +The third case is interesting. It means that A:oldfile and A':newfile were +not just similar enough, but that the changes between them did not conflict +with the changes between A:oldfile and B:oldfile. This would validate our +hunch that the files were similar enough to be used in a three-way content +merge, and thus seems entirely correct for us to have used them that way. +(Sidenote: One particular example here may be enlightening. Let's say that +B was an immediate revert of A. B clearly would have been a clean revert +of A, since A was B's immediate parent. One would assume that if you can +pick a commit, you should also be able to cherry-pick its immediate revert. +However, this is one of those funny corner cases; without this +optimization, we just successfully picked a commit cleanly, but we are +unable to cherry-pick its immediate revert due to the size differences +between E:oldfile and A:oldfile.) + +That leaves only the first case to consider -- when we get conflicts both +with or without the optimization. Without the optimization, we'll have a +modify/delete conflict, where both A':newfile and B:oldfile are left in the +tree for the user to deal with and no hints about the potential similarity +between the two. With the optimization, we'll have a three-way content +merged A:oldfile, A':newfile, and B:oldfile with conflict markers +suggesting we thought the files were related but giving the user the chance +to resolve. As noted above, I don't think users will find us treating +'oldfile' and 'newfile' as related as a surprise since they were between E +and G. In any event, though, this case shouldn't be concerning since we +hit a conflict in both cases, told the user what we know, and asked them to +resolve it. + +So, in summary, case 4 is impossible, case 2 yields the same behavior, and +cases 1 and 3 seem to provide as good or better behavior with the +optimization than without. + + +=== 6. Interaction with skipping of "irrelevant" renames === + +Previous optimizations involved skipping rename detection for paths +considered to be "irrelevant". See for example the following commits: + + * 32a56dfb99 ("merge-ort: precompute subset of sources for which we + need rename detection", 2021-03-11) + * 2fd9eda462 ("merge-ort: precompute whether directory rename + detection is needed", 2021-03-11) + * 9bd342137e ("diffcore-rename: determine which relevant_sources are + no longer relevant", 2021-03-13) + +Relevance is always determined by what the _other_ side of history has +done, in terms of modifing a file that our side renamed, or adding a +file to a directory which our side renamed. This means that a path +that is "irrelevant" when picking the first commit of a series in a +rebase or cherry-pick, may suddenly become "relevant" when picking the +next commit. + +The upshot of this is that we can only cache rename detection results +for relevant paths, and need to re-check relevance in subsequent +commits. If those subsequent commits have additional paths that are +relevant for rename detection, then we will need to redo rename +detection -- though we can limit it to the paths for which we have not +already detected renames. + + +=== 7. Additional items that need to be cached === + +It turns out we have to cache more than just renames; we also cache: + + A) non-renames (i.e. unpaired deletes) + B) counts of renames within directories + C) sources that were marked as RELEVANT_LOCATION, but which were + downgraded to RELEVANT_NO_MORE + D) the toplevel trees involved in the merge + +These are all stored in struct rename_info, and respectively appear in + * cached_pairs (along side actual renames, just with a value of NULL) + * dir_rename_counts + * cached_irrelevant + * merge_trees + +The reason for (A) comes from the irrelevant renames skipping +optimization discussed in section 6. The fact that irrelevant renames +are skipped means we only get a subset of the potential renames +detected and subsequent commits may need to run rename detection on +the upstream side on a subset of the remaining renames (to get the +renames that are relevant for that later commit). Since unpaired +deletes are involved in rename detection too, we don't want to +repeatedly check that those paths remain unpaired on the upstream side +with every commit we are transplanting. + +The reason for (B) is that diffcore_rename_extended() is what +generates the counts of renames by directory which is needed in +directory rename detection, and if we don't run +diffcore_rename_extended() again then we need to have the output from +it, including dir_rename_counts, from the previous run. + +The reason for (C) is that merge-ort's tree traversal will again think +those paths are relevant (marking them as RELEVANT_LOCATION), but the +fact that they were downgraded to RELEVANT_NO_MORE means that +dir_rename_counts already has the information we need for directory +rename detection. (A path which becomes RELEVANT_CONTENT in a +subsequent commit will be removed from cached_irrelevant.) + +The reason for (D) is that is how we determine whether the remember +renames optimization can be used. In particular, remembering that our +sequence of merges looks like: + + Merge 1: + MERGE_BASE: E + MERGE_SIDE1: G + MERGE_SIDE2: A + => Creates A' + + Merge 2: + MERGE_BASE: A + MERGE_SIDE1: A' + MERGE_SIDE2: B + => Creates B' + +It is the fact that the trees A and A' appear both in Merge 1 and in +Merge 2, with A as a parent of A' that allows this optimization. So +we store the trees to compare with what we are asked to merge next +time. + + +=== 8. How directory rename detection interacts with the above and === +=== why this optimization is still safe even if === +=== merge.directoryRenames is set to "true". === + +As noted in the assumptions section: + + """ + ...if directory renames do occur, then the default of + merge.directoryRenames being set to "conflict" means that the operation + will stop for users to resolve the conflicts and the cache will be + thrown away, and thus that there won't be an optimization to apply. + So, the only reason we need to address directory renames specifically, + is that some users will have set merge.directoryRenames to "true" to + allow the merges to continue to proceed automatically. + """ + +Let's remember that we need to look at how any given pick affects the next +one. So let's again use the first two picks from the diagram in section +one: + + First pick does this three-way merge: + MERGE_BASE: E + MERGE_SIDE1: G + MERGE_SIDE2: A + => creates A' + + Second pick does this three-way merge: + MERGE_BASE: A + MERGE_SIDE1: A' + MERGE_SIDE2: B + => creates B' + +Now, directory rename detection exists so that if one side of history +renames a directory, and the other side adds a new file to the old +directory, then the merge (with merge.directoryRenames=true) can move the +file into the new directory. There are two qualitatively different ways to +add a new file to an old directory: create a new file, or rename a file +into that directory. Also, directory renames can be done on either side of +history, so there are four cases to consider: + + * MERGE_SIDE1 renames old dir, MERGE_SIDE2 adds new file to old dir + * MERGE_SIDE1 renames old dir, MERGE_SIDE2 renames file into old dir + * MERGE_SIDE1 adds new file to old dir, MERGE_SIDE2 renames old dir + * MERGE_SIDE1 renames file into old dir, MERGE_SIDE2 renames old dir + +One last note before we consider these four cases: There are some +important properties about how we implement this optimization with +respect to directory rename detection that we need to bear in mind +while considering all of these cases: + + * rename caching occurs *after* applying directory renames + + * a rename created by directory rename detection is recorded for the side + of history that did the directory rename. + + * dir_rename_counts, the nested map of + {oldname => {newname => count}}, + is cached between runs as well. This basically means that directory + rename detection is also cached, though only on the side of history + that we cache renames for (MERGE_SIDE1 as far as this document is + concerned; see the assumptions section). Two interesting sub-notes + about these counts: + + * If we need to perform rename-detection again on the given side (e.g. + some paths are relevant for rename detection that weren't before), + then we clear dir_rename_counts and recompute it, making use of + cached_pairs. The reason it is important to do this is optimizations + around RELEVANT_LOCATION exist to prevent us from computing + unnecessary renames for directory rename detection and from computing + dir_rename_counts for irrelevant directories; but those same renames + or directories may become necessary for subsequent merges. The + easiest way to "fix up" dir_rename_counts in such cases is to just + recompute it. + + * If we prune rename/rename(1to1) entries from the cache, then we also + need to update dir_rename_counts to decrement the counts for the + involved directory and any relevant parent directories (to undo what + update_dir_rename_counts() in diffcore-rename.c incremented when the + rename was initially found). If we instead just disable the + remembering renames optimization when the exceedingly rare + rename/rename(1to1) cases occur, then dir_rename_counts will get + re-computed the next time rename detection occurs, as noted above. + + * the side with multiple commits to pick, is the side of history that we + do NOT cache renames for. Thus, there are no additional commits to + change the number of renames in a directory, except for those done by + directory rename detection (which always pad the majority). + + * the "renames" we cache are modified slightly by any directory rename, + as noted below. + +Now, with those notes out of the way, let's go through the four cases +in order: + +Case 1: MERGE_SIDE1 renames old dir, MERGE_SIDE2 adds new file to old dir + + This case looks like this: + + MERGE_BASE: E, Has olddir/ + MERGE_SIDE1: G, Renames olddir/ -> newdir/ + MERGE_SIDE2: A, Adds olddir/newfile + => creates A', With newdir/newfile + + MERGE_BASE: A, Has olddir/newfile + MERGE_SIDE1: A', Has newdir/newfile + MERGE_SIDE2: B, Modifies olddir/newfile + => expected B', with threeway-merged newdir/newfile from above + + In this case, with the optimization, note that after the first commit: + * MERGE_SIDE1 remembers olddir/ -> newdir/ + * MERGE_SIDE1 has cached olddir/newfile -> newdir/newfile + Given the cached rename noted above, the second merge can proceed as + expected without needing to perform rename detection from A -> A'. + +Case 2: MERGE_SIDE1 renames old dir, MERGE_SIDE2 renames file into old dir + + This case looks like this: + MERGE_BASE: E oldfile, olddir/ + MERGE_SIDE1: G oldfile, olddir/ -> newdir/ + MERGE_SIDE2: A oldfile -> olddir/newfile + => creates A', With newdir/newfile representing original oldfile + + MERGE_BASE: A olddir/newfile + MERGE_SIDE1: A' newdir/newfile + MERGE_SIDE2: B modify olddir/newfile + => expected B', with threeway-merged newdir/newfile from above + + In this case, with the optimization, note that after the first commit: + * MERGE_SIDE1 remembers olddir/ -> newdir/ + * MERGE_SIDE1 has cached olddir/newfile -> newdir/newfile + (NOT oldfile -> newdir/newfile; compare to case with + (p->status == 'R' && new_path) in possibly_cache_new_pair()) + + Given the cached rename noted above, the second merge can proceed as + expected without needing to perform rename detection from A -> A'. + +Case 3: MERGE_SIDE1 adds new file to old dir, MERGE_SIDE2 renames old dir + + This case looks like this: + + MERGE_BASE: E, Has olddir/ + MERGE_SIDE1: G, Adds olddir/newfile + MERGE_SIDE2: A, Renames olddir/ -> newdir/ + => creates A', With newdir/newfile + + MERGE_BASE: A, Has newdir/, but no notion of newdir/newfile + MERGE_SIDE1: A', Has newdir/newfile + MERGE_SIDE2: B, Has newdir/, but no notion of newdir/newfile + => expected B', with newdir/newfile from A' + + In this case, with the optimization, note that after the first commit there + were no renames on MERGE_SIDE1, and any renames on MERGE_SIDE2 are tossed. + But the second merge didn't need any renames so this is fine. + +Case 4: MERGE_SIDE1 renames file into old dir, MERGE_SIDE2 renames old dir + + This case looks like this: + + MERGE_BASE: E, Has olddir/ + MERGE_SIDE1: G, Renames oldfile -> olddir/newfile + MERGE_SIDE2: A, Renames olddir/ -> newdir/ + => creates A', With newdir/newfile representing original oldfile + + MERGE_BASE: A, Has oldfile + MERGE_SIDE1: A', Has newdir/newfile + MERGE_SIDE2: B, Modifies oldfile + => expected B', with threeway-merged newdir/newfile from above + + In this case, with the optimization, note that after the first commit: + * MERGE_SIDE1 remembers oldfile -> newdir/newfile + (NOT oldfile -> olddir/newfile; compare to case of second + block under p->status == 'R' in possibly_cache_new_pair()) + * MERGE_SIDE2 renames are tossed because only MERGE_SIDE1 is remembered + + Given the cached rename noted above, the second merge can proceed as + expected without needing to perform rename detection from A -> A'. + +Finally, I'll just note here that interactions with the +skip-irrelevant-renames optimization means we sometimes don't detect +renames for any files within a directory that was renamed, in which +case we will not have been able to detect any rename for the directory +itself. In such a case, we do not know whether the directory was +renamed; we want to be careful to avoid cacheing some kind of "this +directory was not renamed" statement. If we did, then a subsequent +commit being rebased could add a file to the old directory, and the +user would expect it to end up in the correct directory -- something +our erroneous "this directory was not renamed" cache would preclude. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 8862d57..9c125f2 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.32.0-rc1 +DEF_VER=v2.32.0 LF=' ' @@ -1 +1 @@ -Documentation/RelNotes/2.32.0.txt
\ No newline at end of file +Documentation/RelNotes/2.33.0.txt
\ No newline at end of file diff --git a/builtin/clone.c b/builtin/clone.c index eeb74c0..66fe666 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -1320,9 +1320,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix) } if (!is_local && !complete_refs_before_fetch) { - err = transport_fetch_refs(transport, mapped_refs); - if (err) - goto cleanup; + if (transport_fetch_refs(transport, mapped_refs)) + die(_("remote transport reported error")); } remote_head = find_ref_by_name(refs, "HEAD"); @@ -1380,9 +1379,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix) if (is_local) clone_local(path, git_dir); else if (refs && complete_refs_before_fetch) { - err = transport_fetch_refs(transport, mapped_refs); - if (err) - goto cleanup; + if (transport_fetch_refs(transport, mapped_refs)) + die(_("remote transport reported error")); } update_remote_refs(refs, mapped_refs, remote_head_points_at, @@ -1410,7 +1408,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix) junk_mode = JUNK_LEAVE_REPO; err = checkout(submodule_progress); -cleanup: free(remote_name); strbuf_release(&reflog_msg); strbuf_release(&branch_top); diff --git a/builtin/diff-index.c b/builtin/diff-index.c index 176fe7f..cf09559 100644 --- a/builtin/diff-index.c +++ b/builtin/diff-index.c @@ -2,6 +2,7 @@ #include "cache.h" #include "config.h" #include "diff.h" +#include "diff-merges.h" #include "commit.h" #include "revision.h" #include "builtin.h" @@ -27,6 +28,12 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix) rev.abbrev = 0; prefix = precompose_argv_prefix(argc, argv, prefix); + /* + * We need no diff for merges options, and we need to avoid conflict + * with our own meaning of "-m". + */ + diff_merges_suppress_options_parsing(); + argc = setup_revisions(argc, argv, &rev, NULL); for (i = 1; i < argc; i++) { const char *arg = argv[i]; @@ -35,6 +42,8 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix) option |= DIFF_INDEX_CACHED; else if (!strcmp(arg, "--merge-base")) option |= DIFF_INDEX_MERGE_BASE; + else if (!strcmp(arg, "-m")) + rev.match_missing = 1; else usage(diff_cache_usage); } diff --git a/builtin/fetch.c b/builtin/fetch.c index dfde96a..9191620 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -1126,7 +1126,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name, if (rm->status == REF_STATUS_REJECT_SHALLOW) { if (want_status == FETCH_HEAD_MERGE) - warning(_("reject %s because shallow roots are not allowed to be updated"), + warning(_("rejected %s because shallow roots are not allowed to be updated"), rm->peer_ref ? rm->peer_ref->name : rm->name); continue; } diff --git a/builtin/fsck.c b/builtin/fsck.c index 87a99b0..b42b6fe 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -109,7 +109,8 @@ static int fsck_error_func(struct fsck_options *o, static struct object_array pending; -static int mark_object(struct object *obj, int type, void *data, struct fsck_options *options) +static int mark_object(struct object *obj, enum object_type type, + void *data, struct fsck_options *options) { struct object *parent = data; diff --git a/builtin/init-db.c b/builtin/init-db.c index c19b35f..2167796 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -212,8 +212,9 @@ static int create_default_files(const char *template_path, * values (since we've just potentially changed what's available on * disk). */ - git_config_get_value("init.templatedir", &init_template_dir); + git_config_get_pathname("init.templatedir", &init_template_dir); copy_templates(template_path, init_template_dir); + free((char *)init_template_dir); git_config_clear(); reset_shared_repository(); git_config(git_default_config, NULL); diff --git a/builtin/merge.c b/builtin/merge.c index eddb8ae..a8a843b 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -56,8 +56,8 @@ struct strategy { static const char * const builtin_merge_usage[] = { N_("git merge [<options>] [<commit>...]"), - N_("git merge --abort"), - N_("git merge --continue"), + "git merge --abort", + "git merge --continue", NULL }; diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 6ded130..de00adb 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -37,6 +37,134 @@ #include "shallow.h" #include "promisor-remote.h" +/* + * Objects we are going to pack are collected in the `to_pack` structure. + * It contains an array (dynamically expanded) of the object data, and a map + * that can resolve SHA1s to their position in the array. + */ +static struct packing_data to_pack; + +static inline struct object_entry *oe_delta( + const struct packing_data *pack, + const struct object_entry *e) +{ + if (!e->delta_idx) + return NULL; + if (e->ext_base) + return &pack->ext_bases[e->delta_idx - 1]; + else + return &pack->objects[e->delta_idx - 1]; +} + +static inline unsigned long oe_delta_size(struct packing_data *pack, + const struct object_entry *e) +{ + if (e->delta_size_valid) + return e->delta_size_; + + /* + * pack->delta_size[] can't be NULL because oe_set_delta_size() + * must have been called when a new delta is saved with + * oe_set_delta(). + * If oe_delta() returns NULL (i.e. default state, which means + * delta_size_valid is also false), then the caller must never + * call oe_delta_size(). + */ + return pack->delta_size[e - pack->objects]; +} + +unsigned long oe_get_size_slow(struct packing_data *pack, + const struct object_entry *e); + +static inline unsigned long oe_size(struct packing_data *pack, + const struct object_entry *e) +{ + if (e->size_valid) + return e->size_; + + return oe_get_size_slow(pack, e); +} + +static inline void oe_set_delta(struct packing_data *pack, + struct object_entry *e, + struct object_entry *delta) +{ + if (delta) + e->delta_idx = (delta - pack->objects) + 1; + else + e->delta_idx = 0; +} + +static inline struct object_entry *oe_delta_sibling( + const struct packing_data *pack, + const struct object_entry *e) +{ + if (e->delta_sibling_idx) + return &pack->objects[e->delta_sibling_idx - 1]; + return NULL; +} + +static inline struct object_entry *oe_delta_child( + const struct packing_data *pack, + const struct object_entry *e) +{ + if (e->delta_child_idx) + return &pack->objects[e->delta_child_idx - 1]; + return NULL; +} + +static inline void oe_set_delta_child(struct packing_data *pack, + struct object_entry *e, + struct object_entry *delta) +{ + if (delta) + e->delta_child_idx = (delta - pack->objects) + 1; + else + e->delta_child_idx = 0; +} + +static inline void oe_set_delta_sibling(struct packing_data *pack, + struct object_entry *e, + struct object_entry *delta) +{ + if (delta) + e->delta_sibling_idx = (delta - pack->objects) + 1; + else + e->delta_sibling_idx = 0; +} + +static inline void oe_set_size(struct packing_data *pack, + struct object_entry *e, + unsigned long size) +{ + if (size < pack->oe_size_limit) { + e->size_ = size; + e->size_valid = 1; + } else { + e->size_valid = 0; + if (oe_get_size_slow(pack, e) != size) + BUG("'size' is supposed to be the object size!"); + } +} + +static inline void oe_set_delta_size(struct packing_data *pack, + struct object_entry *e, + unsigned long size) +{ + if (size < pack->oe_delta_size_limit) { + e->delta_size_ = size; + e->delta_size_valid = 1; + } else { + packing_data_lock(pack); + if (!pack->delta_size) + ALLOC_ARRAY(pack->delta_size, pack->nr_alloc); + packing_data_unlock(pack); + + pack->delta_size[e - pack->objects] = size; + e->delta_size_valid = 0; + } +} + #define IN_PACK(obj) oe_in_pack(&to_pack, obj) #define SIZE(obj) oe_size(&to_pack, obj) #define SET_SIZE(obj,size) oe_set_size(&to_pack, obj, size) @@ -56,13 +184,6 @@ static const char *pack_usage[] = { NULL }; -/* - * Objects we are going to pack are collected in the `to_pack` structure. - * It contains an array (dynamically expanded) of the object data, and a map - * that can resolve SHA1s to their position in the array. - */ -static struct packing_data to_pack; - static struct pack_idx_entry **written_list; static uint32_t nr_result, nr_written, nr_seen; static struct bitmap_index *bitmap_git; @@ -301,6 +422,17 @@ static void copy_pack_data(struct hashfile *f, } } +static inline int oe_size_greater_than(struct packing_data *pack, + const struct object_entry *lhs, + unsigned long rhs) +{ + if (lhs->size_valid) + return lhs->size_ > rhs; + if (rhs < pack->oe_size_limit) /* rhs < 2^x <= lhs ? */ + return 1; + return oe_get_size_slow(pack, lhs) > rhs; +} + /* Return 0 if we will bust the pack-size limit */ static unsigned long write_no_reuse_object(struct hashfile *f, struct object_entry *entry, unsigned long limit, int usable_delta) @@ -642,6 +774,14 @@ static int mark_tagged(const char *path, const struct object_id *oid, int flag, return 0; } +static inline unsigned char oe_layer(struct packing_data *pack, + struct object_entry *e) +{ + if (!pack->layer) + return 0; + return pack->layer[e - pack->objects]; +} + static inline void add_to_write_order(struct object_entry **wo, unsigned int *endp, struct object_entry *e) @@ -2231,6 +2371,26 @@ static pthread_mutex_t progress_mutex; * progress_mutex for protection. */ +static inline int oe_size_less_than(struct packing_data *pack, + const struct object_entry *lhs, + unsigned long rhs) +{ + if (lhs->size_valid) + return lhs->size_ < rhs; + if (rhs < pack->oe_size_limit) /* rhs < 2^x <= lhs ? */ + return 0; + return oe_get_size_slow(pack, lhs) < rhs; +} + +static inline void oe_set_tree_depth(struct packing_data *pack, + struct object_entry *e, + unsigned int tree_depth) +{ + if (!pack->tree_depth) + CALLOC_ARRAY(pack->tree_depth, pack->nr_alloc); + pack->tree_depth[e - pack->objects] = tree_depth; +} + /* * Return the size of the object without doing any delta * reconstruction (so non-deltas are true object sizes, but deltas diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 7af8dab..22c4e1a 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -435,11 +435,11 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix) /* get the usage up to the first line with a -- on it */ for (;;) { if (strbuf_getline(&sb, stdin) == EOF) - die("premature end of input"); + die(_("premature end of input")); ALLOC_GROW(usage, unb + 1, usz); if (!strcmp("--", sb.buf)) { if (unb < 1) - die("no usage string given before the `--' separator"); + die(_("no usage string given before the `--' separator")); usage[unb] = NULL; break; } @@ -545,7 +545,7 @@ static void die_no_single_rev(int quiet) if (quiet) exit(1); else - die("Needed a single revision"); + die(_("Needed a single revision")); } static const char builtin_rev_parse_usage[] = @@ -709,10 +709,10 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) if (!strcmp(arg, "--resolve-git-dir")) { const char *gitdir = argv[++i]; if (!gitdir) - die("--resolve-git-dir requires an argument"); + die(_("--resolve-git-dir requires an argument")); gitdir = resolve_gitdir(gitdir); if (!gitdir) - die("not a gitdir '%s'", argv[i]); + die(_("not a gitdir '%s'"), argv[i]); puts(gitdir); continue; } @@ -736,7 +736,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) if (!seen_end_of_options && *arg == '-') { if (!strcmp(arg, "--git-path")) { if (!argv[i + 1]) - die("--git-path requires an argument"); + die(_("--git-path requires an argument")); strbuf_reset(&buf); print_path(git_path("%s", argv[i + 1]), prefix, format, @@ -746,7 +746,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) } if (!strcmp(arg,"-n")) { if (++i >= argc) - die("-n requires an argument"); + die(_("-n requires an argument")); if ((filter & DO_FLAGS) && (filter & DO_REVS)) { show(arg); show(argv[i]); @@ -760,26 +760,26 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) } if (opt_with_value(arg, "--path-format", &arg)) { if (!arg) - die("--path-format requires an argument"); + die(_("--path-format requires an argument")); if (!strcmp(arg, "absolute")) { format = FORMAT_CANONICAL; } else if (!strcmp(arg, "relative")) { format = FORMAT_RELATIVE; } else { - die("unknown argument to --path-format: %s", arg); + die(_("unknown argument to --path-format: %s"), arg); } continue; } if (!strcmp(arg, "--default")) { def = argv[++i]; if (!def) - die("--default requires an argument"); + die(_("--default requires an argument")); continue; } if (!strcmp(arg, "--prefix")) { prefix = argv[++i]; if (!prefix) - die("--prefix requires an argument"); + die(_("--prefix requires an argument")); startup_info->prefix = prefix; output_prefix = 1; continue; @@ -848,7 +848,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) else if (!strcmp(arg, "loose")) abbrev_ref_strict = 0; else - die("unknown mode for --abbrev-ref: %s", + die(_("unknown mode for --abbrev-ref: %s"), arg); } continue; @@ -892,7 +892,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) if (work_tree) print_path(work_tree, prefix, format, DEFAULT_UNMODIFIED); else - die("this operation must be run in a work tree"); + die(_("this operation must be run in a work tree")); continue; } if (!strcmp(arg, "--show-superproject-working-tree")) { @@ -1020,7 +1020,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) if (strcmp(val, "storage") && strcmp(val, "input") && strcmp(val, "output")) - die("unknown mode for --show-object-format: %s", + die(_("unknown mode for --show-object-format: %s"), arg); puts(the_hash_algo->name); continue; @@ -1058,7 +1058,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) if (verify) die_no_single_rev(quiet); if (has_dashdash) - die("bad revision '%s'", arg); + die(_("bad revision '%s'"), arg); as_is = 1; if (!show_file(arg, output_prefix)) continue; diff --git a/builtin/stash.c b/builtin/stash.c index 01066d7..9c72e4b 100644 --- a/builtin/stash.c +++ b/builtin/stash.c @@ -26,7 +26,7 @@ static const char * const git_stash_usage[] = { N_("git stash drop [-q|--quiet] [<stash>]"), N_("git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]"), N_("git stash branch <branchname> [<stash>]"), - N_("git stash clear"), + "git stash clear", N_("git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n" " [-u|--include-untracked] [-a|--all] [-m|--message <message>]\n" " [--pathspec-from-file=<file> [--pathspec-file-nul]]\n" @@ -67,7 +67,7 @@ static const char * const git_stash_branch_usage[] = { }; static const char * const git_stash_clear_usage[] = { - N_("git stash clear"), + "git stash clear", NULL }; @@ -761,7 +761,7 @@ static int list_stash(int argc, const char **argv, const char *prefix) cp.git_cmd = 1; strvec_pushl(&cp.args, "log", "--format=%gd: %gs", "-g", - "--first-parent", "-m", NULL); + "--first-parent", NULL); strvec_pushv(&cp.args, argv); strvec_push(&cp.args, ref_stash); strvec_push(&cp.args, "--"); diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index d55f626..ae6174a 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -1300,7 +1300,7 @@ static int module_summary(int argc, const char **argv, const char *prefix) OPT_BOOL(0, "cached", &cached, N_("use the commit stored in the index instead of the submodule HEAD")), OPT_BOOL(0, "files", &files, - N_("to compare the commit in the index with that in the submodule HEAD")), + N_("compare the commit in the index with that in the submodule HEAD")), OPT_BOOL(0, "for-status", &for_status, N_("skip submodules with 'ignore_config' value set to 'all'")), OPT_INTEGER('n', "summary-limit", &summary_limit, diff --git a/chunk-format.c b/chunk-format.c index da191e5..1c3dca6 100644 --- a/chunk-format.c +++ b/chunk-format.c @@ -58,9 +58,11 @@ void add_chunk(struct chunkfile *cf, int write_chunkfile(struct chunkfile *cf, void *data) { - int i; + int i, result = 0; uint64_t cur_offset = hashfile_total(cf->f); + trace2_region_enter("chunkfile", "write", the_repository); + /* Add the table of contents to the current offset */ cur_offset += (cf->chunks_nr + 1) * CHUNK_TOC_ENTRY_SIZE; @@ -77,10 +79,10 @@ int write_chunkfile(struct chunkfile *cf, void *data) for (i = 0; i < cf->chunks_nr; i++) { off_t start_offset = hashfile_total(cf->f); - int result = cf->chunks[i].write_fn(cf->f, data); + result = cf->chunks[i].write_fn(cf->f, data); if (result) - return result; + goto cleanup; if (hashfile_total(cf->f) - start_offset != cf->chunks[i].size) BUG("expected to write %"PRId64" bytes to chunk %"PRIx32", but wrote %"PRId64" instead", @@ -88,7 +90,9 @@ int write_chunkfile(struct chunkfile *cf, void *data) hashfile_total(cf->f) - start_offset); } - return 0; +cleanup: + trace2_region_leave("chunkfile", "write", the_repository); + return result; } int read_table_of_contents(struct chunkfile *cf, diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 3c5739b..b50c5d0 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1306,7 +1306,7 @@ __git_count_arguments () local word i c=0 # Skip "git" (first argument) - for ((i="$__git_cmd_idx"; i < ${#words[@]}; i++)); do + for ((i=$__git_cmd_idx; i < ${#words[@]}; i++)); do word="${words[i]}" case "$word" in diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index 6c56296..cac6f61 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -251,7 +251,7 @@ __git_zsh_main () done ;; (arg) - local command="${words[1]}" __git_dir + local command="${words[1]}" __git_dir __git_cmd_idx=1 if (( $+opt_args[--bare] )); then __git_dir='.' diff --git a/csum-file.c b/csum-file.c index 7510950..3487d28 100644 --- a/csum-file.c +++ b/csum-file.c @@ -11,35 +11,33 @@ #include "progress.h" #include "csum-file.h" +static void verify_buffer_or_die(struct hashfile *f, + const void *buf, + unsigned int count) +{ + ssize_t ret = read_in_full(f->check_fd, f->check_buffer, count); + + if (ret < 0) + die_errno("%s: sha1 file read error", f->name); + if (ret != count) + die("%s: sha1 file truncated", f->name); + if (memcmp(buf, f->check_buffer, count)) + die("sha1 file '%s' validation error", f->name); +} + static void flush(struct hashfile *f, const void *buf, unsigned int count) { - if (0 <= f->check_fd && count) { - unsigned char check_buffer[8192]; - ssize_t ret = read_in_full(f->check_fd, check_buffer, count); - - if (ret < 0) - die_errno("%s: sha1 file read error", f->name); - if (ret != count) - die("%s: sha1 file truncated", f->name); - if (memcmp(buf, check_buffer, count)) - die("sha1 file '%s' validation error", f->name); - } + if (0 <= f->check_fd && count) + verify_buffer_or_die(f, buf, count); - for (;;) { - int ret = xwrite(f->fd, buf, count); - if (ret > 0) { - f->total += ret; - display_throughput(f->tp, f->total); - buf = (char *) buf + ret; - count -= ret; - if (count) - continue; - return; - } - if (!ret) + if (write_in_full(f->fd, buf, count) < 0) { + if (errno == ENOSPC) die("sha1 file '%s' write error. Out of diskspace", f->name); die_errno("sha1 file '%s' write error", f->name); } + + f->total += count; + display_throughput(f->tp, f->total); } void hashflush(struct hashfile *f) @@ -53,6 +51,13 @@ void hashflush(struct hashfile *f) } } +static void free_hashfile(struct hashfile *f) +{ + free(f->buffer); + free(f->check_buffer); + free(f); +} + int finalize_hashfile(struct hashfile *f, unsigned char *result, unsigned int flags) { int fd; @@ -82,20 +87,20 @@ int finalize_hashfile(struct hashfile *f, unsigned char *result, unsigned int fl if (close(f->check_fd)) die_errno("%s: sha1 file error on close", f->name); } - free(f); + free_hashfile(f); return fd; } void hashwrite(struct hashfile *f, const void *buf, unsigned int count) { while (count) { - unsigned left = sizeof(f->buffer) - f->offset; + unsigned left = f->buffer_len - f->offset; unsigned nr = count > left ? left : count; if (f->do_crc) f->crc32 = crc32(f->crc32, buf, nr); - if (nr == sizeof(f->buffer)) { + if (nr == f->buffer_len) { /* * Flush a full batch worth of data directly * from the input, skipping the memcpy() to @@ -121,11 +126,6 @@ void hashwrite(struct hashfile *f, const void *buf, unsigned int count) } } -struct hashfile *hashfd(int fd, const char *name) -{ - return hashfd_throughput(fd, name, NULL); -} - struct hashfile *hashfd_check(const char *name) { int sink, check; @@ -139,10 +139,14 @@ struct hashfile *hashfd_check(const char *name) die_errno("unable to open '%s'", name); f = hashfd(sink, name); f->check_fd = check; + f->check_buffer = xmalloc(f->buffer_len); + return f; } -struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp) +static struct hashfile *hashfd_internal(int fd, const char *name, + struct progress *tp, + size_t buffer_len) { struct hashfile *f = xmalloc(sizeof(*f)); f->fd = fd; @@ -153,9 +157,35 @@ struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp f->name = name; f->do_crc = 0; the_hash_algo->init_fn(&f->ctx); + + f->buffer_len = buffer_len; + f->buffer = xmalloc(buffer_len); + f->check_buffer = NULL; + return f; } +struct hashfile *hashfd(int fd, const char *name) +{ + /* + * Since we are not going to use a progress meter to + * measure the rate of data passing through this hashfile, + * use a larger buffer size to reduce fsync() calls. + */ + return hashfd_internal(fd, name, NULL, 128 * 1024); +} + +struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp) +{ + /* + * Since we are expecting to report progress of the + * write into this hashfile, use a smaller buffer + * size so the progress indicators arrive at a more + * frequent rate. + */ + return hashfd_internal(fd, name, tp, 8 * 1024); +} + void hashfile_checkpoint(struct hashfile *f, struct hashfile_checkpoint *checkpoint) { hashflush(f); diff --git a/csum-file.h b/csum-file.h index e54d53d..3044bd1 100644 --- a/csum-file.h +++ b/csum-file.h @@ -16,7 +16,9 @@ struct hashfile { const char *name; int do_crc; uint32_t crc32; - unsigned char buffer[8192]; + size_t buffer_len; + unsigned char *buffer; + unsigned char *check_buffer; }; /* Checkpoint */ diff --git a/diff-merges.c b/diff-merges.c index f3a9dae..0dfcaa1 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -6,6 +6,7 @@ typedef void (*diff_merges_setup_func_t)(struct rev_info *); static void set_separate(struct rev_info *revs); static diff_merges_setup_func_t set_to_default = set_separate; +static int suppress_parsing; static void suppress(struct rev_info *revs) { @@ -14,7 +15,7 @@ static void suppress(struct rev_info *revs) revs->combine_merges = 0; revs->dense_combined_merges = 0; revs->combined_all_paths = 0; - revs->combined_imply_patch = 0; + revs->merges_imply_patch = 0; revs->merges_need_diff = 0; } @@ -30,17 +31,6 @@ static void set_first_parent(struct rev_info *revs) revs->first_parent_merges = 1; } -static void set_m(struct rev_info *revs) -{ - /* - * To "diff-index", "-m" means "match missing", and to the "log" - * family of commands, it means "show default diff for merges". Set - * both fields appropriately. - */ - set_to_default(revs); - revs->match_missing = 1; -} - static void set_combined(struct rev_info *revs) { suppress(revs); @@ -101,20 +91,29 @@ int diff_merges_config(const char *value) return 0; } +void diff_merges_suppress_options_parsing(void) +{ + suppress_parsing = 1; +} + int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { int argcount = 1; const char *optarg; const char *arg = argv[0]; + if (suppress_parsing) + return 0; + if (!strcmp(arg, "-m")) { - set_m(revs); + set_to_default(revs); + revs->merges_imply_patch = 1; } else if (!strcmp(arg, "-c")) { set_combined(revs); - revs->combined_imply_patch = 1; + revs->merges_imply_patch = 1; } else if (!strcmp(arg, "--cc")) { set_dense_combined(revs); - revs->combined_imply_patch = 1; + revs->merges_imply_patch = 1; } else if (!strcmp(arg, "--no-diff-merges")) { suppress(revs); } else if (!strcmp(arg, "--combined-all-paths")) { @@ -155,15 +154,18 @@ void diff_merges_set_dense_combined_if_unset(struct rev_info *revs) void diff_merges_setup_revs(struct rev_info *revs) { + if (suppress_parsing) + return; + if (revs->combine_merges == 0) revs->dense_combined_merges = 0; if (revs->separate_merges == 0) revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); - if (revs->combined_imply_patch) + if (revs->merges_imply_patch) revs->diff = 1; - if (revs->combined_imply_patch || revs->merges_need_diff) { + if (revs->merges_imply_patch || revs->merges_need_diff) { if (!revs->diffopt.output_format) revs->diffopt.output_format = DIFF_FORMAT_PATCH; } diff --git a/diff-merges.h b/diff-merges.h index 09d9a6c..b5d57f6 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -11,6 +11,8 @@ struct rev_info; int diff_merges_config(const char *value); +void diff_merges_suppress_options_parsing(void); + int diff_merges_parse_opts(struct rev_info *revs, const char **argv); void diff_merges_suppress(struct rev_info *revs); diff --git a/diffcore-rename.c b/diffcore-rename.c index 963ca58..3375e24 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -568,7 +568,8 @@ static void update_dir_rename_counts(struct dir_rename_info *info, static void initialize_dir_rename_info(struct dir_rename_info *info, struct strintmap *relevant_sources, struct strintmap *dirs_removed, - struct strmap *dir_rename_count) + struct strmap *dir_rename_count, + struct strmap *cached_pairs) { struct hashmap_iter iter; struct strmap_entry *entry; @@ -633,6 +634,17 @@ static void initialize_dir_rename_info(struct dir_rename_info *info, rename_dst[i].p->two->path); } + /* Add cached_pairs to counts */ + strmap_for_each_entry(cached_pairs, &iter, entry) { + const char *old_name = entry->key; + const char *new_name = entry->value; + if (!new_name) + /* known delete; ignore it */ + continue; + + update_dir_rename_counts(info, dirs_removed, old_name, new_name); + } + /* * Now we collapse * dir_rename_count: old_directory -> {new_directory -> count} @@ -1247,7 +1259,8 @@ static void handle_early_known_dir_renames(struct dir_rename_info *info, void diffcore_rename_extended(struct diff_options *options, struct strintmap *relevant_sources, struct strintmap *dirs_removed, - struct strmap *dir_rename_count) + struct strmap *dir_rename_count, + struct strmap *cached_pairs) { int detect_rename = options->detect_rename; int minimum_score = options->rename_score; @@ -1363,7 +1376,8 @@ void diffcore_rename_extended(struct diff_options *options, /* Preparation for basename-driven matching. */ trace2_region_enter("diff", "dir rename setup", options->repo); initialize_dir_rename_info(&info, relevant_sources, - dirs_removed, dir_rename_count); + dirs_removed, dir_rename_count, + cached_pairs); trace2_region_leave("diff", "dir rename setup", options->repo); /* Utilize file basenames to quickly find renames. */ @@ -1560,5 +1574,5 @@ void diffcore_rename_extended(struct diff_options *options, void diffcore_rename(struct diff_options *options) { - diffcore_rename_extended(options, NULL, NULL, NULL); + diffcore_rename_extended(options, NULL, NULL, NULL, NULL); } @@ -181,7 +181,8 @@ void diffcore_rename(struct diff_options *); void diffcore_rename_extended(struct diff_options *options, struct strintmap *relevant_sources, struct strintmap *dirs_removed, - struct strmap *dir_rename_count); + struct strmap *dir_rename_count, + struct strmap *cached_pairs); void diffcore_merge_broken(void); void diffcore_pickaxe(struct diff_options *); void diffcore_order(const char *orderfile); @@ -59,8 +59,7 @@ void dir_init(struct dir_struct *dir) memset(dir, 0, sizeof(*dir)); } -struct dirent * -readdir_skip_dot_and_dotdot(DIR *dirp) +struct dirent *readdir_skip_dot_and_dotdot(DIR *dirp) { struct dirent *e; diff --git a/fetch-pack.c b/fetch-pack.c index c135635..b0c7be7 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -1645,6 +1645,15 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, if (process_section_header(&reader, "packfile-uris", 1)) receive_packfile_uris(&reader, &packfile_uris); process_section_header(&reader, "packfile", 0); + + /* + * this is the final request we'll make of the server; + * do a half-duplex shutdown to indicate that they can + * hang up as soon as the pack is sent. + */ + close(fd[1]); + fd[1] = -1; + if (get_pack(args, fd, pack_lockfiles, packfile_uris.nr ? &index_pack_args : NULL, sought, nr_sought, &fsck_options.gitmodules_found)) diff --git a/git-compat-util.h b/git-compat-util.h index a508dbe..fb6e9af 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -986,11 +986,9 @@ static inline char *xstrdup_or_null(const char *str) static inline size_t xsize_t(off_t len) { - size_t size = (size_t) len; - - if (len != (off_t) size) + if (len < 0 || (uintmax_t) len > SIZE_MAX) die("Cannot handle files this big"); - return size; + return (size_t) len; } __attribute__((format (printf, 3, 4))) diff --git a/git-send-email.perl b/git-send-email.perl index 175da07..7ba0b34 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -70,6 +70,7 @@ git send-email --dump-aliases Sending: --envelope-sender <str> * Email envelope sender. + --sendmail-cmd <str> * Command to run to send email. --smtp-server <str:int> * Outgoing SMTP server to use. The port is optional. Default 'localhost'. --smtp-server-option <str> * Outgoing SMTP server option to use. @@ -219,8 +220,18 @@ sub system_or_msg { my $exit_code = $? >> 8; return unless $signalled or $exit_code; + my @sprintf_args = ($args->[0], $exit_code); + if (defined $msg) { + # Quiet the 'redundant' warning category, except we + # need to support down to Perl 5.8, so we can't do a + # "no warnings 'redundant'", since that category was + # introduced in perl 5.22, and asking for it will die + # on older perls. + no warnings; + return sprintf($msg, @sprintf_args); + } return sprintf(__("fatal: command '%s' died with exit code %d"), - $args->[0], $exit_code); + @sprintf_args); } sub system_or_die { @@ -252,6 +263,7 @@ my ($confirm); my (@suppress_cc); my ($auto_8bit_encoding); my ($compose_encoding); +my ($sendmail_cmd); # Variables with corresponding config settings & hardcoded defaults my ($debug_net_smtp) = 0; # Net::SMTP, see send_message() my $thread = 1; @@ -299,6 +311,7 @@ my %config_settings = ( "assume8bitencoding" => \$auto_8bit_encoding, "composeencoding" => \$compose_encoding, "transferencoding" => \$target_xfer_encoding, + "sendmailcmd" => \$sendmail_cmd, ); my %config_path_settings = ( @@ -432,6 +445,7 @@ $rc = GetOptions( "no-bcc" => \$no_bcc, "chain-reply-to!" => \$chain_reply_to, "no-chain-reply-to" => sub {$chain_reply_to = 0}, + "sendmail-cmd=s" => \$sendmail_cmd, "smtp-server=s" => \$smtp_server, "smtp-server-option=s" => \@smtp_server_options, "smtp-server-port=s" => \$smtp_server_port, @@ -1003,16 +1017,19 @@ if (defined $reply_to) { $reply_to = sanitize_address($reply_to); } -if (!defined $smtp_server) { +if (!defined $sendmail_cmd && !defined $smtp_server) { my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail ); push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH}; foreach (@sendmail_paths) { if (-x $_) { - $smtp_server = $_; + $sendmail_cmd = $_; last; } } - $smtp_server ||= 'localhost'; # could be 127.0.0.1, too... *shrug* + + if (!defined $sendmail_cmd) { + $smtp_server = 'localhost'; # could be 127.0.0.1, too... *shrug* + } } if ($compose && $compose > 0) { @@ -1492,11 +1509,17 @@ EOF if ($dry_run) { # We don't want to send the email. - } elsif (file_name_is_absolute($smtp_server)) { + } elsif (defined $sendmail_cmd || file_name_is_absolute($smtp_server)) { my $pid = open my $sm, '|-'; defined $pid or die $!; if (!$pid) { - exec($smtp_server, @sendmail_parameters) or die $!; + if (defined $sendmail_cmd) { + exec ("sh", "-c", "$sendmail_cmd \"\$@\"", "-", @sendmail_parameters) + or die $!; + } else { + exec ($smtp_server, @sendmail_parameters) + or die $!; + } } print $sm "$header\n$message"; close $sm or die $!; @@ -1592,14 +1615,21 @@ EOF printf($dry_run ? __("Dry-Sent %s\n") : __("Sent %s\n"), $subject); } else { print($dry_run ? __("Dry-OK. Log says:\n") : __("OK. Log says:\n")); - if (!file_name_is_absolute($smtp_server)) { + if (!defined $sendmail_cmd && !file_name_is_absolute($smtp_server)) { print "Server: $smtp_server\n"; print "MAIL FROM:<$raw_from>\n"; foreach my $entry (@recipients) { print "RCPT TO:<$entry>\n"; } } else { - print "Sendmail: $smtp_server ".join(' ',@sendmail_parameters)."\n"; + my $sm; + if (defined $sendmail_cmd) { + $sm = $sendmail_cmd; + } else { + $sm = $smtp_server; + } + + print "Sendmail: $sm ".join(' ',@sendmail_parameters)."\n"; } print $header, "\n"; if ($smtp) { @@ -1949,7 +1979,8 @@ sub validate_patch { my ($fn, $xfer_encoding) = @_; if ($repo) { - my $validate_hook = catfile($repo->hooks_path(), + my $hooks_path = $repo->command_oneline('rev-parse', '--git-path', 'hooks'); + my $validate_hook = catfile($hooks_path, 'sendemail-validate'); my $hook_error; if (-x $validate_hook) { @@ -263,6 +263,22 @@ static inline void oidcpy(struct object_id *dst, const struct object_id *src) dst->algo = src->algo; } +/* Like oidcpy() but zero-pads the unused bytes in dst's hash array. */ +static inline void oidcpy_with_padding(struct object_id *dst, + struct object_id *src) +{ + size_t hashsz; + + if (!src->algo) + hashsz = the_hash_algo->rawsz; + else + hashsz = hash_algos[src->algo].rawsz; + + memcpy(dst->hash, src->hash, hashsz); + memset(dst->hash + hashsz, 0, GIT_MAX_RAWSZ - hashsz); + dst->algo = src->algo; +} + static inline struct object_id *oiddup(const struct object_id *src) { struct object_id *dst = xmalloc(sizeof(struct object_id)); diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c index 96a605c..fd8d59f 100644 --- a/list-objects-filter-options.c +++ b/list-objects-filter-options.c @@ -102,7 +102,7 @@ static int gently_parse_list_objects_filter( } else if (skip_prefix(arg, "object:type=", &v0)) { int type = type_from_string_gently(v0, strlen(v0), 1); if (type < 0) { - strbuf_addf(errbuf, _("'%s' for 'object:type=<type>' is" + strbuf_addf(errbuf, _("'%s' for 'object:type=<type>' is " "not a valid object type"), v0); return 1; } @@ -19,7 +19,7 @@ static void cleanup_space(struct strbuf *sb) static void get_sane_name(struct strbuf *out, struct strbuf *name, struct strbuf *email) { struct strbuf *src = name; - if (name->len < 3 || 60 < name->len || strpbrk(name->buf, "@<>")) + if (!name->len || 60 < name->len || strpbrk(name->buf, "@<>")) src = email; else if (name == out) return; diff --git a/merge-ort.c b/merge-ort.c index 4a9ce2a..b954f71 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -53,6 +53,8 @@ enum merge_side { MERGE_SIDE2 = 2 }; +static unsigned RESULT_INITIALIZED = 0x1abe11ed; /* unlikely accidental value */ + struct traversal_callback_data { unsigned long mask; unsigned long dirmask; @@ -141,6 +143,72 @@ struct rename_info { char *callback_data_traverse_path; /* + * merge_trees: trees passed to the merge algorithm for the merge + * + * merge_trees records the trees passed to the merge algorithm. But, + * this data also is stored in merge_result->priv. If a sequence of + * merges are being done (such as when cherry-picking or rebasing), + * the next merge can look at this and re-use information from + * previous merges under certain circumstances. + * + * See also all the cached_* variables. + */ + struct tree *merge_trees[3]; + + /* + * cached_pairs_valid_side: which side's cached info can be reused + * + * See the description for merge_trees. For repeated merges, at most + * only one side's cached information can be used. Valid values: + * MERGE_SIDE2: cached data from side2 can be reused + * MERGE_SIDE1: cached data from side1 can be reused + * 0: no cached data can be reused + */ + int cached_pairs_valid_side; + + /* + * cached_pairs: Caching of renames and deletions. + * + * These are mappings recording renames and deletions of individual + * files (not directories). They are thus a map from an old + * filename to either NULL (for deletions) or a new filename (for + * renames). + */ + struct strmap cached_pairs[3]; + + /* + * cached_target_names: just the destinations from cached_pairs + * + * We sometimes want a fast lookup to determine if a given filename + * is one of the destinations in cached_pairs. cached_target_names + * is thus duplicative information, but it provides a fast lookup. + */ + struct strset cached_target_names[3]; + + /* + * cached_irrelevant: Caching of rename_sources that aren't relevant. + * + * If we try to detect a rename for a source path and succeed, it's + * part of a rename. If we try to detect a rename for a source path + * and fail, then it's a delete. If we do not try to detect a rename + * for a path, then we don't know if it's a rename or a delete. If + * merge-ort doesn't think the path is relevant, then we just won't + * cache anything for that path. But there's a slight problem in + * that merge-ort can think a path is RELEVANT_LOCATION, but due to + * commit 9bd342137e ("diffcore-rename: determine which + * relevant_sources are no longer relevant", 2021-03-13), + * diffcore-rename can downgrade the path to RELEVANT_NO_MORE. To + * avoid excessive calls to diffcore_rename_extended() we still need + * to cache such paths, though we cannot record them as either + * renames or deletes. So we cache them here as a "turned out to be + * irrelevant *for this commit*" as they are often also irrelevant + * for subsequent commits, though we will have to do some extra + * checking to see whether such paths become relevant for rename + * detection when cherry-picking/rebasing subsequent commits. + */ + struct strset cached_irrelevant[3]; + + /* * needed_limit: value needed for inexact rename detection to run * * If the current rename limit wasn't high enough for inexact @@ -382,6 +450,8 @@ static void clear_or_reinit_internal_opts(struct merge_options_internal *opti, reinitialize ? strmap_partial_clear : strmap_clear; void (*strintmap_func)(struct strintmap *) = reinitialize ? strintmap_partial_clear : strintmap_clear; + void (*strset_func)(struct strset *) = + reinitialize ? strset_partial_clear : strset_clear; /* * We marked opti->paths with strdup_strings = 0, so that we @@ -417,15 +487,21 @@ static void clear_or_reinit_internal_opts(struct merge_options_internal *opti, /* Free memory used by various renames maps */ for (i = MERGE_SIDE1; i <= MERGE_SIDE2; ++i) { strintmap_func(&renames->dirs_removed[i]); - - partial_clear_dir_rename_count(&renames->dir_rename_count[i]); - if (!reinitialize) - strmap_clear(&renames->dir_rename_count[i], 1); - strmap_func(&renames->dir_renames[i], 0); - strintmap_func(&renames->relevant_sources[i]); + if (!reinitialize) + assert(renames->cached_pairs_valid_side == 0); + if (i != renames->cached_pairs_valid_side) { + strset_func(&renames->cached_target_names[i]); + strmap_func(&renames->cached_pairs[i], 1); + strset_func(&renames->cached_irrelevant[i]); + partial_clear_dir_rename_count(&renames->dir_rename_count[i]); + if (!reinitialize) + strmap_clear(&renames->dir_rename_count[i], 1); + } } + renames->cached_pairs_valid_side = 0; + renames->dir_rename_mask = 0; if (!reinitialize) { struct hashmap_iter iter; @@ -448,8 +524,6 @@ static void clear_or_reinit_internal_opts(struct merge_options_internal *opti, strmap_clear(&opti->output, 0); } - renames->dir_rename_mask = 0; - /* Clean out callback_data as well. */ FREE_AND_NULL(renames->callback_data); renames->callback_data_nr = renames->callback_data_alloc = 0; @@ -690,15 +764,48 @@ static void add_pair(struct merge_options *opt, struct rename_info *renames = &opt->priv->renames; int names_idx = is_add ? side : 0; - if (!is_add) { + if (is_add) { + if (strset_contains(&renames->cached_target_names[side], + pathname)) + return; + } else { unsigned content_relevant = (match_mask == 0); unsigned location_relevant = (dir_rename_mask == 0x07); + /* + * If pathname is found in cached_irrelevant[side] due to + * previous pick but for this commit content is relevant, + * then we need to remove it from cached_irrelevant. + */ + if (content_relevant) + /* strset_remove is no-op if strset doesn't have key */ + strset_remove(&renames->cached_irrelevant[side], + pathname); + + /* + * We do not need to re-detect renames for paths that we already + * know the pairing, i.e. for cached_pairs (or + * cached_irrelevant). However, handle_deferred_entries() needs + * to loop over the union of keys from relevant_sources[side] and + * cached_pairs[side], so for simplicity we set relevant_sources + * for all the cached_pairs too and then strip them back out in + * prune_cached_from_relevant() at the beginning of + * detect_regular_renames(). + */ if (content_relevant || location_relevant) { /* content_relevant trumps location_relevant */ strintmap_set(&renames->relevant_sources[side], pathname, content_relevant ? RELEVANT_CONTENT : RELEVANT_LOCATION); } + + /* + * Avoid creating pair if we've already cached rename results. + * Note that we do this after setting relevant_sources[side] + * as noted in the comment above. + */ + if (strmap_contains(&renames->cached_pairs[side], pathname) || + strset_contains(&renames->cached_irrelevant[side], pathname)) + return; } one = alloc_filespec(pathname); @@ -2037,6 +2144,9 @@ static int process_renames(struct merge_options *opt, VERIFY_CI(side2); if (!strcmp(pathnames[1], pathnames[2])) { + struct rename_info *ri = &opt->priv->renames; + int j; + /* Both sides renamed the same way */ assert(side1 == side2); memcpy(&side1->stages[0], &base->stages[0], @@ -2046,6 +2156,16 @@ static int process_renames(struct merge_options *opt, base->merged.is_null = 1; base->merged.clean = 1; + /* + * Disable remembering renames optimization; + * rename/rename(1to1) is incredibly rare, and + * just disabling the optimization is easier + * than purging cached_pairs, + * cached_target_names, and dir_rename_counts. + */ + for (j = 0; j < 3; j++) + ri->merge_trees[j] = NULL; + /* We handled both renames, i.e. i+1 handled */ i++; /* Move to next rename */ @@ -2273,7 +2393,9 @@ static inline int possible_side_renames(struct rename_info *renames, static inline int possible_renames(struct rename_info *renames) { return possible_side_renames(renames, 1) || - possible_side_renames(renames, 2); + possible_side_renames(renames, 2) || + !strmap_empty(&renames->cached_pairs[1]) || + !strmap_empty(&renames->cached_pairs[2]); } static void resolve_diffpair_statuses(struct diff_queue_struct *q) @@ -2297,6 +2419,112 @@ static void resolve_diffpair_statuses(struct diff_queue_struct *q) } } +static void prune_cached_from_relevant(struct rename_info *renames, + unsigned side) +{ + /* Reason for this function described in add_pair() */ + struct hashmap_iter iter; + struct strmap_entry *entry; + + /* Remove from relevant_sources all entries in cached_pairs[side] */ + strmap_for_each_entry(&renames->cached_pairs[side], &iter, entry) { + strintmap_remove(&renames->relevant_sources[side], + entry->key); + } + /* Remove from relevant_sources all entries in cached_irrelevant[side] */ + strset_for_each_entry(&renames->cached_irrelevant[side], &iter, entry) { + strintmap_remove(&renames->relevant_sources[side], + entry->key); + } +} + +static void use_cached_pairs(struct merge_options *opt, + struct strmap *cached_pairs, + struct diff_queue_struct *pairs) +{ + struct hashmap_iter iter; + struct strmap_entry *entry; + + /* + * Add to side_pairs all entries from renames->cached_pairs[side_index]. + * (Info in cached_irrelevant[side_index] is not relevant here.) + */ + strmap_for_each_entry(cached_pairs, &iter, entry) { + struct diff_filespec *one, *two; + const char *old_name = entry->key; + const char *new_name = entry->value; + if (!new_name) + new_name = old_name; + + /* We don't care about oid/mode, only filenames and status */ + one = alloc_filespec(old_name); + two = alloc_filespec(new_name); + diff_queue(pairs, one, two); + pairs->queue[pairs->nr-1]->status = entry->value ? 'R' : 'D'; + } +} + +static void cache_new_pair(struct rename_info *renames, + int side, + char *old_path, + char *new_path, + int free_old_value) +{ + char *old_value; + new_path = xstrdup(new_path); + old_value = strmap_put(&renames->cached_pairs[side], + old_path, new_path); + strset_add(&renames->cached_target_names[side], new_path); + if (free_old_value) + free(old_value); + else + assert(!old_value); +} + +static void possibly_cache_new_pair(struct rename_info *renames, + struct diff_filepair *p, + unsigned side, + char *new_path) +{ + int dir_renamed_side = 0; + + if (new_path) { + /* + * Directory renames happen on the other side of history from + * the side that adds new files to the old directory. + */ + dir_renamed_side = 3 - side; + } else { + int val = strintmap_get(&renames->relevant_sources[side], + p->one->path); + if (val == RELEVANT_NO_MORE) { + assert(p->status == 'D'); + strset_add(&renames->cached_irrelevant[side], + p->one->path); + } + if (val <= 0) + return; + } + + if (p->status == 'D') { + /* + * If we already had this delete, we'll just set it's value + * to NULL again, so no harm. + */ + strmap_put(&renames->cached_pairs[side], p->one->path, NULL); + } else if (p->status == 'R') { + if (!new_path) + new_path = p->two->path; + else + cache_new_pair(renames, dir_renamed_side, + p->two->path, new_path, 0); + cache_new_pair(renames, side, p->one->path, new_path, 1); + } else if (p->status == 'A' && new_path) { + cache_new_pair(renames, dir_renamed_side, + p->two->path, new_path, 0); + } +} + static int compare_pairs(const void *a_, const void *b_) { const struct diff_filepair *a = *((const struct diff_filepair **)a_); @@ -2312,6 +2540,7 @@ static void detect_regular_renames(struct merge_options *opt, struct diff_options diff_opts; struct rename_info *renames = &opt->priv->renames; + prune_cached_from_relevant(renames, side_index); if (!possible_side_renames(renames, side_index)) { /* * No rename detection needed for this side, but we still need @@ -2322,6 +2551,7 @@ static void detect_regular_renames(struct merge_options *opt, return; } + partial_clear_dir_rename_count(&renames->dir_rename_count[side_index]); repo_diff_setup(opt->repo, &diff_opts); diff_opts.flags.recursive = 1; diff_opts.flags.rename_empty = 0; @@ -2339,7 +2569,8 @@ static void detect_regular_renames(struct merge_options *opt, diffcore_rename_extended(&diff_opts, &renames->relevant_sources[side_index], &renames->dirs_removed[side_index], - &renames->dir_rename_count[side_index]); + &renames->dir_rename_count[side_index], + &renames->cached_pairs[side_index]); trace2_region_leave("diff", "diffcore_rename", opt->repo); resolve_diffpair_statuses(&diff_queued_diff); @@ -2379,6 +2610,7 @@ static int collect_renames(struct merge_options *opt, char *new_path; /* non-NULL only with directory renames */ if (p->status != 'A' && p->status != 'R') { + possibly_cache_new_pair(renames, p, side_index, NULL); diff_free_filepair(p); continue; } @@ -2390,6 +2622,7 @@ static int collect_renames(struct merge_options *opt, &collisions, &clean); + possibly_cache_new_pair(renames, p, side_index, new_path); if (p->status != 'R' && !new_path) { diff_free_filepair(p); continue; @@ -2445,6 +2678,8 @@ static int detect_and_process_renames(struct merge_options *opt, trace2_region_enter("merge", "regular renames", opt->repo); detect_regular_renames(opt, MERGE_SIDE1); detect_regular_renames(opt, MERGE_SIDE2); + use_cached_pairs(opt, &renames->cached_pairs[1], &renames->pairs[1]); + use_cached_pairs(opt, &renames->cached_pairs[2], &renames->pairs[2]); trace2_region_leave("merge", "regular renames", opt->repo); trace2_region_enter("merge", "directory renames", opt->repo); @@ -3635,6 +3870,10 @@ static void merge_start(struct merge_options *opt, struct merge_result *result) assert(opt->obuf.len == 0); assert(opt->priv == NULL); + if (result->_properly_initialized != 0 && + result->_properly_initialized != RESULT_INITIALIZED) + BUG("struct merge_result passed to merge_incore_*recursive() must be zeroed or filled with values from a previous run"); + assert(!!result->priv == !!result->_properly_initialized); if (result->priv) { opt->priv = result->priv; result->priv = NULL; @@ -3674,8 +3913,22 @@ static void merge_start(struct merge_options *opt, struct merge_result *result) NULL, 1); strmap_init_with_options(&renames->dir_renames[i], NULL, 0); + /* + * relevant_sources uses -1 for the default, because we need + * to be able to distinguish not-in-strintmap from valid + * relevant_source values from enum file_rename_relevance. + * In particular, possibly_cache_new_pair() expects a negative + * value for not-found entries. + */ strintmap_init_with_options(&renames->relevant_sources[i], - 0, NULL, 0); + -1 /* explicitly invalid */, + NULL, 0); + strmap_init_with_options(&renames->cached_pairs[i], + NULL, 1); + strset_init_with_options(&renames->cached_irrelevant[i], + NULL, 1); + strset_init_with_options(&renames->cached_target_names[i], + NULL, 0); } /* @@ -3701,6 +3954,50 @@ static void merge_start(struct merge_options *opt, struct merge_result *result) trace2_region_leave("merge", "allocate/init", opt->repo); } +static void merge_check_renames_reusable(struct merge_options *opt, + struct merge_result *result, + struct tree *merge_base, + struct tree *side1, + struct tree *side2) +{ + struct rename_info *renames; + struct tree **merge_trees; + struct merge_options_internal *opti = result->priv; + + if (!opti) + return; + + renames = &opti->renames; + merge_trees = renames->merge_trees; + + /* + * Handle case where previous merge operation did not want cache to + * take effect, e.g. because rename/rename(1to1) makes it invalid. + */ + if (!merge_trees[0]) { + assert(!merge_trees[0] && !merge_trees[1] && !merge_trees[2]); + renames->cached_pairs_valid_side = 0; /* neither side valid */ + return; + } + + /* + * Handle other cases; note that merge_trees[0..2] will only + * be NULL if opti is, or if all three were manually set to + * NULL by e.g. rename/rename(1to1) handling. + */ + assert(merge_trees[0] && merge_trees[1] && merge_trees[2]); + + /* Check if we meet a condition for re-using cached_pairs */ + if (oideq(&merge_base->object.oid, &merge_trees[2]->object.oid) && + oideq(&side1->object.oid, &result->tree->object.oid)) + renames->cached_pairs_valid_side = MERGE_SIDE1; + else if (oideq(&merge_base->object.oid, &merge_trees[1]->object.oid) && + oideq(&side2->object.oid, &result->tree->object.oid)) + renames->cached_pairs_valid_side = MERGE_SIDE2; + else + renames->cached_pairs_valid_side = 0; /* neither side valid */ +} + /*** Function Grouping: merge_incore_*() and their internal variants ***/ /* @@ -3751,6 +4048,7 @@ static void merge_ort_nonrecursive_internal(struct merge_options *opt, result->clean &= strmap_empty(&opt->priv->conflicted); if (!opt->priv->call_depth) { result->priv = opt->priv; + result->_properly_initialized = RESULT_INITIALIZED; opt->priv = NULL; } } @@ -3848,7 +4146,16 @@ void merge_incore_nonrecursive(struct merge_options *opt, trace2_region_enter("merge", "merge_start", opt->repo); assert(opt->ancestor != NULL); + merge_check_renames_reusable(opt, result, merge_base, side1, side2); merge_start(opt, result); + /* + * Record the trees used in this merge, so if there's a next merge in + * a cherry-pick or rebase sequence it might be able to take advantage + * of the cached_pairs in that next merge. + */ + opt->priv->renames.merge_trees[0] = merge_base; + opt->priv->renames.merge_trees[1] = side1; + opt->priv->renames.merge_trees[2] = side2; trace2_region_leave("merge", "merge_start", opt->repo); merge_ort_nonrecursive_internal(opt, merge_base, side1, side2, result); diff --git a/merge-ort.h b/merge-ort.h index d53a0a3..c011864 100644 --- a/merge-ort.h +++ b/merge-ort.h @@ -29,6 +29,8 @@ struct merge_result { * !clean) and to print "CONFLICT" messages. Not for external use. */ void *priv; + /* Also private */ + unsigned _properly_initialized; }; /* diff --git a/pack-objects.h b/pack-objects.h index 9d88e3e..dca2351 100644 --- a/pack-objects.h +++ b/pack-objects.h @@ -268,152 +268,10 @@ static inline void oe_set_in_pack(struct packing_data *pack, pack->in_pack[e - pack->objects] = p; } -static inline struct object_entry *oe_delta( - const struct packing_data *pack, - const struct object_entry *e) -{ - if (!e->delta_idx) - return NULL; - if (e->ext_base) - return &pack->ext_bases[e->delta_idx - 1]; - else - return &pack->objects[e->delta_idx - 1]; -} - -static inline void oe_set_delta(struct packing_data *pack, - struct object_entry *e, - struct object_entry *delta) -{ - if (delta) - e->delta_idx = (delta - pack->objects) + 1; - else - e->delta_idx = 0; -} - void oe_set_delta_ext(struct packing_data *pack, struct object_entry *e, const struct object_id *oid); -static inline struct object_entry *oe_delta_child( - const struct packing_data *pack, - const struct object_entry *e) -{ - if (e->delta_child_idx) - return &pack->objects[e->delta_child_idx - 1]; - return NULL; -} - -static inline void oe_set_delta_child(struct packing_data *pack, - struct object_entry *e, - struct object_entry *delta) -{ - if (delta) - e->delta_child_idx = (delta - pack->objects) + 1; - else - e->delta_child_idx = 0; -} - -static inline struct object_entry *oe_delta_sibling( - const struct packing_data *pack, - const struct object_entry *e) -{ - if (e->delta_sibling_idx) - return &pack->objects[e->delta_sibling_idx - 1]; - return NULL; -} - -static inline void oe_set_delta_sibling(struct packing_data *pack, - struct object_entry *e, - struct object_entry *delta) -{ - if (delta) - e->delta_sibling_idx = (delta - pack->objects) + 1; - else - e->delta_sibling_idx = 0; -} - -unsigned long oe_get_size_slow(struct packing_data *pack, - const struct object_entry *e); -static inline unsigned long oe_size(struct packing_data *pack, - const struct object_entry *e) -{ - if (e->size_valid) - return e->size_; - - return oe_get_size_slow(pack, e); -} - -static inline int oe_size_less_than(struct packing_data *pack, - const struct object_entry *lhs, - unsigned long rhs) -{ - if (lhs->size_valid) - return lhs->size_ < rhs; - if (rhs < pack->oe_size_limit) /* rhs < 2^x <= lhs ? */ - return 0; - return oe_get_size_slow(pack, lhs) < rhs; -} - -static inline int oe_size_greater_than(struct packing_data *pack, - const struct object_entry *lhs, - unsigned long rhs) -{ - if (lhs->size_valid) - return lhs->size_ > rhs; - if (rhs < pack->oe_size_limit) /* rhs < 2^x <= lhs ? */ - return 1; - return oe_get_size_slow(pack, lhs) > rhs; -} - -static inline void oe_set_size(struct packing_data *pack, - struct object_entry *e, - unsigned long size) -{ - if (size < pack->oe_size_limit) { - e->size_ = size; - e->size_valid = 1; - } else { - e->size_valid = 0; - if (oe_get_size_slow(pack, e) != size) - BUG("'size' is supposed to be the object size!"); - } -} - -static inline unsigned long oe_delta_size(struct packing_data *pack, - const struct object_entry *e) -{ - if (e->delta_size_valid) - return e->delta_size_; - - /* - * pack->delta_size[] can't be NULL because oe_set_delta_size() - * must have been called when a new delta is saved with - * oe_set_delta(). - * If oe_delta() returns NULL (i.e. default state, which means - * delta_size_valid is also false), then the caller must never - * call oe_delta_size(). - */ - return pack->delta_size[e - pack->objects]; -} - -static inline void oe_set_delta_size(struct packing_data *pack, - struct object_entry *e, - unsigned long size) -{ - if (size < pack->oe_delta_size_limit) { - e->delta_size_ = size; - e->delta_size_valid = 1; - } else { - packing_data_lock(pack); - if (!pack->delta_size) - ALLOC_ARRAY(pack->delta_size, pack->nr_alloc); - packing_data_unlock(pack); - - pack->delta_size[e - pack->objects] = size; - e->delta_size_valid = 0; - } -} - static inline unsigned int oe_tree_depth(struct packing_data *pack, struct object_entry *e) { @@ -422,23 +280,6 @@ static inline unsigned int oe_tree_depth(struct packing_data *pack, return pack->tree_depth[e - pack->objects]; } -static inline void oe_set_tree_depth(struct packing_data *pack, - struct object_entry *e, - unsigned int tree_depth) -{ - if (!pack->tree_depth) - CALLOC_ARRAY(pack->tree_depth, pack->nr_alloc); - pack->tree_depth[e - pack->objects] = tree_depth; -} - -static inline unsigned char oe_layer(struct packing_data *pack, - struct object_entry *e) -{ - if (!pack->layer) - return 0; - return pack->layer[e - pack->objects]; -} - static inline void oe_set_layer(struct packing_data *pack, struct object_entry *e, unsigned char layer) diff --git a/parallel-checkout.c b/parallel-checkout.c index 6b1af32..ddc0ff3 100644 --- a/parallel-checkout.c +++ b/parallel-checkout.c @@ -411,7 +411,7 @@ static void send_one_item(int fd, struct parallel_checkout_item *pc_item) len_data = sizeof(struct pc_item_fixed_portion) + name_len + working_tree_encoding_len; - data = xcalloc(1, len_data); + data = xmalloc(len_data); fixed_portion = (struct pc_item_fixed_portion *)data; fixed_portion->id = pc_item->id; @@ -421,13 +421,12 @@ static void send_one_item(int fd, struct parallel_checkout_item *pc_item) fixed_portion->name_len = name_len; fixed_portion->working_tree_encoding_len = working_tree_encoding_len; /* - * We use hashcpy() instead of oidcpy() because the hash[] positions - * after `the_hash_algo->rawsz` might not be initialized. And Valgrind - * would complain about passing uninitialized bytes to a syscall - * (write(2)). There is no real harm in this case, but the warning could - * hinder the detection of actual errors. + * We pad the unused bytes in the hash array because, otherwise, + * Valgrind would complain about passing uninitialized bytes to a + * write() syscall. The warning doesn't represent any real risk here, + * but it could hinder the detection of actual errors. */ - hashcpy(fixed_portion->oid.hash, pc_item->ce->oid.hash); + oidcpy_with_padding(&fixed_portion->oid, &pc_item->ce->oid); variant = data + sizeof(*fixed_portion); if (working_tree_encoding_len) { diff --git a/perl/Git.pm b/perl/Git.pm index 73ebbf8..02eacef 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -619,19 +619,6 @@ Return path to the git repository. Must be called on a repository instance. sub repo_path { $_[0]->{opts}->{Repository} } -=item hooks_path () - -Return path to the hooks directory. Must be called on a repository instance. - -=cut - -sub hooks_path { - my ($self) = @_; - - my $dir = $self->command_oneline('rev-parse', '--git-path', 'hooks'); - my $abs = abs_path($dir); - return $abs; -} =item wc_path () diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index f6f1dc0..35ff5a6 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -1636,7 +1636,7 @@ sub has_no_changes { my $commit = shift; my @revs = split / /, command_oneline( - qw(rev-list --parents -1 -m), $commit); + qw(rev-list --parents -1), $commit); # Commits with no parents, e.g. the start of a partial branch, # have changes by definition. @@ -40,6 +40,30 @@ language, so that the l10n coordinator only needs to interact with one person per language. +Core translation +---------------- +The core translation is the smallest set of work that must be completed +for a new language translation. Because there are more than 5000 messages +in the template message file "po/git.pot" that need to be translated, +this is not a piece of cake for the contributor for a new language. + +The core template message file which contains a small set of messages +will be generated in "po-core/core.pot" automatically by running a helper +program named "git-po-helper" (described later). + + git-po-helper init --core XX.po + +After translating the generated "po-core/XX.po", you can merge it to +"po/XX.po" using the following commands: + + msgcat po-core/XX.po po/XX.po -s -o /tmp/XX.po + mv /tmp/XX.po po/XX.po + git-po-helper update XX.po + +Edit "po/XX.po" by hand to fix "fuzzy" messages, which may have misplaced +translated messages and duplicate messages. + + Translation Process Flow ------------------------ The overall data-flow looks like this: @@ -135,6 +159,18 @@ in the po/ directory, where XX.po is the file you want to update. Once you are done testing the translation (see below), commit the result and ask the l10n coordinator to pull from you. +Fuzzy translation +----------------- + +Fuzzy translation is a translation marked by comment "fuzzy" to let you +know that the translation is out of date because the "msgid" has been +changed. A fuzzy translation will be ignored when compiling using "msgfmt". +Fuzzy translation can be marked by hands, but for most cases they are +marked automatically when running "msgmerge" to update your "XX.po" file. + +After fixing the corresponding translation, you must remove the "fuzzy" +tag in the comment. + Testing your changes -------------------- @@ -286,3 +322,80 @@ Testing marked strings Git's tests are run under LANG=C LC_ALL=C. So the tests do not need be changed to account for translations as they're added. + + +PO helper +--------- + +To make the maintenance of XX.po easier, the l10n coordinator and l10n +team leaders can use a helper program named "git-po-helper". It is a +wrapper to gettext suite, specifically written for the purpose of Git +l10n workflow. + +To build and install the helper program from source, see +[git-po-helper/README][]. + +Usage for git-po-helper: + + - To start a new language translation: + + git-po-helper init XX.po + + - To update your XX.po file: + + git-po-helper update XX.po + + - To check commit log and syntax of XX.po: + + git-po-helper check-po XX.po + git-po-helper check-commits + +Run "git-po-helper" without arguments to show usage. + + +Conventions +----------- + +There are some conventions that l10n contributors must follow: + +1. The subject of each l10n commit should be prefixed with "l10n: ". +2. Do not use non-ASCII characters in the subject of a commit. +3. The length of commit subject (first line of the commit log) should + be less than 50 characters, and the length of other lines of the + commit log should be no more than 72 characters. +4. Add "Signed-off-by" trailer to your commit log, like other commits + in Git. You can automatically add the trailer by committing with + the following command: + + git commit -s + +5. Check syntax with "msgfmt" or the following command before creating + your commit: + + git-po-helper check-po <XX.po> + +6. Squash trivial commits to make history clear. +7. DO NOT edit files outside "po/" directory. +8. Other subsystems ("git-gui", "gitk", and Git itself) have their + own workflow. See [Documentation/SubmittingPatches][] for + instructions on how to contribute patches to these subsystems. + +To contribute for a new l10n language, contributor should follow +additional conventions: + +1. Initialize proper filename of the "XX.po" file conforming to + iso-639 and iso-3166. +2. Must complete a minimal translation based on the "po-core/core.pot" + template. Using the following command to initialize the minimal + "po-core/XX.po" file: + + git-po-helper init --core <your-language> + +3. Add a new entry in the "po/TEAMS" file with proper format, and check + the syntax of "po/TEAMS" by runnning the following command: + + git-po-helper team --check + + +[git-po-helper/README]: https://github.com/git-l10n/git-po-helper#readme +[Documentation/SubmittingPatches]: Documentation/SubmittingPatches @@ -80,6 +80,6 @@ Members: Ray Chen <oldsharp AT gmail.com> Fangyi Zhou <me AT fangyi.io> Language: zh_TW (Traditional Chinese) -Respository: https://github.com/l10n-tw/git-po -Leader: Yi-Jyun Pan <pan93412 AT gmail.com> +Repository: https://github.com/l10n-tw/git-po +Leader: Yi-Jyun Pan <pan93412 AT gmail.com> Members: Franklin Weng <franklin AT goodhorse.idv.tw> @@ -32,6 +32,7 @@ # working directory/tree — винаги работно дърво, git следи цялото дърво, а не директории, работна директория за cwd # switch to branch преминавам към клон # sparse entry/blob частично изтеглена директория/път/обект-BLOB +# sparse index частичен индекс # revision range диапазон на версиите # cover letter придружаващо писмо # reference repository еталонно хранилище @@ -152,6 +153,12 @@ # integrate (changes) внасяне (на промени) # overflow data данни за отместването # reverse index обратен индекс (а не обърнат, за да не се бърка с reverse key index) +# preferred предпочитан +# expired остарял +# reroll-count номер на редакция +# Nth re-roll N-та поредна редакция +# fetch доставам +# prefetch предварително доставяне # ------------------------ # „$var“ - може да не сработва за shell има gettext и eval_gettext - проверка - намират се лесно по „$ # ------------------------ @@ -170,8 +177,8 @@ msgid "" msgstr "" "Project-Id-Version: git 2.31\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2021-03-04 22:41+0800\n" -"PO-Revision-Date: 2021-03-05 12:11+0100\n" +"POT-Creation-Date: 2021-05-17 16:02+0800\n" +"PO-Revision-Date: 2021-05-28 17:44+0200\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language: bg\n" @@ -185,9 +192,9 @@ msgstr "" msgid "Huh (%s)?" msgstr "Неуспешен анализ — „%s“." -#: add-interactive.c:529 add-interactive.c:830 reset.c:65 sequencer.c:3292 -#: sequencer.c:3743 sequencer.c:3898 builtin/rebase.c:1538 -#: builtin/rebase.c:1963 +#: add-interactive.c:529 add-interactive.c:830 reset.c:65 sequencer.c:3493 +#: sequencer.c:3944 sequencer.c:4099 builtin/rebase.c:1528 +#: builtin/rebase.c:1953 msgid "could not read index" msgstr "индексът не може да бъде прочетен" @@ -215,7 +222,7 @@ msgstr "Обновяване" msgid "could not stage '%s'" msgstr "неуспешно добавяне в индекса на „%s“" -#: add-interactive.c:703 add-interactive.c:892 reset.c:89 sequencer.c:3486 +#: add-interactive.c:703 add-interactive.c:892 reset.c:89 sequencer.c:3687 msgid "could not write index" msgstr "индексът не може да бъде записан" @@ -231,7 +238,7 @@ msgstr[1] "%d файла обновени\n" msgid "note: %s is untracked now.\n" msgstr "БЕЛЕЖКА: „%s“ вече не се следи.\n" -#: add-interactive.c:729 apply.c:4125 builtin/checkout.c:295 +#: add-interactive.c:729 apply.c:4127 builtin/checkout.c:298 #: builtin/reset.c:145 #, c-format msgid "make_cache_entry failed for path '%s'" @@ -371,12 +378,12 @@ msgstr "в индекса" msgid "unstaged" msgstr "извън индекса" -#: add-interactive.c:1144 apply.c:4987 apply.c:4990 builtin/am.c:2257 -#: builtin/am.c:2260 builtin/bugreport.c:134 builtin/clone.c:124 -#: builtin/fetch.c:150 builtin/merge.c:285 builtin/pull.c:190 -#: builtin/submodule--helper.c:409 builtin/submodule--helper.c:1818 -#: builtin/submodule--helper.c:1821 builtin/submodule--helper.c:2326 -#: builtin/submodule--helper.c:2329 builtin/submodule--helper.c:2572 +#: add-interactive.c:1144 apply.c:4994 apply.c:4997 builtin/am.c:2308 +#: builtin/am.c:2311 builtin/bugreport.c:135 builtin/clone.c:128 +#: builtin/fetch.c:152 builtin/merge.c:285 builtin/pull.c:190 +#: builtin/submodule--helper.c:409 builtin/submodule--helper.c:1819 +#: builtin/submodule--helper.c:1822 builtin/submodule--helper.c:2327 +#: builtin/submodule--helper.c:2330 builtin/submodule--helper.c:2573 #: git-add--interactive.perl:213 msgid "path" msgstr "път" @@ -822,7 +829,7 @@ msgstr "" #: add-patch.c:1289 msgid "The selected hunks do not apply to the index!" -msgstr "Избраните парчета не могат да се добавят в индекса!" +msgstr "Избраните парчета не може да се добавят в индекса!" #: add-patch.c:1290 git-add--interactive.perl:1346 msgid "Apply them to the worktree anyway? " @@ -920,7 +927,7 @@ msgstr "Това парче не може да бъде редактирано" msgid "'git apply' failed" msgstr "неуспешно изпълнение на „git apply“" -#: advice.c:143 +#: advice.c:145 #, c-format msgid "" "\n" @@ -930,37 +937,37 @@ msgstr "" "За да изключите това предупреждение, изпълнете:\n" " git config advice.%s false" -#: advice.c:159 +#: advice.c:161 #, c-format msgid "%shint: %.*s%s\n" msgstr "%sподсказка: %.*s%s\n" -#: advice.c:250 +#: advice.c:252 msgid "Cherry-picking is not possible because you have unmerged files." msgstr "Отбирането на подавания е блокирано от неслети файлове." -#: advice.c:252 +#: advice.c:254 msgid "Committing is not possible because you have unmerged files." msgstr "Подаването е блокирано от неслети файлове." -#: advice.c:254 +#: advice.c:256 msgid "Merging is not possible because you have unmerged files." msgstr "Сливането е блокирано от неслети файлове." -#: advice.c:256 +#: advice.c:258 msgid "Pulling is not possible because you have unmerged files." msgstr "Издърпването е блокирано от неслети файлове." -#: advice.c:258 +#: advice.c:260 msgid "Reverting is not possible because you have unmerged files." msgstr "Отмяната е блокирана от неслети файлове." -#: advice.c:260 +#: advice.c:262 #, c-format msgid "It is not possible to %s because you have unmerged files." msgstr "Действието „%s“ е блокирано от неслети файлове." -#: advice.c:268 +#: advice.c:270 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." @@ -968,23 +975,40 @@ msgstr "" "Редактирайте ги в работното дърво, и тогава ползвайте „git add/rm ФАЙЛ“,\n" "за да отбележите коригирането им. След това извършете подаването." -#: advice.c:276 +#: advice.c:278 msgid "Exiting because of an unresolved conflict." msgstr "Изход от програмата заради некоригиран конфликт." -#: advice.c:281 builtin/merge.c:1370 +#: advice.c:283 builtin/merge.c:1374 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Не сте завършили сливане. (Указателят „MERGE_HEAD“ съществува)." -#: advice.c:283 +#: advice.c:285 msgid "Please, commit your changes before merging." msgstr "Промените трябва да се подадат преди сливане." -#: advice.c:284 +#: advice.c:286 msgid "Exiting because of unfinished merge." msgstr "Изход от програмата заради незавършено сливане." -#: advice.c:290 +#: advice.c:296 +#, c-format +msgid "" +"The following pathspecs didn't match any eligible path, but they do match " +"index\n" +"entries outside the current sparse checkout:\n" +msgstr "" +"Следните пътища не съвпадат с никой от настроените, но съвпадат с обекти\n" +"в индекса, които са извън текущото частично изтегляне:\n" + +#: advice.c:303 +msgid "" +"Disable or modify the sparsity rules if you intend to update such entries." +msgstr "" +"Изключете или променете правилата за частичност, ако искате до обновявате " +"такива обекти." + +#: advice.c:310 #, c-format msgid "" "Note: switching to '%s'.\n" @@ -1013,7 +1037,7 @@ msgstr "" "бъдат\n" "забравени и никой клон няма да се промени.\n" "\n" -"Ако искате да създадете нов клон, за да запазите подаванията си, можете да\n" +"Ако искате да създадете нов клон, за да запазите подаванията си, може да\n" "направите това като зададете име на клон към опцията „-c“ на командата\n" "„switch“. Например:\n" "\n" @@ -1035,90 +1059,86 @@ msgstr "командният ред завършва с „/“" msgid "unclosed quote" msgstr "кавичка без еш" -#: apply.c:69 +#: apply.c:70 #, c-format msgid "unrecognized whitespace option '%s'" msgstr "непозната опция за знаците за интервали „%s“" -#: apply.c:85 +#: apply.c:86 #, c-format msgid "unrecognized whitespace ignore option '%s'" msgstr "непозната опция за игнориране на знаците за интервали „%s“" -#: apply.c:135 +#: apply.c:136 msgid "--reject and --3way cannot be used together." msgstr "опциите „--reject“ и „--3way“ са несъвместими" -#: apply.c:137 -msgid "--cached and --3way cannot be used together." -msgstr "опциите „--cached“ и „--3way“ са несъвместими" - -#: apply.c:140 +#: apply.c:139 msgid "--3way outside a repository" msgstr "като „--3way“, но извън хранилище" -#: apply.c:151 +#: apply.c:150 msgid "--index outside a repository" msgstr "като „--index“, но извън хранилище" -#: apply.c:154 +#: apply.c:153 msgid "--cached outside a repository" msgstr "като „--cached“, но извън хранилище" -#: apply.c:801 +#: apply.c:800 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "Регулярният израз за времето „%s“ не може за бъде компилиран" -#: apply.c:810 +#: apply.c:809 #, c-format msgid "regexec returned %d for input: %s" msgstr "Регулярният израз върна %d при подадена последователност „%s“ на входа" -#: apply.c:884 +#: apply.c:883 #, c-format msgid "unable to find filename in patch at line %d" msgstr "Липсва име на файл на ред %d от кръпката" -#: apply.c:922 +#: apply.c:921 #, 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:928 +#: apply.c:927 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "" "git apply: лош изход от командата „git-diff“ — на ред %d бе получено " "неправилно име на нов файл" -#: apply.c:929 +#: apply.c:928 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" "git apply: лош изход от командата „git-diff“ — на ред %d бе получено " "неправилно име на стар файл" -#: apply.c:934 +#: apply.c:933 #, c-format msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "" "git apply: лош изход от командата „git-diff“ — на ред %d се очакваше „/dev/" "null“" -#: apply.c:963 +#: apply.c:962 #, c-format msgid "invalid mode on line %d: %s" msgstr "грешен режим на ред №%d: %s" -#: apply.c:1282 +#: apply.c:1281 #, c-format msgid "inconsistent header lines %d and %d" msgstr "несъвместими заглавни части на редове №%d и №%d" -#: apply.c:1372 +#: apply.c:1371 #, c-format msgid "" "git diff header lacks filename information when removing %d leading pathname " @@ -1133,81 +1153,81 @@ msgstr[1] "" "След съкращаването на първите %d части от компонентите на пътя, в заглавната " "част на „git diff“ липсва информация за име на файл (ред: %d)" -#: apply.c:1385 +#: apply.c:1384 #, c-format msgid "git diff header lacks filename information (line %d)" msgstr "" "в заглавната част на „git diff“ липсва информация за име на файл (ред: %d)" -#: apply.c:1481 +#: apply.c:1480 #, c-format msgid "recount: unexpected line: %.*s" msgstr "при повторното преброяване бе получен неочакван ред: „%.*s“" -#: apply.c:1550 +#: apply.c:1549 #, c-format msgid "patch fragment without header at line %d: %.*s" msgstr "част от кръпка без заглавна част на ред %d: %.*s" -#: apply.c:1753 +#: apply.c:1752 msgid "new file depends on old contents" msgstr "новият файл зависи от старото съдържание на файла" -#: apply.c:1755 +#: apply.c:1754 msgid "deleted file still has contents" msgstr "изтритият файл не е празен" -#: apply.c:1789 +#: apply.c:1788 #, c-format msgid "corrupt patch at line %d" msgstr "грешка в кръпката на ред %d" -#: apply.c:1826 +#: apply.c:1825 #, c-format msgid "new file %s depends on old contents" msgstr "новият файл „%s“ зависи от старото съдържание на файла" -#: apply.c:1828 +#: apply.c:1827 #, c-format msgid "deleted file %s still has contents" msgstr "изтритият файл „%s“ не е празен" -#: apply.c:1831 +#: apply.c:1830 #, c-format msgid "** warning: file %s becomes empty but is not deleted" msgstr "● предупреждение: файлът „%s“ вече е празен, но не е изтрит" -#: apply.c:1978 +#: apply.c:1977 #, c-format msgid "corrupt binary patch at line %d: %.*s" msgstr "грешка в двоичната кръпка на ред %d: %.*s" -#: apply.c:2015 +#: apply.c:2014 #, c-format msgid "unrecognized binary patch at line %d" msgstr "неразпозната двоичната кръпка на ред %d" -#: apply.c:2177 +#: apply.c:2176 #, c-format msgid "patch with only garbage at line %d" msgstr "кръпката е с изцяло повредени данни на ред %d" -#: apply.c:2263 +#: apply.c:2262 #, c-format msgid "unable to read symlink %s" msgstr "символната връзка „%s“ не може да бъде прочетена" -#: apply.c:2267 +#: apply.c:2266 #, c-format msgid "unable to open or read %s" msgstr "файлът „%s“ не може да бъде отворен или прочетен" -#: apply.c:2936 +#: apply.c:2935 #, c-format msgid "invalid start of line: '%c'" msgstr "неправилно начало на ред: „%c“" -#: apply.c:3057 +#: apply.c:3056 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." @@ -1216,13 +1236,13 @@ msgstr[0] "" msgstr[1] "" "%d-то парче код бе успешно приложено на ред %d (отместване от %d реда)." -#: apply.c:3069 +#: apply.c:3068 #, c-format msgid "Context reduced to (%ld/%ld) to apply fragment at %d" msgstr "" "Контекстът е намален на (%ld/%ld) за прилагането на парчето код на ред %d" -#: apply.c:3075 +#: apply.c:3074 #, c-format msgid "" "while searching for:\n" @@ -1231,313 +1251,316 @@ msgstr "" "при търсене за:\n" "%.*s" -#: apply.c:3097 +#: apply.c:3096 #, c-format msgid "missing binary patch data for '%s'" msgstr "липсват данните за двоичната кръпка за „%s“" -#: apply.c:3105 +#: apply.c:3104 #, c-format msgid "cannot reverse-apply a binary patch without the reverse hunk to '%s'" msgstr "" "двоичната кръпка не може да се приложи в обратна посока, когато обратното " "парче за „%s“ липсва" -#: apply.c:3152 +#: apply.c:3151 #, c-format msgid "cannot apply binary patch to '%s' without full index line" msgstr "към „%s“ не може да се приложи двоична кръпка без пълен индекс" -#: apply.c:3163 +#: apply.c:3162 #, c-format msgid "" "the patch applies to '%s' (%s), which does not match the current contents." msgstr "кръпката съответства на „%s“ (%s), който не съвпада по съдържание." -#: apply.c:3171 +#: apply.c:3170 #, c-format msgid "the patch applies to an empty '%s' but it is not empty" msgstr "кръпката съответства на „%s“, който трябва да е празен, но не е" -#: apply.c:3189 +#: apply.c:3188 #, c-format msgid "the necessary postimage %s for '%s' cannot be read" msgstr "" "необходимият резултат след операцията — „%s“ за „%s“ не може да бъде " "прочетен" -#: apply.c:3202 +#: apply.c:3201 #, c-format msgid "binary patch does not apply to '%s'" msgstr "двоичната кръпка не може да бъде приложена върху „%s“" -#: apply.c:3209 +#: apply.c:3208 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" "двоичната кръпка за „%s“ води до неправилни резултати (очакваше се: „%s“, а " "бе получено: „%s“)" -#: apply.c:3230 +#: apply.c:3229 #, c-format msgid "patch failed: %s:%ld" msgstr "неуспешно прилагане на кръпка: „%s:%ld“" -#: apply.c:3353 +#: apply.c:3352 #, c-format msgid "cannot checkout %s" msgstr "„%s“ не може да се изтегли" -#: apply.c:3405 apply.c:3416 apply.c:3462 midx.c:86 pack-revindex.c:213 +#: apply.c:3404 apply.c:3415 apply.c:3461 midx.c:98 pack-revindex.c:214 #: setup.c:308 #, c-format msgid "failed to read %s" msgstr "файлът „%s“ не може да бъде прочетен" -#: apply.c:3413 +#: apply.c:3412 #, c-format msgid "reading from '%s' beyond a symbolic link" msgstr "изчитане на „%s“ след проследяване на символна връзка" -#: apply.c:3442 apply.c:3685 +#: apply.c:3441 apply.c:3687 #, c-format msgid "path %s has been renamed/deleted" msgstr "обектът с път „%s“ е преименуван или изтрит" -#: apply.c:3528 apply.c:3700 +#: apply.c:3527 apply.c:3702 #, c-format msgid "%s: does not exist in index" msgstr "„%s“ не съществува в индекса" -#: apply.c:3537 apply.c:3708 apply.c:3952 +#: apply.c:3536 apply.c:3710 apply.c:3954 #, c-format msgid "%s: does not match index" msgstr "„%s“ не съответства на индекса" -#: apply.c:3572 -msgid "repository lacks the necessary blob to fall back on 3-way merge." -msgstr "" -"в хранилището липсват необходимите обекти-BLOB, за да се премине към тройно " -"сливане." +#: apply.c:3571 +msgid "repository lacks the necessary blob to perform 3-way merge." +msgstr "в хранилището липсват необходимите обекти-BLOB, за тройно сливане." -#: apply.c:3575 +#: apply.c:3574 #, c-format -msgid "Falling back to three-way merge...\n" -msgstr "Преминаване към тройно сливане…\n" +msgid "Performing three-way merge...\n" +msgstr "Тройно сливане…\n" -#: apply.c:3591 apply.c:3595 +#: apply.c:3590 apply.c:3594 #, c-format msgid "cannot read the current contents of '%s'" msgstr "текущото съдържание на „%s“ не може да бъде прочетено" -#: apply.c:3607 +#: apply.c:3606 #, c-format -msgid "Failed to fall back on three-way merge...\n" -msgstr "Неуспешно преминаване към тройно сливане…\n" +msgid "Failed to perform three-way merge...\n" +msgstr "Неуспешно тройно сливане…\n" -#: apply.c:3621 +#: apply.c:3620 #, c-format msgid "Applied patch to '%s' with conflicts.\n" msgstr "Конфликти при прилагането на кръпката към „%s“.\n" -#: apply.c:3626 +#: apply.c:3625 #, c-format msgid "Applied patch to '%s' cleanly.\n" msgstr "Кръпката бе приложена чисто към „%s“.\n" -#: apply.c:3652 +#: apply.c:3642 +#, c-format +msgid "Falling back to direct application...\n" +msgstr "Преминаване към пряко прилагане…\n" + +#: apply.c:3654 msgid "removal patch leaves file contents" msgstr "изтриващата кръпка оставя файла непразен" -#: apply.c:3725 +#: apply.c:3727 #, c-format msgid "%s: wrong type" msgstr "„%s“: неправилен вид" -#: apply.c:3727 +#: apply.c:3729 #, c-format msgid "%s has type %o, expected %o" msgstr "„%s“ е от вид „%o“, а се очакваше „%o“" -#: apply.c:3892 apply.c:3894 read-cache.c:832 read-cache.c:858 -#: read-cache.c:1313 +#: apply.c:3894 apply.c:3896 read-cache.c:861 read-cache.c:890 +#: read-cache.c:1351 #, c-format msgid "invalid path '%s'" msgstr "неправилен път: „%s“" -#: apply.c:3950 +#: apply.c:3952 #, c-format msgid "%s: already exists in index" msgstr "„%s“: вече съществува в индекса" -#: apply.c:3954 +#: apply.c:3956 #, c-format msgid "%s: already exists in working directory" msgstr "„%s“: вече съществува в работното дърво" -#: apply.c:3974 +#: apply.c:3976 #, c-format msgid "new mode (%o) of %s does not match old mode (%o)" msgstr "новите права за достъп (%o) на „%s“ не съвпадат със старите (%o)" -#: apply.c:3979 +#: apply.c:3981 #, c-format msgid "new mode (%o) of %s does not match old mode (%o) of %s" msgstr "" "новите права за достъп (%o) на „%s“ не съвпадат със старите (%o) на „%s“" -#: apply.c:3999 +#: apply.c:4001 #, c-format msgid "affected file '%s' is beyond a symbolic link" msgstr "засегнатият файл „%s“ е след символна връзка" -#: apply.c:4003 +#: apply.c:4005 #, c-format msgid "%s: patch does not apply" msgstr "Кръпката „%s“ не може да бъде приложена" -#: apply.c:4018 +#: apply.c:4020 #, c-format msgid "Checking patch %s..." msgstr "Проверяване на кръпката „%s“…" -#: apply.c:4110 +#: apply.c:4112 #, c-format msgid "sha1 information is lacking or useless for submodule %s" msgstr "" "информацията за сумата по SHA1 за подмодула липсва или не е достатъчна (%s)." -#: apply.c:4117 +#: apply.c:4119 #, c-format msgid "mode change for %s, which is not in current HEAD" msgstr "смяна на режима на достъпа на „%s“, който не е в текущия връх „HEAD“" -#: apply.c:4120 +#: apply.c:4122 #, c-format msgid "sha1 information is lacking or useless (%s)." msgstr "информацията за сумата по SHA1 липсва или не е достатъчна (%s)." -#: apply.c:4129 +#: apply.c:4131 #, c-format msgid "could not add %s to temporary index" msgstr "„%s“ не може да се добави към временния индекс" -#: apply.c:4139 +#: apply.c:4141 #, c-format msgid "could not write temporary index to %s" msgstr "временният индекс не може да се запази в „%s“" -#: apply.c:4277 +#: apply.c:4279 #, c-format msgid "unable to remove %s from index" msgstr "„%s“ не може да се извади от индекса" -#: apply.c:4311 +#: apply.c:4313 #, c-format msgid "corrupt patch for submodule %s" msgstr "повредена кръпка за модула „%s“" -#: apply.c:4317 +#: apply.c:4319 #, c-format msgid "unable to stat newly created file '%s'" msgstr "" "не може да се получи информация чрез „stat“ за новосъздадения файл „%s“" -#: apply.c:4325 +#: apply.c:4327 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "" "не може да се за създаде мястото за съхранение на новосъздадения файл „%s“" -#: apply.c:4331 apply.c:4476 +#: apply.c:4333 apply.c:4478 #, c-format msgid "unable to add cache entry for %s" msgstr "не може да се добави запис в кеша за „%s“" -#: apply.c:4374 builtin/bisect--helper.c:523 +#: apply.c:4376 builtin/bisect--helper.c:523 #, c-format msgid "failed to write to '%s'" msgstr "в „%s“ не може да се пише" -#: apply.c:4378 +#: apply.c:4380 #, c-format msgid "closing file '%s'" msgstr "затваряне на файла „%s“" -#: apply.c:4448 +#: apply.c:4450 #, c-format msgid "unable to write file '%s' mode %o" msgstr "файлът „%s“ не може да се запише с режим на достъп „%o“" -#: apply.c:4546 +#: apply.c:4548 #, c-format msgid "Applied patch %s cleanly." msgstr "Кръпката „%s“ бе приложена чисто." -#: apply.c:4554 +#: apply.c:4556 msgid "internal error" msgstr "вътрешна грешка" -#: apply.c:4557 +#: apply.c:4559 #, 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:4568 +#: apply.c:4570 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "съкращаване на името на файла с отхвърлените парчета на „ %.*s.rej“" -#: apply.c:4576 builtin/fetch.c:933 builtin/fetch.c:1334 +#: apply.c:4578 builtin/fetch.c:993 builtin/fetch.c:1394 #, c-format msgid "cannot open %s" msgstr "„%s“ не може да бъде отворен" -#: apply.c:4590 +#: apply.c:4592 #, c-format msgid "Hunk #%d applied cleanly." msgstr "%d-то парче бе успешно приложено." -#: apply.c:4594 +#: apply.c:4596 #, c-format msgid "Rejected hunk #%d." msgstr "%d-то парче бе отхвърлено." -#: apply.c:4718 +#: apply.c:4725 #, c-format msgid "Skipped patch '%s'." msgstr "Пропусната кръпка: „%s“" -#: apply.c:4726 +#: apply.c:4733 msgid "unrecognized input" msgstr "непознат вход" -#: apply.c:4746 +#: apply.c:4753 msgid "unable to read index file" msgstr "индексът не може да бъде записан" -#: apply.c:4903 +#: apply.c:4910 #, c-format msgid "can't open patch '%s': %s" msgstr "кръпката „%s“ не може да бъде отворена: %s" -#: apply.c:4930 +#: apply.c:4937 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "пренебрегната е %d грешка в знаците за интервали" msgstr[1] "пренебрегнати са %d грешки в знаците за интервали" -#: apply.c:4936 apply.c:4951 +#: apply.c:4943 apply.c:4958 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." msgstr[0] "%d ред добавя грешки в знаците за интервали." msgstr[1] "%d реда добавят грешки в знаците за интервали." -#: apply.c:4944 +#: apply.c:4951 #, c-format msgid "%d line applied after fixing whitespace errors." msgid_plural "%d lines applied after fixing whitespace errors." @@ -1546,135 +1569,138 @@ msgstr[0] "" msgstr[1] "" "Добавени са %d реда след корекцията на грешките в знаците за интервали." -#: apply.c:4960 builtin/add.c:626 builtin/mv.c:304 builtin/rm.c:406 +#: apply.c:4967 builtin/add.c:679 builtin/mv.c:304 builtin/rm.c:423 msgid "Unable to write new index file" msgstr "Новият индекс не може да бъде записан" -#: apply.c:4988 +#: apply.c:4995 msgid "don't apply changes matching the given path" msgstr "без прилагане на промените напасващи на дадения път" -#: apply.c:4991 +#: apply.c:4998 msgid "apply changes matching the given path" msgstr "прилагане на промените напасващи на дадения път" -#: apply.c:4993 builtin/am.c:2266 +#: apply.c:5000 builtin/am.c:2317 msgid "num" msgstr "БРОЙ" -#: apply.c:4994 +#: apply.c:5001 msgid "remove <num> leading slashes from traditional diff paths" msgstr "премахване на този БРОЙ водещи елементи от пътищата в разликата" -#: apply.c:4997 +#: apply.c:5004 msgid "ignore additions made by the patch" msgstr "игнориране на редовете добавени от тази кръпка" -#: apply.c:4999 +#: apply.c:5006 msgid "instead of applying the patch, output diffstat for the input" msgstr "извеждане на статистика на промените без прилагане на кръпката" -#: apply.c:5003 +#: apply.c:5010 msgid "show number of added and deleted lines in decimal notation" msgstr "извеждане на броя на добавените и изтритите редове" -#: apply.c:5005 +#: apply.c:5012 msgid "instead of applying the patch, output a summary for the input" msgstr "извеждане на статистика на входните данни без прилагане на кръпката" -#: apply.c:5007 +#: apply.c:5014 msgid "instead of applying the patch, see if the patch is applicable" msgstr "проверка дали кръпката може да се приложи, без действително прилагане" -#: apply.c:5009 +#: apply.c:5016 msgid "make sure the patch is applicable to the current index" msgstr "проверка дали кръпката може да бъде приложена към текущия индекс" -#: apply.c:5011 +#: apply.c:5018 msgid "mark new files with `git add --intent-to-add`" msgstr "отбелязване на новите файлове с „git add --intent-to-add“" -#: apply.c:5013 +#: apply.c:5020 msgid "apply a patch without touching the working tree" msgstr "прилагане на кръпката без промяна на работното дърво" -#: apply.c:5015 +#: apply.c:5022 msgid "accept a patch that touches outside the working area" msgstr "прилагане на кръпка, която променя и файлове извън работното дърво" -#: apply.c:5018 +#: apply.c:5025 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "" "кръпката да бъде приложена. Опцията се комбинира с „--check“/„--stat“/„--" "summary“" -#: apply.c:5020 -msgid "attempt three-way merge if a patch does not apply" -msgstr "пробване с тройно сливане, ако кръпката не може да се приложи директно" +#: apply.c:5027 +msgid "attempt three-way merge, fall back on normal patch if that fails" +msgstr "" +"пробване с тройно сливане, ако това не сработи — стандартно прилагане на " +"кръпка" -#: apply.c:5022 +#: apply.c:5029 msgid "build a temporary index based on embedded index information" msgstr "" "създаване на временен индекс на база на включената информация за индекса" -#: apply.c:5025 builtin/checkout-index.c:195 builtin/ls-files.c:540 +#: apply.c:5032 builtin/checkout-index.c:196 builtin/ls-files.c:617 msgid "paths are separated with NUL character" msgstr "разделяне на пътищата с нулевия знак „NUL“" -#: apply.c:5027 +#: apply.c:5034 msgid "ensure at least <n> lines of context match" msgstr "да се осигури контекст от поне такъв БРОЙ съвпадащи редове" -#: apply.c:5028 builtin/am.c:2245 builtin/interpret-trailers.c:98 -#: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3577 builtin/rebase.c:1352 +#: apply.c:5035 builtin/am.c:2293 builtin/am.c:2296 +#: builtin/interpret-trailers.c:98 builtin/interpret-trailers.c:100 +#: builtin/interpret-trailers.c:102 builtin/pack-objects.c:3831 +#: builtin/rebase.c:1347 msgid "action" msgstr "действие" -#: apply.c:5029 +#: apply.c:5036 msgid "detect new or modified lines that have whitespace errors" msgstr "засичане на нови или променени редове с грешки в знаците за интервали" -#: apply.c:5032 apply.c:5035 +#: apply.c:5039 apply.c:5042 msgid "ignore changes in whitespace when finding context" msgstr "" "игнориране на промените в знаците за интервали при откриване на контекста" -#: apply.c:5038 +#: apply.c:5045 msgid "apply the patch in reverse" msgstr "прилагане на кръпката в обратна посока" -#: apply.c:5040 +#: apply.c:5047 msgid "don't expect at least one line of context" msgstr "без изискване на дори и един ред контекст" -#: apply.c:5042 +#: apply.c:5049 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "оставяне на отхвърлените парчета във файлове с разширение „.rej“" -#: apply.c:5044 +#: apply.c:5051 msgid "allow overlapping hunks" msgstr "позволяване на застъпващи се парчета" -#: apply.c:5045 builtin/add.c:337 builtin/check-ignore.c:22 -#: builtin/commit.c:1364 builtin/count-objects.c:98 builtin/fsck.c:757 -#: builtin/log.c:2286 builtin/mv.c:123 builtin/read-tree.c:128 +#: apply.c:5052 builtin/add.c:364 builtin/check-ignore.c:22 +#: builtin/commit.c:1474 builtin/count-objects.c:98 builtin/fsck.c:755 +#: builtin/log.c:2295 builtin/mv.c:123 builtin/read-tree.c:128 msgid "be verbose" msgstr "повече подробности" -#: apply.c:5047 +#: apply.c:5054 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "пренебрегване на неправилно липсващ знак за нов ред в края на файл" -#: apply.c:5050 +#: apply.c:5057 msgid "do not trust the line counts in the hunk headers" msgstr "без доверяване на номерата на редовете в заглавните части на парчетата" -#: apply.c:5052 builtin/am.c:2254 +#: apply.c:5059 builtin/am.c:2305 msgid "root" msgstr "НАЧАЛНА_ДИРЕКТОРИЯ" -#: apply.c:5053 +#: apply.c:5060 msgid "prepend <root> to all filenames" msgstr "добавяне на тази НАЧАЛНА_ДИРЕКТОРИЯ към имената на всички файлове" @@ -1741,141 +1767,141 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote ХРАНИЛИЩЕ [--exec КОМАНДА] --list" -#: archive.c:192 +#: archive.c:188 #, c-format msgid "cannot read %s" msgstr "обектът „%s“ не може да бъде прочетен" -#: archive.c:345 sequencer.c:459 sequencer.c:1744 sequencer.c:2894 -#: sequencer.c:3335 sequencer.c:3444 builtin/am.c:249 builtin/commit.c:786 -#: builtin/merge.c:1139 +#: archive.c:342 sequencer.c:460 sequencer.c:1915 sequencer.c:3095 +#: sequencer.c:3536 sequencer.c:3645 builtin/am.c:261 builtin/commit.c:833 +#: builtin/merge.c:1143 #, c-format msgid "could not read '%s'" msgstr "файлът „%s“ не може да бъде прочетен" -#: archive.c:430 builtin/add.c:189 builtin/add.c:602 builtin/rm.c:315 +#: archive.c:427 builtin/add.c:205 builtin/add.c:646 builtin/rm.c:328 #, c-format msgid "pathspec '%s' did not match any files" msgstr "пътят „%s“ не съвпада с никой файл" -#: archive.c:454 +#: archive.c:451 #, c-format msgid "no such ref: %.*s" msgstr "такъв указател няма: %.*s" -#: archive.c:460 +#: archive.c:457 #, c-format msgid "not a valid object name: %s" msgstr "неправилно име на обект: „%s“" -#: archive.c:473 +#: archive.c:470 #, c-format msgid "not a tree object: %s" msgstr "не е обект-дърво: %s" -#: archive.c:485 +#: archive.c:482 msgid "current working directory is untracked" msgstr "текущата работна директория не е следена" -#: archive.c:526 +#: archive.c:523 #, c-format msgid "File not found: %s" msgstr "Файлът „%s“ липсва" -#: archive.c:528 +#: archive.c:525 #, c-format msgid "Not a regular file: %s" msgstr "„%s“ не е обикновен файл" -#: archive.c:555 +#: archive.c:552 msgid "fmt" msgstr "ФОРМАТ" -#: archive.c:555 +#: archive.c:552 msgid "archive format" msgstr "ФОРМАТ на архива" -#: archive.c:556 builtin/log.c:1764 +#: archive.c:553 builtin/log.c:1772 msgid "prefix" msgstr "ПРЕФИКС" -#: archive.c:557 +#: archive.c:554 msgid "prepend prefix to each pathname in the archive" msgstr "добавяне на този ПРЕФИКС към всеки път в архива" -#: archive.c:558 archive.c:561 builtin/blame.c:884 builtin/blame.c:888 +#: archive.c:555 archive.c:558 builtin/blame.c:884 builtin/blame.c:888 #: builtin/blame.c:889 builtin/commit-tree.c:117 builtin/config.c:135 #: builtin/fast-export.c:1207 builtin/fast-export.c:1209 -#: builtin/fast-export.c:1213 builtin/grep.c:920 builtin/hash-object.c:105 -#: builtin/ls-files.c:576 builtin/ls-files.c:579 builtin/notes.c:412 -#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:190 +#: builtin/fast-export.c:1213 builtin/grep.c:922 builtin/hash-object.c:105 +#: builtin/ls-files.c:653 builtin/ls-files.c:656 builtin/notes.c:412 +#: builtin/notes.c:578 builtin/read-tree.c:123 parse-options.h:191 msgid "file" msgstr "ФАЙЛ" -#: archive.c:559 +#: archive.c:556 msgid "add untracked file to archive" msgstr "добавяне на неследените файлове към архива" -#: archive.c:562 builtin/archive.c:90 +#: archive.c:559 builtin/archive.c:90 msgid "write the archive to this file" msgstr "запазване на архива в този ФАЙЛ" -#: archive.c:564 +#: archive.c:561 msgid "read .gitattributes in working directory" msgstr "изчитане на „.gitattributes“ в работната директория" -#: archive.c:565 +#: archive.c:562 msgid "report archived files on stderr" msgstr "извеждане на архивираните файлове на стандартната грешка" -#: archive.c:567 +#: archive.c:564 msgid "set compression level" msgstr "задаване на нивото на компресиране" -#: archive.c:570 +#: archive.c:567 msgid "list supported archive formats" msgstr "извеждане на списъка с поддържаните формати" -#: archive.c:572 builtin/archive.c:91 builtin/clone.c:114 builtin/clone.c:117 -#: builtin/submodule--helper.c:1830 builtin/submodule--helper.c:2335 +#: archive.c:569 builtin/archive.c:91 builtin/clone.c:118 builtin/clone.c:121 +#: builtin/submodule--helper.c:1831 builtin/submodule--helper.c:2336 msgid "repo" msgstr "хранилище" -#: archive.c:573 builtin/archive.c:92 +#: archive.c:570 builtin/archive.c:92 msgid "retrieve the archive from remote repository <repo>" msgstr "получаване на архива от отдалеченото ХРАНИЛИЩЕ" -#: archive.c:574 builtin/archive.c:93 builtin/difftool.c:714 +#: archive.c:571 builtin/archive.c:93 builtin/difftool.c:718 #: builtin/notes.c:498 msgid "command" msgstr "команда" -#: archive.c:575 builtin/archive.c:94 +#: archive.c:572 builtin/archive.c:94 msgid "path to the remote git-upload-archive command" msgstr "път към отдалечената команда „git-upload-archive“" -#: archive.c:582 +#: archive.c:579 msgid "Unexpected option --remote" msgstr "Неочаквана опция „--remote“" -#: archive.c:584 +#: archive.c:581 msgid "Option --exec can only be used together with --remote" -msgstr "Опцията „--exec“ изисква „--remote“" +msgstr "опцията „--exec“ изисква „--remote“" -#: archive.c:586 +#: archive.c:583 msgid "Unexpected option --output" msgstr "Неочаквана опция „--output“" -#: archive.c:588 +#: archive.c:585 msgid "Options --add-file and --remote cannot be used together" -msgstr "Опциите „--add-file“ и „--remote“ са несъвместими" +msgstr "опциите „--add-file“ и „--remote“ са несъвместими" -#: archive.c:610 +#: archive.c:607 #, c-format msgid "Unknown archive format '%s'" msgstr "Непознат формат на архив: „%s“" -#: archive.c:619 +#: archive.c:616 #, c-format msgid "Argument not supported for format '%s': -%d" msgstr "Аргументът не се поддържа за форма̀та „%s“: -%d" @@ -1885,12 +1911,12 @@ msgstr "Аргументът не се поддържа за форма̀та msgid "%.*s is not a valid attribute name" msgstr "„%.*s“ е неправилно име за атрибут" -#: attr.c:359 +#: attr.c:363 #, c-format msgid "%s not allowed: %s:%d" msgstr "%s: командата не е позволена: „%s:%d“" -#: attr.c:399 +#: attr.c:403 msgid "" "Negative patterns are ignored in git attributes\n" "Use '\\!' for literal leading exclamation." @@ -1972,7 +1998,7 @@ msgstr "Двоично търсене: трябва да се провери б msgid "a %s revision is needed" msgstr "необходима е версия „%s“" -#: bisect.c:941 builtin/notes.c:177 builtin/tag.c:287 +#: bisect.c:941 builtin/notes.c:177 builtin/tag.c:298 #, c-format msgid "could not create file '%s'" msgstr "файлът „%s“ не може да бъде създаден" @@ -2017,41 +2043,41 @@ msgid_plural "Bisecting: %d revisions left to test after this %s\n" msgstr[0] "Двоично търсене: остава %d версия след тази %s\n" msgstr[1] "Двоично търсене: остават %d версии след тази %s\n" -#: blame.c:2777 +#: blame.c:2776 msgid "--contents and --reverse do not blend well." -msgstr "Опциите „--contents“ и „--reverse“ са несъвместими" +msgstr "опциите „--contents“ и „--reverse“ са несъвместими" -#: blame.c:2791 +#: blame.c:2790 msgid "cannot use --contents with final commit object name" -msgstr "Опцията „--contents“ е несъвместима с име на обект от крайно подаване" +msgstr "опцията „--contents“ е несъвместима с име на обект от крайно подаване" -#: blame.c:2812 +#: blame.c:2811 msgid "--reverse and --first-parent together require specified latest commit" msgstr "" "Едновременното задаване на опциите „--reverse“ и „--first-parent“ изисква " "указването на крайно подаване" -#: blame.c:2821 bundle.c:213 ref-filter.c:2206 remote.c:2041 sequencer.c:2146 -#: sequencer.c:4641 submodule.c:856 builtin/commit.c:1045 builtin/log.c:411 -#: builtin/log.c:1016 builtin/log.c:1624 builtin/log.c:2045 builtin/log.c:2335 -#: builtin/merge.c:424 builtin/pack-objects.c:3395 builtin/pack-objects.c:3410 -#: builtin/shortlog.c:255 +#: blame.c:2820 bundle.c:213 ref-filter.c:2207 remote.c:2041 sequencer.c:2333 +#: sequencer.c:4866 submodule.c:857 builtin/commit.c:1106 builtin/log.c:411 +#: builtin/log.c:1018 builtin/log.c:1626 builtin/log.c:2054 builtin/log.c:2344 +#: builtin/merge.c:428 builtin/pack-objects.c:3183 builtin/pack-objects.c:3646 +#: builtin/pack-objects.c:3661 builtin/shortlog.c:255 msgid "revision walk setup failed" msgstr "неуспешно настройване на обхождането на версиите" -#: blame.c:2839 +#: blame.c:2838 msgid "" "--reverse --first-parent together require range along first-parent chain" msgstr "" "Едновременното задаване на опциите „--reverse“ и „--first-parent“ изисква " "указването на диапазон по веригата на първите наследници" -#: blame.c:2850 +#: blame.c:2849 #, c-format msgid "no such path %s in %s" msgstr "няма път на име „%s“ в „%s“" -#: blame.c:2861 +#: blame.c:2860 #, c-format msgid "cannot read blob %s for path %s" msgstr "обектът-BLOB „%s“ в пътя %s не може да бъде прочетен" @@ -2065,7 +2091,7 @@ msgid "" "\"git branch --set-upstream-to=%s%s%s\"." msgstr "" "\n" -"След корекция на грешката, можете да обновите\n" +"След корекция на грешката, може да обновите\n" "информацията за следения клон чрез:\n" "git branch --set-upstream-to=%s%s%s" @@ -2119,7 +2145,7 @@ msgstr "Клонът „%s“ ще следи локалния указател #: branch.c:119 msgid "Unable to write upstream branch configuration" -msgstr "Настройките за следения клон не могат да бъдат записани" +msgstr "Настройките за следения клон не може да бъдат записани" #: branch.c:156 #, c-format @@ -2184,12 +2210,12 @@ msgstr "Името на обект не е еднозначно: „%s“" msgid "Not a valid branch point: '%s'." msgstr "Неправилно място за начало на клон: „%s“" -#: branch.c:365 +#: branch.c:366 #, c-format msgid "'%s' is already checked out at '%s'" msgstr "„%s“ вече е изтеглен в „%s“" -#: branch.c:388 +#: branch.c:389 #, c-format msgid "HEAD of working tree %s is not updated" msgstr "Указателят „HEAD“ на работното дърво „%s“ не е обновен" @@ -2214,8 +2240,8 @@ msgstr "Файлът „%s“ не изглежда да е пратка на gi msgid "unrecognized header: %s%s (%d)" msgstr "непозната заглавна част: %s%s (%d)" -#: bundle.c:136 rerere.c:464 rerere.c:674 sequencer.c:2398 sequencer.c:3184 -#: builtin/commit.c:814 +#: bundle.c:136 rerere.c:464 rerere.c:674 sequencer.c:2593 sequencer.c:3385 +#: builtin/commit.c:861 #, c-format msgid "could not open '%s'" msgstr "„%s“ не може да се отвори" @@ -2274,7 +2300,7 @@ msgstr "неподдържана версия на индекса %d" msgid "cannot write bundle version %d with algorithm %s" msgstr "пратка %d не може да се запише с алгоритъм %s" -#: bundle.c:510 builtin/log.c:210 builtin/log.c:1926 builtin/shortlog.c:396 +#: bundle.c:510 builtin/log.c:210 builtin/log.c:1935 builtin/shortlog.c:396 #, c-format msgid "unrecognized argument: %s" msgstr "непознат аргумент: %s" @@ -2316,243 +2342,243 @@ msgstr "ненулев идентификатор за краен откъс %<P msgid "invalid color value: %.*s" msgstr "неправилна стойност за цвят: %.*s" -#: commit-graph.c:197 midx.c:46 +#: commit-graph.c:204 midx.c:47 msgid "invalid hash version" msgstr "неправилна версия на контролна сума" -#: commit-graph.c:255 +#: commit-graph.c:262 msgid "commit-graph file is too small" msgstr "файлът за гра̀фа с подаванията е твърде малък" -#: commit-graph.c:348 +#: commit-graph.c:355 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "отпечатъкът на гра̀фа с подаванията %X не съвпада с %X" -#: commit-graph.c:355 +#: commit-graph.c:362 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "версията на гра̀фа с подаванията %X не съвпада с %X" -#: commit-graph.c:362 +#: commit-graph.c:369 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "версията на контролната сума на гра̀фа с подаванията %X не съвпада с %X" -#: commit-graph.c:379 +#: commit-graph.c:386 #, c-format msgid "commit-graph file is too small to hold %u chunks" msgstr "файлът с гра̀фа на подаванията е твърде малък, за да съдържа %u откъси" -#: commit-graph.c:472 +#: commit-graph.c:482 msgid "commit-graph has no base graphs chunk" msgstr "базовият откъс липсва в гра̀фа с подаванията" -#: commit-graph.c:482 +#: commit-graph.c:492 msgid "commit-graph chain does not match" msgstr "веригата на гра̀фа с подаванията не съвпада" -#: commit-graph.c:530 +#: commit-graph.c:540 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "" "грешка във веригата на гра̀фа с подаванията: ред „%s“ не е контролна сума" -#: commit-graph.c:554 +#: commit-graph.c:564 msgid "unable to find all commit-graph files" -msgstr "някои файлове на гра̀фа с подаванията не могат да бъдат открити" +msgstr "някои файлове на гра̀фа с подаванията не може да бъдат открити" -#: commit-graph.c:735 commit-graph.c:772 +#: commit-graph.c:745 commit-graph.c:782 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "" "неправилна позиция на подаването. Вероятно графът с подаванията е повреден" -#: commit-graph.c:756 +#: commit-graph.c:766 #, c-format msgid "could not find commit %s" msgstr "подаването „%s“ не може да бъде открито" -#: commit-graph.c:789 +#: commit-graph.c:799 msgid "commit-graph requires overflow generation data but has none" msgstr "" "графът с подаванията изисква генериране на данни за отместването, но такива " "липсват" -#: commit-graph.c:1065 builtin/am.c:1292 +#: commit-graph.c:1075 builtin/am.c:1340 #, c-format msgid "unable to parse commit %s" msgstr "подаването не може да бъде анализирано: %s" -#: commit-graph.c:1327 builtin/pack-objects.c:2872 +#: commit-graph.c:1337 builtin/pack-objects.c:2897 #, c-format msgid "unable to get type of object %s" msgstr "видът на обекта „%s“ не може да бъде определен" -#: commit-graph.c:1358 +#: commit-graph.c:1368 msgid "Loading known commits in commit graph" msgstr "Зареждане на познатите подавания в гра̀фа с подаванията" -#: commit-graph.c:1375 +#: commit-graph.c:1385 msgid "Expanding reachable commits in commit graph" msgstr "Разширяване на достижимите подавания в гра̀фа" -#: commit-graph.c:1395 +#: commit-graph.c:1405 msgid "Clearing commit marks in commit graph" msgstr "Изчистване на отбелязванията на подаванията в гра̀фа с подаванията" -#: commit-graph.c:1414 +#: commit-graph.c:1424 msgid "Computing commit graph topological levels" msgstr "Изчисляване на топологичните нива в гра̀фа с подаванията" -#: commit-graph.c:1467 +#: commit-graph.c:1477 msgid "Computing commit graph generation numbers" msgstr "Изчисляване на номерата на поколенията в гра̀фа с подаванията" -#: commit-graph.c:1548 +#: commit-graph.c:1558 msgid "Computing commit changed paths Bloom filters" msgstr "Изчисляване на филтрите на Блум на пътищата с промяна при подаването" -#: commit-graph.c:1625 +#: commit-graph.c:1635 msgid "Collecting referenced commits" msgstr "Събиране на свързаните подавания" -#: commit-graph.c:1650 +#: commit-graph.c:1660 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Откриване на подаванията в гра̀фа в %d пакетен файл" msgstr[1] "Откриване на подаванията в гра̀фа в %d пакетни файла" -#: commit-graph.c:1663 +#: commit-graph.c:1673 #, c-format msgid "error adding pack %s" msgstr "грешка при добавяне на пакетен файл „%s“" -#: commit-graph.c:1667 +#: commit-graph.c:1677 #, c-format msgid "error opening index for %s" msgstr "грешка при отваряне на индекса на „%s“" -#: commit-graph.c:1704 +#: commit-graph.c:1714 msgid "Finding commits for commit graph among packed objects" msgstr "Откриване на подаванията в гра̀фа измежду пакетираните обекти" -#: commit-graph.c:1722 +#: commit-graph.c:1732 msgid "Finding extra edges in commit graph" msgstr "Откриване на още върхове в гра̀фа с подаванията" -#: commit-graph.c:1771 +#: commit-graph.c:1781 msgid "failed to write correct number of base graph ids" msgstr "правилният брой на базовите идентификатори не може да се запише" -#: commit-graph.c:1802 midx.c:794 +#: commit-graph.c:1812 midx.c:906 #, c-format msgid "unable to create leading directories of %s" -msgstr "родителските директории на „%s“ не могат да бъдат създадени" +msgstr "родителските директории на „%s“ не може да бъдат създадени" -#: commit-graph.c:1815 +#: commit-graph.c:1825 msgid "unable to create temporary graph layer" msgstr "не може да бъде създаден временен слой за гра̀фа с подаванията" -#: commit-graph.c:1820 +#: commit-graph.c:1830 #, c-format msgid "unable to adjust shared permissions for '%s'" -msgstr "правата за споделен достъп до „%s“ не могат да бъдат зададени" +msgstr "правата за споделен достъп до „%s“ не може да бъдат зададени" -#: commit-graph.c:1879 +#: commit-graph.c:1887 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Запазване на гра̀фа с подаванията в %d пас" msgstr[1] "Запазване на гра̀фа с подаванията в %d паса" -#: commit-graph.c:1915 +#: commit-graph.c:1923 msgid "unable to open commit-graph chain file" msgstr "файлът с веригата на гра̀фа с подаванията не може да се отвори" -#: commit-graph.c:1931 +#: commit-graph.c:1939 msgid "failed to rename base commit-graph file" msgstr "основният файл на гра̀фа с подаванията не може да бъде преименуван" -#: commit-graph.c:1951 +#: commit-graph.c:1959 msgid "failed to rename temporary commit-graph file" msgstr "временният файл на гра̀фа с подаванията не може да бъде преименуван" -#: commit-graph.c:2084 +#: commit-graph.c:2092 msgid "Scanning merged commits" msgstr "Търсене на подаванията със сливания" -#: commit-graph.c:2128 +#: commit-graph.c:2136 msgid "Merging commit-graph" msgstr "Сливане на гра̀фа с подаванията" -#: commit-graph.c:2235 +#: commit-graph.c:2244 msgid "attempting to write a commit-graph, but 'core.commitGraph' is disabled" msgstr "" "опит за запис на гра̀фа с подаванията, но настройката „core.commitGraph“ е " "изключена" -#: commit-graph.c:2342 +#: commit-graph.c:2351 msgid "too many commits to write graph" msgstr "прекалено много подавания за записване на гра̀фа" -#: commit-graph.c:2440 +#: commit-graph.c:2450 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "графът с подаванията е с грешна сума за проверка — вероятно е повреден" -#: commit-graph.c:2450 +#: commit-graph.c:2460 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "" "неправилна подредба на обектите по идентификатор в гра̀фа с подаванията: „%s“ " "е преди „%s“, а не трябва" -#: commit-graph.c:2460 commit-graph.c:2475 +#: commit-graph.c:2470 commit-graph.c:2485 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "" "неправилна стойност за откъс в гра̀фа с подаванията: fanout[%d] = %u, а " "трябва да е %u" -#: commit-graph.c:2467 +#: commit-graph.c:2477 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "подаване „%s“ в гра̀фа с подаванията не може да се анализира" -#: commit-graph.c:2485 +#: commit-graph.c:2495 msgid "Verifying commits in commit graph" msgstr "Проверка на подаванията в гра̀фа" -#: commit-graph.c:2500 +#: commit-graph.c:2510 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "подаване „%s“ в базата от данни към гра̀фа с подаванията не може да се " "анализира" -#: commit-graph.c:2507 +#: commit-graph.c:2517 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" "идентификаторът на обект за кореновото дърво за подаване „%s“ в гра̀фа с " "подаванията е „%s“, а трябва да е „%s“" -#: commit-graph.c:2517 +#: commit-graph.c:2527 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "списъкът с родители на „%s“ в гра̀фа с подаванията е прекалено дълъг" -#: commit-graph.c:2526 +#: commit-graph.c:2536 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "родителят на „%s“ в гра̀фа с подаванията е „%s“, а трябва да е „%s“" -#: commit-graph.c:2540 +#: commit-graph.c:2550 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "списъкът с родители на „%s“ в гра̀фа с подаванията е прекалено къс" -#: commit-graph.c:2545 +#: commit-graph.c:2555 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2560,7 +2586,7 @@ msgstr "" "номерът на поколението на подаване „%s“ в гра̀фа с подаванията е 0, а другаде " "не е" -#: commit-graph.c:2549 +#: commit-graph.c:2559 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2568,22 +2594,22 @@ msgstr "" "номерът на поколението на подаване „%s“ в гра̀фа с подаванията не е 0, а " "другаде е" -#: commit-graph.c:2566 +#: commit-graph.c:2576 #, c-format msgid "commit-graph generation for commit %s is %<PRIuMAX> < %<PRIuMAX>" msgstr "" "номерът на поколението на подаване „%s“ в гра̀фа с подаванията е %<PRIuMAX> < " "%<PRIuMAX>" -#: commit-graph.c:2572 +#: commit-graph.c:2582 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" "датата на подаване на „%s“ в гра̀фа с подаванията е %<PRIuMAX>, а трябва да е " "%<PRIuMAX>" -#: commit.c:52 sequencer.c:2887 builtin/am.c:359 builtin/am.c:403 -#: builtin/am.c:1371 builtin/am.c:2018 builtin/replace.c:457 +#: commit.c:52 sequencer.c:3088 builtin/am.c:371 builtin/am.c:416 +#: builtin/am.c:421 builtin/am.c:1419 builtin/am.c:2066 builtin/replace.c:457 #, c-format msgid "could not parse %s" msgstr "„%s“ не може да се анализира" @@ -2616,29 +2642,29 @@ msgstr "" "\n" " git config advice.graftFileDeprecated false" -#: commit.c:1223 +#: commit.c:1237 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" "Подаването „%s“ е с недоверен подпис от GPG, който твърди, че е на „%s“." -#: commit.c:1227 +#: commit.c:1241 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "" "Подаването „%s“ е с неправилен подпис от GPG, който твърди, че е на „%s“." -#: commit.c:1230 +#: commit.c:1244 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Подаването „%s“ е без подпис от GPG." -#: commit.c:1233 +#: commit.c:1247 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "Подаването „%s“ е с коректен подпис от GPG на „%s“.\n" -#: commit.c:1487 +#: commit.c:1501 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" @@ -2705,7 +2731,7 @@ msgstr "ключът не съдържа раздел: „%s“" msgid "key does not contain variable name: %s" msgstr "ключът не съдържа име на променлива: „%s“" -#: config.c:472 sequencer.c:2588 +#: config.c:472 sequencer.c:2785 #, c-format msgid "invalid key: %s" msgstr "неправилен ключ: „%s“" @@ -2822,51 +2848,51 @@ msgstr "неправилна числова стойност „%s“ за „%s msgid "bad numeric config value '%s' for '%s' in %s: %s" msgstr "неправилна числова стойност „%s“ за „%s“ в %s: %s" -#: config.c:1194 +#: config.c:1257 #, c-format msgid "bad boolean config value '%s' for '%s'" msgstr "неправилна булева стойност „%s“ за „%s“" -#: config.c:1289 +#: config.c:1275 #, c-format msgid "failed to expand user dir in: '%s'" msgstr "домашната папка на потребителя не може да бъде открита: „%s“" -#: config.c:1298 +#: config.c:1284 #, c-format msgid "'%s' for '%s' is not a valid timestamp" msgstr "„%s“ не е правилна стойност за време за „%s“" -#: config.c:1391 +#: config.c:1377 #, c-format msgid "abbrev length out of range: %d" msgstr "дължината на съкращаване е извън интервала ([4; 40]): %d" -#: config.c:1405 config.c:1416 +#: config.c:1391 config.c:1402 #, c-format msgid "bad zlib compression level %d" msgstr "неправилно ниво на компресиране: %d" -#: config.c:1508 +#: config.c:1494 msgid "core.commentChar should only be one character" msgstr "настройката „core.commentChar“ трябва да е само един знак" -#: config.c:1541 +#: config.c:1527 #, c-format msgid "invalid mode for object creation: %s" msgstr "неправилен режим за създаването на обекти: %s" -#: config.c:1613 +#: config.c:1599 #, c-format msgid "malformed value for %s" msgstr "неправилна стойност за „%s“" -#: config.c:1639 +#: config.c:1625 #, c-format msgid "malformed value for %s: %s" msgstr "неправилна стойност за „%s“: „%s“" -#: config.c:1640 +#: config.c:1626 msgid "must be one of nothing, matching, simple, upstream or current" msgstr "" "трябва да е една от следните стойности: „nothing“ (без изтласкване при липса " @@ -2874,22 +2900,22 @@ msgstr "" "„simple“ (клонът със същото име, от който се издърпва), „upstream“ (клонът, " "от който се издърпва) или „current“ (клонът със същото име)" -#: config.c:1701 builtin/pack-objects.c:3666 +#: config.c:1687 builtin/pack-objects.c:3924 #, c-format msgid "bad pack compression level %d" msgstr "неправилно ниво на компресиране при пакетиране: %d" -#: config.c:1823 +#: config.c:1809 #, c-format msgid "unable to load config blob object '%s'" msgstr "обектът-BLOB „%s“ с конфигурации не може да се зареди" -#: config.c:1826 +#: config.c:1812 #, c-format msgid "reference '%s' does not point to a blob" msgstr "указателят „%s“ не сочи към обект-BLOB" -#: config.c:1843 +#: config.c:1829 #, c-format msgid "unable to resolve config blob '%s'" msgstr "обектът-BLOB „%s“ с конфигурации не може да бъде открит" @@ -2899,107 +2925,107 @@ msgstr "обектът-BLOB „%s“ с конфигурации не може msgid "failed to parse %s" msgstr "„%s“ не може да бъде анализиран" -#: config.c:1927 +#: config.c:1929 msgid "unable to parse command-line config" msgstr "неправилни настройки от командния ред" -#: config.c:2290 +#: config.c:2293 msgid "unknown error occurred while reading the configuration files" msgstr "неочаквана грешка при изчитането на конфигурационните файлове" -#: config.c:2464 +#: config.c:2467 #, c-format msgid "Invalid %s: '%s'" msgstr "Неправилен %s: „%s“" -#: config.c:2509 +#: config.c:2512 #, c-format msgid "splitIndex.maxPercentChange value '%d' should be between 0 and 100" msgstr "" "стойността на „splitIndex.maxPercentChange“ трябва да е между 1 и 100, а не " "%d" -#: config.c:2555 +#: config.c:2558 #, c-format msgid "unable to parse '%s' from command-line config" msgstr "неразпозната стойност „%s“ от командния ред" -#: config.c:2557 +#: config.c:2560 #, c-format msgid "bad config variable '%s' in file '%s' at line %d" msgstr "неправилна настройка „%s“ във файла „%s“ на ред №%d" -#: config.c:2641 +#: config.c:2644 #, c-format msgid "invalid section name '%s'" msgstr "неправилно име на раздел: „%s“" -#: config.c:2673 +#: config.c:2676 #, c-format msgid "%s has multiple values" msgstr "зададени са няколко стойности за „%s“" -#: config.c:2702 +#: config.c:2705 #, c-format msgid "failed to write new configuration file %s" msgstr "новият конфигурационен файл „%s“ не може да бъде запазен" -#: config.c:2954 config.c:3280 +#: config.c:2957 config.c:3283 #, c-format msgid "could not lock config file %s" msgstr "конфигурационният файл „%s“ не може да бъде заключен" -#: config.c:2965 +#: config.c:2968 #, c-format msgid "opening %s" msgstr "отваряне на „%s“" -#: config.c:3002 builtin/config.c:361 +#: config.c:3005 builtin/config.c:361 #, c-format msgid "invalid pattern: %s" msgstr "неправилен шаблон: %s" -#: config.c:3027 +#: config.c:3030 #, c-format msgid "invalid config file %s" msgstr "неправилен конфигурационен файл: „%s“" -#: config.c:3040 config.c:3293 +#: config.c:3043 config.c:3296 #, c-format msgid "fstat on %s failed" msgstr "неуспешно изпълнение на „fstat“ върху „%s“" -#: config.c:3051 +#: config.c:3054 #, c-format msgid "unable to mmap '%s'" msgstr "неуспешно изпълнение на „mmap“ върху „%s“" -#: config.c:3060 config.c:3298 +#: config.c:3063 config.c:3301 #, c-format msgid "chmod on %s failed" msgstr "неуспешна смяна на права с „chmod“ върху „%s“" -#: config.c:3145 config.c:3395 +#: config.c:3148 config.c:3398 #, c-format msgid "could not write config file %s" msgstr "конфигурационният файл „%s“ не може да бъде записан" -#: config.c:3179 +#: config.c:3182 #, c-format msgid "could not set '%s' to '%s'" msgstr "„%s“ не може да се зададе да е „%s“" -#: config.c:3181 builtin/remote.c:657 builtin/remote.c:855 builtin/remote.c:863 +#: config.c:3184 builtin/remote.c:657 builtin/remote.c:855 builtin/remote.c:863 #, c-format msgid "could not unset '%s'" msgstr "„%s“ не може да се премахне" -#: config.c:3271 +#: config.c:3274 #, c-format msgid "invalid section name: %s" msgstr "неправилно име на раздел: %s" -#: config.c:3438 +#: config.c:3441 #, c-format msgid "missing value for '%s'" msgstr "липсва стойност за „%s“" @@ -3183,7 +3209,7 @@ msgstr "необичайният път „%s“ е блокиран" msgid "unable to fork" msgstr "неуспешно създаване на процес" -#: connected.c:108 builtin/fsck.c:191 builtin/prune.c:45 +#: connected.c:108 builtin/fsck.c:188 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Проверка на свързаността" @@ -3199,17 +3225,17 @@ msgstr "неуспешен запис на списъка с версиите" msgid "failed to close rev-list's stdin" msgstr "стандартният вход на списъка с версиите не може да бъде затворен" -#: convert.c:194 +#: convert.c:183 #, c-format msgid "illegal crlf_action %d" msgstr "неправилно действие за край на ред: %d" -#: convert.c:207 +#: convert.c:196 #, c-format msgid "CRLF would be replaced by LF in %s" msgstr "Всяка последователност от знаци „CRLF“ ще бъдe заменена с „LF“ в „%s“." -#: convert.c:209 +#: convert.c:198 #, c-format msgid "" "CRLF will be replaced by LF in %s.\n" @@ -3219,13 +3245,13 @@ msgstr "" "Файлът ще остане с първоначалните знаци за край на ред в работната ви " "директория." -#: convert.c:217 +#: convert.c:206 #, c-format msgid "LF would be replaced by CRLF in %s" msgstr "" "Всеки знак „LF“ ще бъдe заменен с последователността от знаци „CRLF“ в „%s“." -#: convert.c:219 +#: convert.c:208 #, c-format msgid "" "LF will be replaced by CRLF in %s.\n" @@ -3236,14 +3262,14 @@ msgstr "" "Файлът ще остане с първоначалните знаци за край на ред в работната ви " "директория." -#: convert.c:284 +#: convert.c:273 #, c-format msgid "BOM is prohibited in '%s' if encoded as %s" msgstr "" "„%s“ не трябва да съдържа маркер за поредността на байтовете (BOM) при " "кодиране „%s“" -#: convert.c:291 +#: convert.c:280 #, c-format msgid "" "The file '%s' contains a byte order mark (BOM). Please use UTF-%.*s as " @@ -3252,14 +3278,14 @@ msgstr "" "Файлът „%s“ съдържа маркер за поредността на байтовете (BOM). Използвайте " "„UTF-%.*s“ като кодиране за работното дърво." -#: convert.c:304 +#: convert.c:293 #, c-format msgid "BOM is required in '%s' if encoded as %s" msgstr "" "„%s“ трябва да съдържа маркер за поредността на байтовете (BOM) при кодиране " "„%s“" -#: convert.c:306 +#: convert.c:295 #, c-format msgid "" "The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-" @@ -3269,50 +3295,50 @@ msgstr "" "на работното дърво използвайте UTF-%sBE или UTF-%sLE (в зависимост от " "поредността на байтовете)." -#: convert.c:419 convert.c:490 +#: convert.c:408 convert.c:479 #, c-format msgid "failed to encode '%s' from %s to %s" msgstr "неуспешно прекодиране на „%s“ от „%s“ към „%s“" -#: convert.c:462 +#: convert.c:451 #, c-format msgid "encoding '%s' from %s to %s and back is not the same" msgstr "Прекодирането на „%s“ от „%s“ към „%s“ и обратно променя файла" -#: convert.c:665 +#: convert.c:654 #, c-format msgid "cannot fork to run external filter '%s'" msgstr "неуспешно създаване на процес за външен филтър „%s“" -#: convert.c:685 +#: convert.c:674 #, c-format msgid "cannot feed the input to external filter '%s'" msgstr "входът не може да бъде подаден на външния филтър „%s“" -#: convert.c:692 +#: convert.c:681 #, c-format msgid "external filter '%s' failed %d" msgstr "неуспешно изпълнение на външния филтър „%s“: %d" -#: convert.c:727 convert.c:730 +#: convert.c:716 convert.c:719 #, c-format msgid "read from external filter '%s' failed" msgstr "неуспешно четене от външния филтър „%s“" -#: convert.c:733 convert.c:788 +#: convert.c:722 convert.c:777 #, c-format msgid "external filter '%s' failed" msgstr "неуспешно изпълнение на външния филтър „%s“" -#: convert.c:837 +#: convert.c:826 msgid "unexpected filter type" msgstr "неочакван вид филтър" -#: convert.c:848 +#: convert.c:837 msgid "path name too long for external filter" msgstr "пътят е прекалено дълъг за външен филтър" -#: convert.c:940 +#: convert.c:934 #, c-format msgid "" "external filter '%s' is not available anymore although not all paths have " @@ -3321,17 +3347,17 @@ msgstr "" "външният филтър „%s“ вече не е наличен, въпреки че не всички пътища са " "филтрирани" -#: convert.c:1240 +#: convert.c:1234 msgid "true/false are no valid working-tree-encodings" msgstr "" "„true“/„false“ (истина/лъжа̀) не може да са кодирания на работното дърво" -#: convert.c:1428 convert.c:1462 +#: convert.c:1414 convert.c:1447 #, c-format msgid "%s: clean filter '%s' failed" msgstr "%s: неуспешно изпълнение на декодиращ филтър „%s“" -#: convert.c:1508 +#: convert.c:1490 #, c-format msgid "%s: smudge filter %s failed" msgstr "%s: неуспешно изпълнение на кодиращ филтър „%s“" @@ -3458,28 +3484,28 @@ msgstr "" msgid "Marked %d islands, done.\n" msgstr "Отбелязани са %d групи, работата приключи.\n" -#: diff-merges.c:70 +#: diff-merges.c:80 #, c-format msgid "unknown value for --diff-merges: %s" msgstr "непозната стойност за опцията „--diff-merges“: „%s“" -#: diff-lib.c:534 +#: diff-lib.c:538 msgid "--merge-base does not work with ranges" msgstr "опцията „--merge-base“ не работи с диапазони" -#: diff-lib.c:536 +#: diff-lib.c:540 msgid "--merge-base only works with commits" msgstr "опцията „--merge-base“ работи само с подавания" -#: diff-lib.c:553 +#: diff-lib.c:557 msgid "unable to get HEAD" msgstr "Указателят „HEAD“ не може да бъде получен" -#: diff-lib.c:560 +#: diff-lib.c:564 msgid "no merge base found" msgstr "липсва база за сливане" -#: diff-lib.c:562 +#: diff-lib.c:566 msgid "multiple merge bases found" msgstr "много бази за сливане" @@ -3551,38 +3577,38 @@ msgstr "" "Грешки в настройката „diff.dirstat“:\n" "%s" -#: diff.c:4276 +#: diff.c:4278 #, c-format msgid "external diff died, stopping at %s" msgstr "" "външната програма за разлики завърши неуспешно. Спиране на работата при „%s“" -#: diff.c:4628 +#: diff.c:4630 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "" -"Опциите „--name-only“, „--name-status“, „--check“ и „-s“ са несъвместими " +"опциите „--name-only“, „--name-status“, „--check“ и „-s“ са несъвместими " "една с друга" -#: diff.c:4631 +#: diff.c:4633 msgid "-G, -S and --find-object are mutually exclusive" -msgstr "Опциите „-G“, „-S“ и „--find-object“ са несъвместими една с друга" +msgstr "опциите „-G“, „-S“ и „--find-object“ са несъвместими една с друга" -#: diff.c:4710 +#: diff.c:4712 msgid "--follow requires exactly one pathspec" -msgstr "Опцията „--follow“ изисква точно един път" +msgstr "опцията „--follow“ изисква точно един път" -#: diff.c:4758 +#: diff.c:4760 #, c-format msgid "invalid --stat value: %s" msgstr "неправилна стойност за „--stat“: %s" -#: diff.c:4763 diff.c:4768 diff.c:4773 diff.c:4778 diff.c:5306 +#: diff.c:4765 diff.c:4770 diff.c:4775 diff.c:4780 diff.c:5308 #: parse-options.c:197 parse-options.c:201 builtin/commit-graph.c:180 #, c-format msgid "%s expects a numerical value" msgstr "опцията „%s“ очаква число за аргумент" -#: diff.c:4795 +#: diff.c:4797 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3591,44 +3617,44 @@ msgstr "" "Неразпознат параметър към опцията „--dirstat/-X“:\n" "%s" -#: diff.c:4880 +#: diff.c:4882 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "непознат вид промяна: „%c“ в „--diff-filter=%s“" -#: diff.c:4904 +#: diff.c:4906 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "непозната стойност след „ws-error-highlight=%.*s“" -#: diff.c:4918 +#: diff.c:4920 #, c-format msgid "unable to resolve '%s'" msgstr "„%s“ не може да се открие" -#: diff.c:4968 diff.c:4974 +#: diff.c:4970 diff.c:4976 #, c-format msgid "%s expects <n>/<m> form" msgstr "" "опцията „%s“ изисква стойности за МИНИМАЛЕН_%%_ПРОМЯНА_ЗА_ИЗТОЧНИК_/" "МАКСИМАЛЕН_%%_ПРОМЯНА_ЗА_ЗАМЯНА от" -#: diff.c:4986 +#: diff.c:4988 #, c-format msgid "%s expects a character, got '%s'" msgstr "опцията „%s“ изисква знак, а не: „%s“" -#: diff.c:5007 +#: diff.c:5009 #, c-format msgid "bad --color-moved argument: %s" msgstr "неправилен аргумент за „--color-moved“: „%s“" -#: diff.c:5026 +#: diff.c:5028 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "неправилен режим „%s“ за „ --color-moved-ws“" -#: diff.c:5066 +#: diff.c:5068 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3637,158 +3663,158 @@ msgstr "" "Майерс), „minimal“ (минимизиране на разликите), „patience“ (пасианс) и " "„histogram“ (хистограмен)" -#: diff.c:5102 diff.c:5122 +#: diff.c:5104 diff.c:5124 #, c-format msgid "invalid argument to %s" msgstr "неправилен аргумент към „%s“" -#: diff.c:5226 +#: diff.c:5228 #, c-format msgid "invalid regex given to -I: '%s'" msgstr "неправилен регулярен израз подаден към „-I“: „%s“" -#: diff.c:5275 +#: diff.c:5277 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "неразпознат параметър към опцията „--submodule“: „%s“" -#: diff.c:5331 +#: diff.c:5333 #, c-format msgid "bad --word-diff argument: %s" msgstr "неправилен аргумент към „--word-diff“: „%s“" -#: diff.c:5367 +#: diff.c:5369 msgid "Diff output format options" msgstr "Формат на изхода за разликите" -#: diff.c:5369 diff.c:5375 +#: diff.c:5371 diff.c:5377 msgid "generate patch" msgstr "създаване на кръпки" -#: diff.c:5372 builtin/log.c:179 +#: diff.c:5374 builtin/log.c:179 msgid "suppress diff output" msgstr "без извеждане на разликите" -#: diff.c:5377 diff.c:5491 diff.c:5498 +#: diff.c:5379 diff.c:5493 diff.c:5500 msgid "<n>" msgstr "БРОЙ" -#: diff.c:5378 diff.c:5381 +#: diff.c:5380 diff.c:5383 msgid "generate diffs with <n> lines context" msgstr "файловете с разлики да са с контекст с такъв БРОЙ редове" -#: diff.c:5383 +#: diff.c:5385 msgid "generate the diff in raw format" msgstr "файловете с разлики да са в суров формат" -#: diff.c:5386 +#: diff.c:5388 msgid "synonym for '-p --raw'" msgstr "псевдоним на „-p --stat“" -#: diff.c:5390 +#: diff.c:5392 msgid "synonym for '-p --stat'" msgstr "псевдоним на „-p --stat“" -#: diff.c:5394 +#: diff.c:5396 msgid "machine friendly --stat" msgstr "„--stat“ във формат за четене от програма" -#: diff.c:5397 +#: diff.c:5399 msgid "output only the last line of --stat" msgstr "извеждане само на последния ред на „--stat“" -#: diff.c:5399 diff.c:5407 +#: diff.c:5401 diff.c:5409 msgid "<param1,param2>..." msgstr "ПАРАМЕТЪР_1, ПАРАМЕТЪР_2, …" -#: diff.c:5400 +#: diff.c:5402 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "извеждане на разпределението на промените за всяка поддиректория" -#: diff.c:5404 +#: diff.c:5406 msgid "synonym for --dirstat=cumulative" msgstr "псевдоним на „--dirstat=cumulative“" -#: diff.c:5408 +#: diff.c:5410 msgid "synonym for --dirstat=files,param1,param2..." msgstr "псевдоним на „--dirstat=ФАЙЛОВЕ,ПАРАМЕТЪР_1,ПАРАМЕТЪР_2,…“" -#: diff.c:5412 +#: diff.c:5414 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "предупреждаване, ако промените водят до маркери за конфликт или грешки в " "празните знаци" -#: diff.c:5415 +#: diff.c:5417 msgid "condensed summary such as creations, renames and mode changes" msgstr "" "съкратено резюме на създадените, преименуваните и файловете с промяна на " "режима на достъп" -#: diff.c:5418 +#: diff.c:5420 msgid "show only names of changed files" msgstr "извеждане само на имената на променените файлове" -#: diff.c:5421 +#: diff.c:5423 msgid "show only names and status of changed files" msgstr "извеждане само на имената и статистиката за променените файлове" -#: diff.c:5423 +#: diff.c:5425 msgid "<width>[,<name-width>[,<count>]]" msgstr "ШИРОЧИНА[,ИМЕ-ШИРОЧИНА[,БРОЙ]]" -#: diff.c:5424 +#: diff.c:5426 msgid "generate diffstat" msgstr "извеждане на статистика за промените" -#: diff.c:5426 diff.c:5429 diff.c:5432 +#: diff.c:5428 diff.c:5431 diff.c:5434 msgid "<width>" msgstr "ШИРОЧИНА" -#: diff.c:5427 +#: diff.c:5429 msgid "generate diffstat with a given width" msgstr "статистика с такава ШИРОЧИНА за промените" -#: diff.c:5430 +#: diff.c:5432 msgid "generate diffstat with a given name width" msgstr "статистика за промените с такава ШИРОЧИНА на имената" -#: diff.c:5433 +#: diff.c:5435 msgid "generate diffstat with a given graph width" msgstr "статистика за промените с такава ШИРОЧИНА на гра̀фа" -#: diff.c:5435 +#: diff.c:5437 msgid "<count>" msgstr "БРОЙ" -#: diff.c:5436 +#: diff.c:5438 msgid "generate diffstat with limited lines" msgstr "ограничаване на БРОя на редовете в статистиката за промените" -#: diff.c:5439 +#: diff.c:5441 msgid "generate compact summary in diffstat" msgstr "кратко резюме в статистиката за промените" -#: diff.c:5442 +#: diff.c:5444 msgid "output a binary diff that can be applied" msgstr "извеждане на двоична разлика във вид за прилагане" -#: diff.c:5445 +#: diff.c:5447 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "" "показване на пълните имена на обекти в редовете за индекса при вариантите " "преди и след промяната" -#: diff.c:5447 +#: diff.c:5449 msgid "show colored diff" msgstr "разлики в цвят" -#: diff.c:5448 +#: diff.c:5450 msgid "<kind>" msgstr "ВИД" -#: diff.c:5449 +#: diff.c:5451 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3796,7 +3822,7 @@ msgstr "" "грешките в празните знаци да се указват в редовете за контекста, вариантите " "преди и след разликата," -#: diff.c:5452 +#: diff.c:5454 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3804,261 +3830,261 @@ msgstr "" "без преименуване на пътищата. Да се използват нулеви байтове за разделители " "на полета в изхода при ползване на опцията „--raw“ или „--numstat“" -#: diff.c:5455 diff.c:5458 diff.c:5461 diff.c:5570 +#: diff.c:5457 diff.c:5460 diff.c:5463 diff.c:5572 msgid "<prefix>" msgstr "ПРЕФИКС" -#: diff.c:5456 +#: diff.c:5458 msgid "show the given source prefix instead of \"a/\"" msgstr "префикс вместо „a/“ за източник" -#: diff.c:5459 +#: diff.c:5461 msgid "show the given destination prefix instead of \"b/\"" msgstr "префикс вместо „b/“ за цел" -#: diff.c:5462 +#: diff.c:5464 msgid "prepend an additional prefix to every line of output" msgstr "добавяне на допълнителен префикс за всеки ред на изхода" -#: diff.c:5465 +#: diff.c:5467 msgid "do not show any source or destination prefix" msgstr "без префикс за източника и целта" -#: diff.c:5468 +#: diff.c:5470 msgid "show context between diff hunks up to the specified number of lines" msgstr "" "извеждане на контекст между последователните парчета с разлики от указания " "БРОЙ редове" -#: diff.c:5472 diff.c:5477 diff.c:5482 +#: diff.c:5474 diff.c:5479 diff.c:5484 msgid "<char>" msgstr "ЗНАК" -#: diff.c:5473 +#: diff.c:5475 msgid "specify the character to indicate a new line instead of '+'" msgstr "знак вместо „+“ за нов вариант на ред" -#: diff.c:5478 +#: diff.c:5480 msgid "specify the character to indicate an old line instead of '-'" msgstr "знак вместо „-“ за стар вариант на ред" -#: diff.c:5483 +#: diff.c:5485 msgid "specify the character to indicate a context instead of ' '" msgstr "знак вместо „ “ за контекст" -#: diff.c:5486 +#: diff.c:5488 msgid "Diff rename options" msgstr "Настройки за разлики с преименуване" -#: diff.c:5487 +#: diff.c:5489 msgid "<n>[/<m>]" msgstr "МИНИМАЛЕН_%_ПРОМЯНА_ЗА_ИЗТОЧНИК[/МАКСИМАЛEН_%_ПРОМЯНА_ЗА_ЗАМЯНА]" -#: diff.c:5488 +#: diff.c:5490 msgid "break complete rewrite changes into pairs of delete and create" msgstr "" "заместване на пълните промени с последователност от изтриване и създаване" -#: diff.c:5492 +#: diff.c:5494 msgid "detect renames" msgstr "засичане на преименуванията" -#: diff.c:5496 +#: diff.c:5498 msgid "omit the preimage for deletes" msgstr "без предварителен вариант при изтриване" -#: diff.c:5499 +#: diff.c:5501 msgid "detect copies" msgstr "засичане на копиранията" -#: diff.c:5503 +#: diff.c:5505 msgid "use unmodified files as source to find copies" msgstr "търсене на копирано и от непроменените файлове" -#: diff.c:5505 +#: diff.c:5507 msgid "disable rename detection" msgstr "без търсене на преименувания" -#: diff.c:5508 +#: diff.c:5510 msgid "use empty blobs as rename source" msgstr "празни обекти като източник при преименувания" -#: diff.c:5510 +#: diff.c:5512 msgid "continue listing the history of a file beyond renames" msgstr "" "продължаване на извеждането на историята — без отрязването при преименувания " "на файл" -#: diff.c:5513 +#: diff.c:5515 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" msgstr "" "без засичане на преименувания/копирания, ако броят им надвишава тази стойност" -#: diff.c:5515 +#: diff.c:5517 msgid "Diff algorithm options" msgstr "Опции към алгоритъма за разлики" -#: diff.c:5517 +#: diff.c:5519 msgid "produce the smallest possible diff" msgstr "търсене на възможно най-малка разлика" -#: diff.c:5520 +#: diff.c:5522 msgid "ignore whitespace when comparing lines" msgstr "без промени в празните знаци при сравняване на редове" -#: diff.c:5523 +#: diff.c:5525 msgid "ignore changes in amount of whitespace" msgstr "без промени в празните знаци" -#: diff.c:5526 +#: diff.c:5528 msgid "ignore changes in whitespace at EOL" msgstr "без промени в празните знаци в края на редовете" -#: diff.c:5529 +#: diff.c:5531 msgid "ignore carrier-return at the end of line" msgstr "без промени в знаците за край на ред" -#: diff.c:5532 +#: diff.c:5534 msgid "ignore changes whose lines are all blank" msgstr "без промени в редовете, които са изцяло от празни знаци" -#: diff.c:5534 diff.c:5556 diff.c:5559 diff.c:5604 +#: diff.c:5536 diff.c:5558 diff.c:5561 diff.c:5606 msgid "<regex>" msgstr "РЕГУЛЯРЕН_ИЗРАЗ" -#: diff.c:5535 +#: diff.c:5537 msgid "ignore changes whose all lines match <regex>" msgstr "без промени в редовете, които напасват РЕГУЛЯРНия_ИЗРАЗ" -#: diff.c:5538 +#: diff.c:5540 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "" "евристика за преместване на границите на парчетата за улесняване на четенето" -#: diff.c:5541 +#: diff.c:5543 msgid "generate diff using the \"patience diff\" algorithm" msgstr "разлика чрез алгоритъм за подредба като пасианс" -#: diff.c:5545 +#: diff.c:5547 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "разлика по хистограмния алгоритъм" -#: diff.c:5547 +#: diff.c:5549 msgid "<algorithm>" msgstr "АЛГОРИТЪМ" -#: diff.c:5548 +#: diff.c:5550 msgid "choose a diff algorithm" msgstr "избор на АЛГОРИТЪМа за разлики" -#: diff.c:5550 +#: diff.c:5552 msgid "<text>" msgstr "ТЕКСТ" -#: diff.c:5551 +#: diff.c:5553 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "разлика чрез алгоритъма със закотвяне" -#: diff.c:5553 diff.c:5562 diff.c:5565 +#: diff.c:5555 diff.c:5564 diff.c:5567 msgid "<mode>" msgstr "РЕЖИМ" -#: diff.c:5554 +#: diff.c:5556 msgid "show word diff, using <mode> to delimit changed words" msgstr "" "разлика по думи, като се ползва този РЕЖИМ за отделянето на променените думи" -#: diff.c:5557 +#: diff.c:5559 msgid "use <regex> to decide what a word is" msgstr "РЕГУЛЯРЕН_ИЗРАЗ за разделяне по думи" -#: diff.c:5560 +#: diff.c:5562 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "псевдоним на „--word-diff=color --word-diff-regex=РЕГУЛЯРЕН_ИЗРАЗ“" -#: diff.c:5563 +#: diff.c:5565 msgid "moved lines of code are colored differently" msgstr "различен цвят за извеждане на преместените редове" -#: diff.c:5566 +#: diff.c:5568 msgid "how white spaces are ignored in --color-moved" msgstr "" "режим за прескачането на празните знаци при задаването на „--color-moved“" -#: diff.c:5569 +#: diff.c:5571 msgid "Other diff options" msgstr "Други опции за разлики" -#: diff.c:5571 +#: diff.c:5573 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "при изпълнение от поддиректория да се пренебрегват разликите извън нея и да " "се ползват относителни пътища" -#: diff.c:5575 +#: diff.c:5577 msgid "treat all files as text" msgstr "обработка на всички файлове като текстови" -#: diff.c:5577 +#: diff.c:5579 msgid "swap two inputs, reverse the diff" msgstr "размяна на двата входа — обръщане на разликата" -#: diff.c:5579 +#: diff.c:5581 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "" "завършване с код за състояние 1 при наличието на разлики, а в противен " "случай — с 0" -#: diff.c:5581 +#: diff.c:5583 msgid "disable all output of the program" msgstr "без всякакъв изход от програмата" -#: diff.c:5583 +#: diff.c:5585 msgid "allow an external diff helper to be executed" msgstr "позволяване на изпълнение на външна помощна програма за разлики" -#: diff.c:5585 +#: diff.c:5587 msgid "run external text conversion filters when comparing binary files" msgstr "" "изпълнение на външни програми-филтри при сравнението на двоични файлове" -#: diff.c:5587 +#: diff.c:5589 msgid "<when>" msgstr "КОГА" -#: diff.c:5588 +#: diff.c:5590 msgid "ignore changes to submodules in the diff generation" msgstr "игнориране на промените в подмодулите при извеждането на разликите" -#: diff.c:5591 +#: diff.c:5593 msgid "<format>" msgstr "ФОРМАТ" -#: diff.c:5592 +#: diff.c:5594 msgid "specify how differences in submodules are shown" msgstr "начин за извеждане на промените в подмодулите" -#: diff.c:5596 +#: diff.c:5598 msgid "hide 'git add -N' entries from the index" msgstr "без включване в индекса на записите, добавени с „git add -N“" -#: diff.c:5599 +#: diff.c:5601 msgid "treat 'git add -N' entries as real in the index" msgstr "включване в индекса на записите, добавени с „git add -N“" -#: diff.c:5601 +#: diff.c:5603 msgid "<string>" msgstr "НИЗ" -#: diff.c:5602 +#: diff.c:5604 msgid "" "look for differences that change the number of occurrences of the specified " "string" msgstr "търсене на разлики, които променят броя на поява на указаните низове" -#: diff.c:5605 +#: diff.c:5607 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -4066,69 +4092,69 @@ msgstr "" "търсене на разлики, които променят броя на поява на низовете, които напасват " "на регулярния израз" -#: diff.c:5608 +#: diff.c:5610 msgid "show all changes in the changeset with -S or -G" msgstr "извеждане на всички промени с „-G“/„-S“" -#: diff.c:5611 +#: diff.c:5613 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "НИЗът към „-S“ да се тълкува като разширен регулярен израз по POSIX" -#: diff.c:5614 +#: diff.c:5616 msgid "control the order in which files appear in the output" msgstr "управление на подредбата на файловете в изхода" -#: diff.c:5615 diff.c:5618 +#: diff.c:5617 diff.c:5620 msgid "<path>" msgstr "ПЪТ" -#: diff.c:5616 +#: diff.c:5618 msgid "show the change in the specified path first" msgstr "първо извеждане на промяната в указания път" -#: diff.c:5619 +#: diff.c:5621 msgid "skip the output to the specified path" msgstr "прескачане на изхода към указания път" -#: diff.c:5621 +#: diff.c:5623 msgid "<object-id>" msgstr "ИДЕНТИФИКАТОР_НА_ОБЕКТ" -#: diff.c:5622 +#: diff.c:5624 msgid "" "look for differences that change the number of occurrences of the specified " "object" msgstr "търсене на разлики, които променят броя на поява на указания обект" -#: diff.c:5624 +#: diff.c:5626 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)…[*]]" -#: diff.c:5625 +#: diff.c:5627 msgid "select files by diff type" msgstr "избор на файловете по вид разлика" -#: diff.c:5627 +#: diff.c:5629 msgid "<file>" msgstr "ФАЙЛ" -#: diff.c:5628 +#: diff.c:5630 msgid "Output to a specific file" msgstr "Изход към указания файл" -#: diff.c:6285 +#: diff.c:6287 msgid "inexact rename detection was skipped due to too many files." msgstr "" "търсенето на преименувания на обекти съчетани с промени се прескача поради " "многото файлове." -#: diff.c:6288 +#: diff.c:6290 msgid "only found copies from modified paths due to too many files." msgstr "" "установени са само точните копия на променените пътища поради многото " "файлове." -#: diff.c:6291 +#: diff.c:6293 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -4139,7 +4165,7 @@ msgstr "задайте променливата „%s“ да е поне %d и msgid "failed to read orderfile '%s'" msgstr "файлът с подредбата на съответствията „%s“ не може да бъде прочетен" -#: diffcore-rename.c:786 +#: diffcore-rename.c:1418 msgid "Performing inexact rename detection" msgstr "Търсене на преименувания на обекти съчетани с промени" @@ -4174,36 +4200,36 @@ msgstr "" msgid "disabling cone pattern matching" msgstr "изключване на пътеводното напасване" -#: dir.c:1198 +#: dir.c:1206 #, c-format msgid "cannot use %s as an exclude file" msgstr "„%s“ не може да се ползва за игнорираните файлове (като gitignore)" -#: dir.c:2305 +#: dir.c:2314 #, c-format msgid "could not open directory '%s'" msgstr "директорията „%s“ не може да бъде отворена" -#: dir.c:2605 +#: dir.c:2614 msgid "failed to get kernel name and information" msgstr "името и версията на ядрото не бяха получени" -#: dir.c:2729 +#: dir.c:2738 msgid "untracked cache is disabled on this system or location" msgstr "" "кешът за неследените файлове е изключен на тази система или местоположение" -#: dir.c:3534 +#: dir.c:3543 #, c-format msgid "index file corrupt in repo %s" msgstr "файлът с индекса е повреден в хранилището „%s“" -#: dir.c:3579 dir.c:3584 +#: dir.c:3590 dir.c:3595 #, c-format msgid "could not create directories for %s" msgstr "директориите за „%s“ не може да бъдат създадени" -#: dir.c:3613 +#: dir.c:3624 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "директорията на git не може да се мигрира от „%s“ до „%s“" @@ -4213,11 +4239,11 @@ msgstr "директорията на git не може да се мигрира msgid "hint: Waiting for your editor to close the file...%c" msgstr "Подсказка: чака се редакторът ви да затвори файла …%c" -#: entry.c:177 +#: entry.c:179 msgid "Filtering content" msgstr "Филтриране на съдържанието" -#: entry.c:478 +#: entry.c:500 #, c-format msgid "could not stat file '%s'" msgstr "неуспешно изпълнение на „stat“ върху файла „%s“" @@ -4237,253 +4263,261 @@ msgstr "GIT_DIR не може да се зададе да е „%s“" msgid "too many args to run %s" msgstr "прекалено много аргументи за изпълнение „%s“" -#: fetch-pack.c:177 +#: fetch-pack.c:182 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: очаква се плитък списък" -#: fetch-pack.c:180 +#: fetch-pack.c:185 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack: след плитък списък се очаква изчистващ пакет „flush“" -#: fetch-pack.c:191 +#: fetch-pack.c:196 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "" "git fetch-pack: очаква се „ACK“/„NAK“, а бе получен изчистващ пакет „flush“" -#: fetch-pack.c:211 +#: fetch-pack.c:216 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: очаква се „ACK“/„NAK“, а бе получено „%s“" -#: fetch-pack.c:222 +#: fetch-pack.c:227 msgid "unable to write to remote" msgstr "невъзможно писане към отдалечено хранилище" -#: fetch-pack.c:283 +#: fetch-pack.c:288 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "опцията „--stateless-rpc“ изисква „multi_ack_detailed“" -#: fetch-pack.c:378 fetch-pack.c:1457 +#: fetch-pack.c:383 fetch-pack.c:1423 #, c-format msgid "invalid shallow line: %s" msgstr "неправилен плитък ред: „%s“" -#: fetch-pack.c:384 fetch-pack.c:1463 +#: fetch-pack.c:389 fetch-pack.c:1429 #, c-format msgid "invalid unshallow line: %s" msgstr "неправилен неплитък ред: „%s“" -#: fetch-pack.c:386 fetch-pack.c:1465 +#: fetch-pack.c:391 fetch-pack.c:1431 #, c-format msgid "object not found: %s" msgstr "обектът „%s“ липсва" -#: fetch-pack.c:389 fetch-pack.c:1468 +#: fetch-pack.c:394 fetch-pack.c:1434 #, c-format msgid "error in object: %s" msgstr "грешка в обекта: „%s“" -#: fetch-pack.c:391 fetch-pack.c:1470 +#: fetch-pack.c:396 fetch-pack.c:1436 #, c-format msgid "no shallow found: %s" msgstr "не е открит плитък обект: %s" -#: fetch-pack.c:394 fetch-pack.c:1474 +#: fetch-pack.c:399 fetch-pack.c:1440 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "очаква се плитък или не обект, а бе получено: „%s“" -#: fetch-pack.c:434 +#: fetch-pack.c:439 #, c-format msgid "got %s %d %s" msgstr "получено бе %s %d %s" -#: fetch-pack.c:451 +#: fetch-pack.c:456 #, c-format msgid "invalid commit %s" msgstr "неправилно подаване: „%s“" -#: fetch-pack.c:482 +#: fetch-pack.c:487 msgid "giving up" msgstr "преустановяване" -#: fetch-pack.c:495 progress.c:339 +#: fetch-pack.c:500 progress.c:339 msgid "done" msgstr "действието завърши" -#: fetch-pack.c:507 +#: fetch-pack.c:512 #, c-format msgid "got %s (%d) %s" msgstr "получено бе %s (%d) %s" -#: fetch-pack.c:543 +#: fetch-pack.c:548 #, c-format msgid "Marking %s as complete" msgstr "Отбелязване на „%s“ като пълно" -#: fetch-pack.c:758 +#: fetch-pack.c:763 #, c-format msgid "already have %s (%s)" msgstr "вече има „%s“ (%s)" -#: fetch-pack.c:844 +#: fetch-pack.c:849 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack: не може да се създаде процес за демултиплексора" -#: fetch-pack.c:852 +#: fetch-pack.c:857 msgid "protocol error: bad pack header" msgstr "протоколна грешка: неправилна заглавна част на пакет" -#: fetch-pack.c:946 +#: fetch-pack.c:951 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack: не може да се създаде процес за „%s“" -#: fetch-pack.c:952 +#: fetch-pack.c:957 msgid "fetch-pack: invalid index-pack output" msgstr "fetch-pack: неправилен изход от командата „index-pack“" -#: fetch-pack.c:969 +#: fetch-pack.c:974 #, c-format msgid "%s failed" msgstr "неуспешно изпълнение на „%s“" -#: fetch-pack.c:971 +#: fetch-pack.c:976 msgid "error in sideband demultiplexer" msgstr "грешка в демултиплексора" -#: fetch-pack.c:1031 +#: fetch-pack.c:1019 #, c-format msgid "Server version is %.*s" msgstr "Версията на сървъра е: %.*s" -#: fetch-pack.c:1039 fetch-pack.c:1045 fetch-pack.c:1048 fetch-pack.c:1054 -#: fetch-pack.c:1058 fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 -#: fetch-pack.c:1074 fetch-pack.c:1078 fetch-pack.c:1082 fetch-pack.c:1086 -#: fetch-pack.c:1092 fetch-pack.c:1098 fetch-pack.c:1103 fetch-pack.c:1108 +#: fetch-pack.c:1027 fetch-pack.c:1033 fetch-pack.c:1036 fetch-pack.c:1042 +#: fetch-pack.c:1046 fetch-pack.c:1050 fetch-pack.c:1054 fetch-pack.c:1058 +#: fetch-pack.c:1062 fetch-pack.c:1066 fetch-pack.c:1070 fetch-pack.c:1074 +#: fetch-pack.c:1080 fetch-pack.c:1086 fetch-pack.c:1091 fetch-pack.c:1096 #, c-format msgid "Server supports %s" msgstr "Сървърът поддържа „%s“" -#: fetch-pack.c:1041 +#: fetch-pack.c:1029 msgid "Server does not support shallow clients" msgstr "Сървърът не поддържа плитки клиенти" -#: fetch-pack.c:1101 +#: fetch-pack.c:1089 msgid "Server does not support --shallow-since" msgstr "Сървърът не поддържа опцията „--shallow-since“" -#: fetch-pack.c:1106 +#: fetch-pack.c:1094 msgid "Server does not support --shallow-exclude" msgstr "Сървърът не поддържа опцията „--shallow-exclude“" -#: fetch-pack.c:1110 +#: fetch-pack.c:1098 msgid "Server does not support --deepen" msgstr "Сървърът не поддържа опцията „--deepen“" -#: fetch-pack.c:1112 +#: fetch-pack.c:1100 msgid "Server does not support this repository's object format" msgstr "Сървърът не поддържа форма̀та на обектите на това хранилище" -#: fetch-pack.c:1125 +#: fetch-pack.c:1113 msgid "no common commits" msgstr "няма общи подавания" -#: fetch-pack.c:1138 fetch-pack.c:1682 +#: fetch-pack.c:1122 fetch-pack.c:1469 builtin/clone.c:1238 +msgid "source repository is shallow, reject to clone." +msgstr "клонираното хранилище е плитко, затова няма да се клонира." + +#: fetch-pack.c:1128 fetch-pack.c:1651 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack: неуспешно доставяне." -#: fetch-pack.c:1265 +#: fetch-pack.c:1242 #, c-format msgid "mismatched algorithms: client %s; server %s" msgstr "различни алгоритми — на клиента: „%s“, на сървъра: „%s“" -#: fetch-pack.c:1269 +#: fetch-pack.c:1246 #, c-format msgid "the server does not support algorithm '%s'" msgstr "сървърът не поддържа алгоритъм „%s“" -#: fetch-pack.c:1289 +#: fetch-pack.c:1279 msgid "Server does not support shallow requests" msgstr "Сървърът не поддържа плитки заявки" -#: fetch-pack.c:1296 +#: fetch-pack.c:1286 msgid "Server supports filter" msgstr "Сървърът поддържа филтри" -#: fetch-pack.c:1335 +#: fetch-pack.c:1329 fetch-pack.c:2034 msgid "unable to write request to remote" msgstr "невъзможно писане към отдалечено хранилище" -#: fetch-pack.c:1353 +#: fetch-pack.c:1347 #, c-format msgid "error reading section header '%s'" msgstr "грешка при прочитане на заглавната част на раздел „%s“" -#: fetch-pack.c:1359 +#: fetch-pack.c:1353 #, c-format msgid "expected '%s', received '%s'" msgstr "очаква се „%s“, а бе получено „%s“" -#: fetch-pack.c:1420 +#: fetch-pack.c:1387 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "неочакван ред за потвърждение: „%s“" -#: fetch-pack.c:1425 +#: fetch-pack.c:1392 #, c-format msgid "error processing acks: %d" msgstr "грешка при обработка на потвържденията: %d" -#: fetch-pack.c:1435 +#: fetch-pack.c:1402 msgid "expected packfile to be sent after 'ready'" msgstr "" "очакваше се пакетният файл да бъде изпратен след отговор за готовност (ready)" -#: fetch-pack.c:1437 +#: fetch-pack.c:1404 msgid "expected no other sections to be sent after no 'ready'" msgstr "" "очакваше се след липса на отговор за готовност (ready) да не се се пращат " "други раздели" -#: fetch-pack.c:1479 +#: fetch-pack.c:1445 #, c-format msgid "error processing shallow info: %d" msgstr "грешка при обработка на информация за дълбочината/плиткостта: %d" -#: fetch-pack.c:1526 +#: fetch-pack.c:1494 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "очаква се искан указател, а бе получено: „%s“" -#: fetch-pack.c:1531 +#: fetch-pack.c:1499 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "неочакван искан указател: „%s“" -#: fetch-pack.c:1536 +#: fetch-pack.c:1504 #, c-format msgid "error processing wanted refs: %d" msgstr "грешка при обработката на исканите указатели: %d" -#: fetch-pack.c:1566 +#: fetch-pack.c:1534 msgid "git fetch-pack: expected response end packet" msgstr "git fetch-pack: очаква се пакет за край на отговора" -#: fetch-pack.c:1960 +#: fetch-pack.c:1930 msgid "no matching remote head" msgstr "не може да бъде открит подходящ връх от отдалеченото хранилище" -#: fetch-pack.c:1983 builtin/clone.c:693 +#: fetch-pack.c:1953 builtin/clone.c:697 msgid "remote did not send all necessary objects" msgstr "отдалеченото хранилище не изпрати всички необходими обекти." -#: fetch-pack.c:2010 +#: fetch-pack.c:2056 +msgid "unexpected 'ready' from remote" +msgstr "неочаквано състояние за готовност от отдалечено хранилище" + +#: fetch-pack.c:2079 #, c-format msgid "no such remote ref %s" msgstr "такъв отдалечен указател няма: %s" -#: fetch-pack.c:2013 +#: fetch-pack.c:2082 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "Сървърът не позволява заявка за необявен обект „%s“" @@ -4506,7 +4540,7 @@ msgstr "Програмата „gpg“ не подписа данните." msgid "ignore invalid color '%.*s' in log.graphColors" msgstr "прескачане на неправилния цвят „%.*s“ в „log.graphColors“" -#: grep.c:543 +#: grep.c:531 msgid "" "given pattern contains NULL byte (via -f <file>). This is only supported " "with -P under PCRE v2" @@ -4514,18 +4548,18 @@ msgstr "" "зададеният шаблон съдържа нулев знак (идва от -f „ФАЙЛ“). Това се поддържа " "в комбинация с „-P“ само при ползването на „PCRE v2“" -#: grep.c:1906 +#: grep.c:1893 #, c-format msgid "'%s': unable to read %s" msgstr "„%s“: файлът сочен от „%s“ не може да бъде прочетен" -#: grep.c:1923 setup.c:176 builtin/clone.c:412 builtin/diff.c:90 -#: builtin/rm.c:135 +#: grep.c:1910 setup.c:176 builtin/clone.c:416 builtin/diff.c:90 +#: builtin/rm.c:136 #, c-format msgid "failed to stat '%s'" msgstr "не може да бъде получена информация чрез „stat“ за „%s“" -#: grep.c:1934 +#: grep.c:1921 #, c-format msgid "'%s': short read" msgstr "„%s“: изчитането върна по-малко байтове от очакваното" @@ -4756,49 +4790,54 @@ msgstr "не може да се ползва празно име като иде msgid "name consists only of disallowed characters: %s" msgstr "името съдържа само непозволени знаци: „%s“" -#: ident.c:454 builtin/commit.c:634 +#: ident.c:454 builtin/commit.c:647 #, c-format msgid "invalid date format: %s" msgstr "неправилен формат на дата: %s" -#: list-objects-filter-options.c:81 +#: list-objects-filter-options.c:83 msgid "expected 'tree:<depth>'" msgstr "очаква се „tree:ДЪЛБОЧИНА“" -#: list-objects-filter-options.c:96 +#: list-objects-filter-options.c:98 msgid "sparse:path filters support has been dropped" msgstr "поддръжката на филтри със „sparse:path“ е премахната" -#: list-objects-filter-options.c:109 +#: list-objects-filter-options.c:105 +#, c-format +msgid "'%s' for 'object:type=<type>' isnot a valid object type" +msgstr "„%s“ не е правилна стойност за вид на обект в „object:type=ВИД“" + +#: list-objects-filter-options.c:124 #, c-format msgid "invalid filter-spec '%s'" msgstr "неправилен филтър: „%s“" -#: list-objects-filter-options.c:125 +#: list-objects-filter-options.c:140 #, c-format msgid "must escape char in sub-filter-spec: '%c'" msgstr "знак за екраниране в подфилтър: „%c“" -#: list-objects-filter-options.c:167 +#: list-objects-filter-options.c:182 msgid "expected something after combine:" msgstr "добавете нещо след комбинирането:" -#: list-objects-filter-options.c:249 +#: list-objects-filter-options.c:264 msgid "multiple filter-specs cannot be combined" msgstr "не може да комбинирате множество филтри" -#: list-objects-filter-options.c:361 +#: list-objects-filter-options.c:376 msgid "unable to upgrade repository format to support partial clone" msgstr "" "не може да се извърши частично клониране, защото форматът на хранилището не " "може да се обнови" -#: list-objects-filter.c:492 +#: list-objects-filter.c:532 #, c-format msgid "unable to access sparse blob in '%s'" msgstr "няма достъп до частично изтегления обект-BLOB в „%s“" -#: list-objects-filter.c:495 +#: list-objects-filter.c:535 #, c-format msgid "unable to parse sparse filter data in %s" msgstr "" @@ -4814,7 +4853,7 @@ msgstr "обект „%s“ в дървото „%s“ е отбелязан к msgid "entry '%s' in tree %s has blob mode, but is not a blob" msgstr "обект „%s“ в дървото „%s“ е отбелязан като BLOB, но не е" -#: list-objects.c:375 +#: list-objects.c:395 #, c-format msgid "unable to load root tree for commit %s" msgstr "кореновото дърво за подаване „%s“ не може да се зареди" @@ -4852,34 +4891,43 @@ msgstr "неправилна стойност „%s“ за „lsrefs.unborn“" msgid "expected flush after ls-refs arguments" msgstr "след аргументите към „ls-refs“ се очаква изчистване на буферите" -#: merge-ort.c:888 merge-recursive.c:1191 +#: mailinfo.c:1050 +msgid "quoted CRLF detected" +msgstr "цитирани знаци CRLF" + +#: mailinfo.c:1254 builtin/am.c:176 builtin/mailinfo.c:46 +#, c-format +msgid "bad action '%s' for '%s'" +msgstr "неправилно действие „%s“ за „%s“" + +#: merge-ort.c:1116 merge-recursive.c:1205 #, c-format msgid "Failed to merge submodule %s (not checked out)" msgstr "Неуспешно сливане на подмодула „%s“ (не е изтеглен)" -#: merge-ort.c:897 merge-recursive.c:1198 +#: merge-ort.c:1125 merge-recursive.c:1212 #, c-format msgid "Failed to merge submodule %s (commits not present)" msgstr "Неуспешно сливане на подмодула „%s“ (няма подавания)" -#: merge-ort.c:906 merge-recursive.c:1205 +#: merge-ort.c:1134 merge-recursive.c:1219 #, c-format msgid "Failed to merge submodule %s (commits don't follow merge-base)" msgstr "" "Подмодулът „%s“ не може да бъде слят (базата за сливане не предшества " "подаванията)" -#: merge-ort.c:916 merge-ort.c:923 +#: merge-ort.c:1144 merge-ort.c:1151 #, c-format msgid "Note: Fast-forwarding submodule %s to %s" msgstr "Бележка: Превъртане на подмодула „%s“ към „%s“" -#: merge-ort.c:944 +#: merge-ort.c:1172 #, c-format msgid "Failed to merge submodule %s" msgstr "Неуспешно сливане на подмодула „%s“" -#: merge-ort.c:951 +#: merge-ort.c:1179 #, c-format msgid "" "Failed to merge submodule %s, but a possible merge resolution exists:\n" @@ -4888,7 +4936,7 @@ msgstr "" "Неуспешно сливане на подмодула „%s“, но е открито възможно решение:\n" "%s\n" -#: merge-ort.c:955 merge-recursive.c:1259 +#: merge-ort.c:1183 merge-recursive.c:1273 #, c-format msgid "" "If this is correct simply add it to the index for example\n" @@ -4904,7 +4952,7 @@ msgstr "" "\n" "Това приема предложеното.\n" -#: merge-ort.c:968 +#: merge-ort.c:1196 #, c-format msgid "" "Failed to merge submodule %s, but multiple possible merges exist:\n" @@ -4913,21 +4961,21 @@ msgstr "" "Неуспешно сливане на подмодула „%s“, но са открити множество решения:\n" "%s" -#: merge-ort.c:1127 merge-recursive.c:1341 +#: merge-ort.c:1415 merge-recursive.c:1362 msgid "Failed to execute internal merge" msgstr "Неуспешно вътрешно сливане" -#: merge-ort.c:1132 merge-recursive.c:1346 +#: merge-ort.c:1420 merge-recursive.c:1367 #, c-format msgid "Unable to add %s to database" msgstr "„%s“ не може да се добави в базата с данни" -#: merge-ort.c:1139 merge-recursive.c:1378 +#: merge-ort.c:1427 merge-recursive.c:1400 #, c-format msgid "Auto-merging %s" msgstr "Автоматично сливане на „%s“" -#: merge-ort.c:1278 merge-recursive.c:2100 +#: merge-ort.c:1566 merge-recursive.c:2122 #, c-format msgid "" "CONFLICT (implicit dir rename): Existing file/dir at %s in the way of " @@ -4936,7 +4984,7 @@ msgstr "" "КОНФЛИКТ (косвено преименуване на директория): следният файл или директория " "„%s“ не позволяват косвеното преименуване на следния път/ища: %s." -#: merge-ort.c:1288 merge-recursive.c:2110 +#: merge-ort.c:1576 merge-recursive.c:2132 #, c-format msgid "" "CONFLICT (implicit dir rename): Cannot map more than one path to %s; " @@ -4946,7 +4994,7 @@ msgstr "" "съответства на „%s“. Косвено преименуване на директория води до поставянето " "на тези пътища там: %s." -#: merge-ort.c:1471 +#: merge-ort.c:1634 #, c-format msgid "" "CONFLICT (directory rename split): Unclear where to rename %s to; it was " @@ -4957,7 +5005,7 @@ msgstr "" "да се преименува „%s“, защото е преместен в няколко нови директории, без " "никоя от тях да е по-честа цел." -#: merge-ort.c:1637 merge-recursive.c:2447 +#: merge-ort.c:1788 merge-recursive.c:2468 #, c-format msgid "" "WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was " @@ -4966,7 +5014,7 @@ msgstr "" "ПРЕДУПРЕЖДЕНИЕ: прескачане на преименуването на „%s“ на „%s“ в „%s“, защото " "„%s“ също е с променено име." -#: merge-ort.c:1781 merge-recursive.c:3215 +#: merge-ort.c:1932 merge-recursive.c:3244 #, c-format msgid "" "Path updated: %s added in %s inside a directory that was renamed in %s; " @@ -4975,7 +5023,7 @@ msgstr "" "Обновен път: „%s“ е добавен в „%s“ в директория, която е преименувана в " "„%s“. Обектът се мести в „%s“." -#: merge-ort.c:1788 merge-recursive.c:3222 +#: merge-ort.c:1939 merge-recursive.c:3251 #, c-format msgid "" "Path updated: %s renamed to %s in %s, inside a directory that was renamed in " @@ -4984,7 +5032,7 @@ msgstr "" "Обновен път: „%s“ е преименуван на „%s“ в „%s“ в директория, която е " "преименувана в „%s“. Обектът се мести в „%s“." -#: merge-ort.c:1801 merge-recursive.c:3218 +#: merge-ort.c:1952 merge-recursive.c:3247 #, c-format msgid "" "CONFLICT (file location): %s added in %s inside a directory that was renamed " @@ -4993,7 +5041,7 @@ msgstr "" "КОНФЛИКТ (места на файлове): „%s“ е добавен в „%s“ в директория, която е " "преименувана в „%s“. Предложението е да преместите обекта в „%s“." -#: merge-ort.c:1809 merge-recursive.c:3225 +#: merge-ort.c:1960 merge-recursive.c:3254 #, c-format msgid "" "CONFLICT (file location): %s renamed to %s in %s, inside a directory that " @@ -5002,14 +5050,14 @@ msgstr "" "КОНФЛИКТ (места на файлове): „%s“ е преименуван на „%s“ в „%s“ в директория, " "която е преименувана в „%s“. Предложението е да преместите обекта в „%s“." -#: merge-ort.c:1952 +#: merge-ort.c:2103 #, c-format msgid "CONFLICT (rename/rename): %s renamed to %s in %s and to %s in %s." msgstr "" "КОНФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон „%s“ " "и на „%s“ в „%s“." -#: merge-ort.c:2047 +#: merge-ort.c:2198 #, c-format msgid "" "CONFLICT (rename involved in collision): rename of %s -> %s has content " @@ -5020,14 +5068,24 @@ msgstr "" "има и промени в съдържанието, а и има съвпадение на пътя. Може да се " "получат вложени маркери за конфликт." -#: merge-ort.c:2066 merge-ort.c:2090 +#: merge-ort.c:2217 merge-ort.c:2241 #, c-format msgid "CONFLICT (rename/delete): %s renamed to %s in %s, but deleted in %s." msgstr "" "КОНФЛИКТ (преименуване/добавяне): „%s“ е преименуван на „%s“ в клон „%s“, а " "е изтрит в „%s“." -#: merge-ort.c:2735 +#: merge-ort.c:2550 merge-recursive.c:3002 +#, c-format +msgid "cannot read object %s" +msgstr "обектът „%s“ не може да се прочете" + +#: merge-ort.c:2553 merge-recursive.c:3005 +#, c-format +msgid "object %s is not a blob" +msgstr "обектът „%s“ не е BLOB" + +#: merge-ort.c:2981 #, c-format msgid "" "CONFLICT (file/directory): directory in the way of %s from %s; moving it to " @@ -5036,42 +5094,42 @@ msgstr "" "КОНФЛИКТ (файл/директория): директория на мястото на „%s“ от „%s“, вместо " "това се извършва преместване в „%s“." -#: merge-ort.c:2808 +#: merge-ort.c:3055 #, c-format msgid "" -"CONFLICT (distinct types): %s had different types on each side; renamed %s " +"CONFLICT (distinct types): %s had different types on each side; renamed both " "of them so each can be recorded somewhere." msgstr "" -"КОНФЛИКТ (различни обекти): „%s“ е различен вид обект в двата варианта, " -"затова се извършва преименуване на %s, за да може и двата варианта да са " -"отразени." - -#: merge-ort.c:2812 -msgid "both" -msgstr "двата" +"КОНФЛИКТ (различни видове): „%s“ е различен вид обект в двата варианта. И " +"двата се преименуват, за да може всичко да е отразено." -#: merge-ort.c:2812 -msgid "one" -msgstr "единия" +#: merge-ort.c:3062 +#, c-format +msgid "" +"CONFLICT (distinct types): %s had different types on each side; renamed one " +"of them so each can be recorded somewhere." +msgstr "" +"КОНФЛИКТ (различни видове): „%s“ е различен вид обект в двата варианта. " +"Извършва се преименуване в единия, за да може всичко да е отразено." -#: merge-ort.c:2907 merge-recursive.c:3052 +#: merge-ort.c:3162 merge-recursive.c:3081 msgid "content" msgstr "съдържание" -#: merge-ort.c:2909 merge-recursive.c:3056 +#: merge-ort.c:3164 merge-recursive.c:3085 msgid "add/add" msgstr "добавяне/добавяне" -#: merge-ort.c:2911 merge-recursive.c:3101 +#: merge-ort.c:3166 merge-recursive.c:3130 msgid "submodule" msgstr "ПОДМОДУЛ" -#: merge-ort.c:2913 merge-recursive.c:3102 +#: merge-ort.c:3168 merge-recursive.c:3131 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "КОНФЛИКТ (%s): Конфликт при сливане на „%s“" -#: merge-ort.c:2938 +#: merge-ort.c:3198 #, c-format msgid "" "CONFLICT (modify/delete): %s deleted in %s and modified in %s. Version %s " @@ -5080,15 +5138,24 @@ msgstr "" "КОНФЛИКТ (промяна/изтриване): „%s“ е изтрит в %s, а е променен в %s. Версия " "%s на „%s“ е оставена в дървото." +#: merge-ort.c:3433 +#, c-format +msgid "" +"Note: %s not up to date and in way of checking out conflicted version; old " +"copy renamed to %s" +msgstr "" +"Бележка: „%s“ не е актуален и пречи за преминаването към версията с " +"конфликт. Старият вариант е преименуван на „%s“" + #. TRANSLATORS: The %s arguments are: 1) tree hash of a merge #. base, and 2-3) the trees for the two trees we're merging. #. -#: merge-ort.c:3406 +#: merge-ort.c:3730 #, c-format msgid "collecting merge info failed for trees %s, %s, %s" msgstr "неуспешно събиране на информацията за сливането на „%s“, „%s“ и „%s“" -#: merge-ort-wrappers.c:13 merge-recursive.c:3661 +#: merge-ort-wrappers.c:13 merge-recursive.c:3699 #, c-format msgid "" "Your local changes to the following files would be overwritten by merge:\n" @@ -5097,10 +5164,9 @@ msgstr "" "Сливането ще презапише локалните промени на тези файлове:\n" " %s" -#: merge-ort-wrappers.c:33 merge-recursive.c:3436 -#, c-format -msgid "Already up to date!" -msgstr "Вече е обновено!" +#: merge-ort-wrappers.c:33 merge-recursive.c:3465 builtin/merge.c:402 +msgid "Already up to date." +msgstr "Вече е обновено." #: merge-recursive.c:356 msgid "(bad commit)\n" @@ -5120,91 +5186,91 @@ msgstr "" "неуспешно изпълнение на „add_cacheinfo“ за обновяването на пътя „%s“. " "Сливането е преустановено." -#: merge-recursive.c:874 +#: merge-recursive.c:876 #, c-format msgid "failed to create path '%s'%s" msgstr "грешка при създаването на пътя „%s“%s" -#: merge-recursive.c:885 +#: merge-recursive.c:887 #, c-format msgid "Removing %s to make room for subdirectory\n" msgstr "Изтриване на „%s“, за да се освободи място за поддиректория\n" -#: merge-recursive.c:899 merge-recursive.c:918 +#: merge-recursive.c:901 merge-recursive.c:920 msgid ": perhaps a D/F conflict?" msgstr ": възможно е да има конфликт директория/файл." -#: merge-recursive.c:908 +#: merge-recursive.c:910 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "" "преустановяване на действието, за да не се изтрие неследеният файл „%s“" -#: merge-recursive.c:949 builtin/cat-file.c:41 +#: merge-recursive.c:951 builtin/cat-file.c:41 #, c-format msgid "cannot read object %s '%s'" msgstr "обектът „%s“ (%s) не може да бъде прочетен" -#: merge-recursive.c:954 +#: merge-recursive.c:956 #, c-format msgid "blob expected for %s '%s'" msgstr "обектът „%s“ (%s) се очакваше да е BLOB, а не е" -#: merge-recursive.c:979 +#: merge-recursive.c:981 #, c-format msgid "failed to open '%s': %s" msgstr "„%s“ не може да се отвори: %s" -#: merge-recursive.c:990 +#: merge-recursive.c:992 #, c-format msgid "failed to symlink '%s': %s" msgstr "неуспешно създаване на символната връзка „%s“: %s" -#: merge-recursive.c:995 +#: merge-recursive.c:997 #, c-format msgid "do not know what to do with %06o %s '%s'" msgstr "" "не е ясно какво да се прави с обекта „%2$s“ (%3$s) с права за достъп „%1$06o“" -#: merge-recursive.c:1213 merge-recursive.c:1225 +#: merge-recursive.c:1227 merge-recursive.c:1239 #, c-format msgid "Fast-forwarding submodule %s to the following commit:" msgstr "Превъртане на подмодула „%s“ до следното подаване:" -#: merge-recursive.c:1216 merge-recursive.c:1228 +#: merge-recursive.c:1230 merge-recursive.c:1242 #, c-format msgid "Fast-forwarding submodule %s" msgstr "Превъртане на подмодула „%s“" -#: merge-recursive.c:1251 +#: merge-recursive.c:1265 #, c-format msgid "Failed to merge submodule %s (merge following commits not found)" msgstr "" "Неуспешно сливане на подмодула „%s“ (липсва сливането, което се предшества " "от подаванията)" -#: merge-recursive.c:1255 +#: merge-recursive.c:1269 #, c-format msgid "Failed to merge submodule %s (not fast-forward)" msgstr "Неуспешно сливане на подмодула „%s“ (не е превъртане)" -#: merge-recursive.c:1256 +#: merge-recursive.c:1270 msgid "Found a possible merge resolution for the submodule:\n" msgstr "" "Открито е сливане, което може да решава проблема със сливането на " "подмодула:\n" -#: merge-recursive.c:1268 +#: merge-recursive.c:1282 #, c-format msgid "Failed to merge submodule %s (multiple merges found)" msgstr "Неуспешно сливане на подмодула „%s“ (открити са множество сливания)" -#: merge-recursive.c:1402 +#: merge-recursive.c:1424 #, c-format msgid "Error: Refusing to lose untracked file at %s; writing to %s instead." msgstr "Грешка: за да не се изтрие неследеният файл „%s“, се записва в „%s“." -#: merge-recursive.c:1474 +#: merge-recursive.c:1496 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -5213,7 +5279,7 @@ msgstr "" "КОНФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ в %s. Версия %s на „%s“ " "е оставена в дървото." -#: merge-recursive.c:1479 +#: merge-recursive.c:1501 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s " @@ -5222,7 +5288,7 @@ msgstr "" "КОНФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ е преименуван на „%s“ в " "%s. Версия %s на „%s“ е оставена в дървото." -#: merge-recursive.c:1486 +#: merge-recursive.c:1508 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -5231,7 +5297,7 @@ msgstr "" "КОНФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ в %s. Версия %s на „%s“ " "е оставена в дървото: %s." -#: merge-recursive.c:1491 +#: merge-recursive.c:1513 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s to %s in %s. Version %s of %s " @@ -5240,45 +5306,45 @@ msgstr "" "КОНФЛИКТ (%s/изтриване): „%s“ е изтрит в %s, а „%s“ е преименуван на „%s“ в " "%s. Версия %s на „%s“ е оставена в дървото: %s." -#: merge-recursive.c:1526 +#: merge-recursive.c:1548 msgid "rename" msgstr "преименуване" -#: merge-recursive.c:1526 +#: merge-recursive.c:1548 msgid "renamed" msgstr "преименуван" -#: merge-recursive.c:1577 merge-recursive.c:2484 merge-recursive.c:3129 +#: merge-recursive.c:1599 merge-recursive.c:2505 merge-recursive.c:3158 #, c-format msgid "Refusing to lose dirty file at %s" msgstr "Преустановяване на действието, за да не се изгуби промененият „%s“" -#: merge-recursive.c:1587 +#: merge-recursive.c:1609 #, c-format msgid "Refusing to lose untracked file at %s, even though it's in the way." msgstr "" "Отказ да се загуби неследеният файл „%s“, защото е на място, където пречи." -#: merge-recursive.c:1645 +#: merge-recursive.c:1667 #, c-format msgid "CONFLICT (rename/add): Rename %s->%s in %s. Added %s in %s" msgstr "" "КОНФЛИКТ (преименуване/добавяне): „%s“ е преименуван на „%s“ в клон „%s“, а " "„%s“ е добавен в „%s“" -#: merge-recursive.c:1676 +#: merge-recursive.c:1698 #, c-format msgid "%s is a directory in %s adding as %s instead" msgstr "„%s“ е директория в „%s“, затова се добавя като „%s“" -#: merge-recursive.c:1681 +#: merge-recursive.c:1703 #, c-format msgid "Refusing to lose untracked file at %s; adding as %s instead" msgstr "" "Преустановяване на действието, за да не се изгуби неследеният файл „%s“. " "Вместо него се добавя „%s“" -#: merge-recursive.c:1708 +#: merge-recursive.c:1730 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -5287,18 +5353,18 @@ msgstr "" "КОНФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон " "„%s“, а „%s“ е преименуван на „%s“ в „%s“/%s." -#: merge-recursive.c:1713 +#: merge-recursive.c:1735 msgid " (left unresolved)" msgstr " (некоригиран конфликт)" -#: merge-recursive.c:1805 +#: merge-recursive.c:1827 #, c-format msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s" msgstr "" "КОНФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон " "„%s“, а „%s“ е преименуван на „%s“ в „%s“" -#: merge-recursive.c:2068 +#: merge-recursive.c:2090 #, c-format msgid "" "CONFLICT (directory rename split): Unclear where to place %s because " @@ -5309,7 +5375,7 @@ msgstr "" "постави „%s“, защото няколко нови директории поделят съдържанието на " "директория „%s“, като никоя не съдържа мнозинство от файловете ѝ." -#: merge-recursive.c:2202 +#: merge-recursive.c:2224 #, c-format msgid "" "CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-" @@ -5318,91 +5384,81 @@ msgstr "" "КОНФЛИКТ (преименуване/преименуване): „%s“ е преименуван на „%s“ в клон " "„%s“, а „%s“ е преименуван на „%s“ в „%s“" -#: merge-recursive.c:2973 -#, c-format -msgid "cannot read object %s" -msgstr "обектът „%s“ не може да се прочете" - -#: merge-recursive.c:2976 -#, c-format -msgid "object %s is not a blob" -msgstr "обектът „%s“ не е BLOB" - -#: merge-recursive.c:3040 +#: merge-recursive.c:3069 msgid "modify" msgstr "промяна" -#: merge-recursive.c:3040 +#: merge-recursive.c:3069 msgid "modified" msgstr "променен" -#: merge-recursive.c:3079 +#: merge-recursive.c:3108 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "Прескачане на „%s“ (слетият резултат е идентичен със сегашния)" -#: merge-recursive.c:3132 +#: merge-recursive.c:3161 #, c-format msgid "Adding as %s instead" msgstr "Добавяне като „%s“" -#: merge-recursive.c:3339 +#: merge-recursive.c:3368 #, c-format msgid "Removing %s" msgstr "Изтриване на „%s“" -#: merge-recursive.c:3362 +#: merge-recursive.c:3391 msgid "file/directory" msgstr "файл/директория" -#: merge-recursive.c:3367 +#: merge-recursive.c:3396 msgid "directory/file" msgstr "директория/файл" -#: merge-recursive.c:3374 +#: merge-recursive.c:3403 #, 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:3383 +#: merge-recursive.c:3412 #, c-format msgid "Adding %s" msgstr "Добавяне на „%s“" -#: merge-recursive.c:3392 +#: merge-recursive.c:3421 #, c-format msgid "CONFLICT (add/add): Merge conflict in %s" msgstr "КОНФЛИКТ (добавяне/добавяне): Конфликт при сливане на „%s“" -#: merge-recursive.c:3445 +#: merge-recursive.c:3474 #, c-format msgid "merging of trees %s and %s failed" msgstr "неуспешно сливане на дърветата „%s“ и „%s“" -#: merge-recursive.c:3539 +#: merge-recursive.c:3568 msgid "Merging:" msgstr "Сливане:" -#: merge-recursive.c:3552 +#: merge-recursive.c:3581 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" msgstr[0] "открит е %u общ предшественик:" msgstr[1] "открити са %u общи предшественици:" -#: merge-recursive.c:3602 +#: merge-recursive.c:3631 msgid "merge returned no commit" msgstr "сливането не върна подаване" -#: merge-recursive.c:3758 +#: merge-recursive.c:3796 #, c-format msgid "Could not parse object '%s'" msgstr "Неуспешен анализ на обекта „%s“" -#: merge-recursive.c:3776 builtin/merge.c:712 builtin/merge.c:896 -#: builtin/stash.c:471 +#: merge-recursive.c:3814 builtin/merge.c:716 builtin/merge.c:900 +#: builtin/stash.c:473 msgid "Unable to write index." msgstr "Индексът не може да бъде прочетен" @@ -5410,115 +5466,134 @@ msgstr "Индексът не може да бъде прочетен" msgid "failed to read the cache" msgstr "кешът не може да бъде прочетен" -#: merge.c:109 rerere.c:704 builtin/am.c:1883 builtin/am.c:1917 -#: builtin/checkout.c:575 builtin/checkout.c:828 builtin/clone.c:817 -#: builtin/stash.c:265 +#: merge.c:109 rerere.c:704 builtin/am.c:1931 builtin/am.c:1965 +#: builtin/checkout.c:595 builtin/checkout.c:849 builtin/clone.c:821 +#: builtin/stash.c:267 msgid "unable to write new index file" msgstr "неуспешно записване на новия индекс" -#: midx.c:62 +#: midx.c:74 msgid "multi-pack-index OID fanout is of the wrong size" msgstr "неправилен размер на откъс (OID fanout) на индекса за множество пакети" -#: midx.c:93 +#: midx.c:105 #, c-format msgid "multi-pack-index file %s is too small" msgstr "файлът с индекса за множество пакети „%s“ е твърде малък" -#: midx.c:109 +#: midx.c:121 #, c-format msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x" msgstr "отпечатъкът на индекса за множество пакети 0x%08x не съвпада с 0x%08x" -#: midx.c:114 +#: midx.c:126 #, c-format msgid "multi-pack-index version %d not recognized" msgstr "непозната версия на индекс за множество пакети — %d" -#: midx.c:119 +#: midx.c:131 #, c-format msgid "multi-pack-index hash version %u does not match version %u" msgstr "" "версията на контролната сума на индекса за множество пакети %u не съвпада с " "%u" -#: midx.c:136 +#: midx.c:148 msgid "multi-pack-index missing required pack-name chunk" msgstr "липсва откъс (pack-name) от индекс за множество пакети" -#: midx.c:138 +#: midx.c:150 msgid "multi-pack-index missing required OID fanout chunk" msgstr "липсва откъс (OID fanout) от индекс за множество пакети" -#: midx.c:140 +#: midx.c:152 msgid "multi-pack-index missing required OID lookup chunk" msgstr "липсва откъс (OID lookup) от индекс за множество пакети" -#: midx.c:142 +#: midx.c:154 msgid "multi-pack-index missing required object offsets chunk" msgstr "липсва откъс за отместванията на обекти от индекс за множество пакети" -#: midx.c:158 +#: midx.c:170 #, c-format msgid "multi-pack-index pack names out of order: '%s' before '%s'" msgstr "" "неправилна подредба на имената в индекс за множество пакети: „%s“ се появи " "преди „%s“" -#: midx.c:202 +#: midx.c:214 #, c-format msgid "bad pack-int-id: %u (%u total packs)" msgstr "" "неправилен идентификатор на пакет (pack-int-id): %u (от общо %u пакети)" -#: midx.c:252 +#: midx.c:264 msgid "multi-pack-index stores a 64-bit offset, but off_t is too small" msgstr "" "индексът за множество пакети съдържа 64-битови отмествания, но размерът на " "„off_t“ е недостатъчен" -#: midx.c:467 +#: midx.c:490 #, c-format msgid "failed to add packfile '%s'" msgstr "пакетният файл „%s“ не може да бъде добавен" -#: midx.c:473 +#: midx.c:496 #, c-format msgid "failed to open pack-index '%s'" msgstr "индексът за пакети „%s“ не може да бъде отворен" -#: midx.c:533 +#: midx.c:564 #, c-format msgid "failed to locate object %d in packfile" msgstr "обект %d в пакетния файл липсва" -#: midx.c:821 +#: midx.c:880 builtin/index-pack.c:1535 +msgid "cannot store reverse index file" +msgstr "файлът за индекса не може да бъде съхранен" + +#: midx.c:933 msgid "Adding packfiles to multi-pack-index" msgstr "Добавяне на пакетни файлове към индекс за множество пакети" -#: midx.c:855 +#: midx.c:979 #, c-format msgid "did not see pack-file %s to drop" msgstr "пакетният файл за триене „%s“ не може да се открие" -#: midx.c:904 +#: midx.c:1024 +#, c-format +msgid "unknown preferred pack: '%s'" +msgstr "непознат предпочитан пакет: %s" + +#: midx.c:1029 +#, c-format +msgid "preferred pack '%s' is expired" +msgstr "предпочитаният пакет „%s“ е остарял" + +#: midx.c:1045 msgid "no pack files to index." msgstr "няма пакетни файлове за индексиране" -#: midx.c:965 +#: midx.c:1125 builtin/clean.c:37 +#, c-format +msgid "failed to remove %s" +msgstr "файлът „%s“ не може да бъде изтрит" + +#: midx.c:1156 #, c-format msgid "failed to clear multi-pack-index at %s" msgstr "индексът за множество пакети не може да бъде изчистен при „%s“" -#: midx.c:1021 +#: midx.c:1214 msgid "multi-pack-index file exists, but failed to parse" msgstr "файлът с индекса за множество пакети, но не може да бъде анализиран" -#: midx.c:1029 +#: midx.c:1222 msgid "Looking for referenced packfiles" msgstr "Търсене на указаните пакетни файлове" -#: midx.c:1044 +#: midx.c:1237 #, c-format msgid "" "oid fanout out of order: fanout[%d] = %<PRIx32> > %<PRIx32> = fanout[%d]" @@ -5526,72 +5601,72 @@ msgstr "" "неправилна подредба на откъси (OID fanout): fanout[%d] = %<PRIx32> > " "%<PRIx32> = fanout[%d]" -#: midx.c:1049 +#: midx.c:1242 msgid "the midx contains no oid" msgstr "във файла с индекса за множество пакети няма идентификатори на обекти" -#: midx.c:1058 +#: midx.c:1251 msgid "Verifying OID order in multi-pack-index" msgstr "" "Проверка на подредбата на идентификатори на обекти във файл с индекс към " "множество пакетни файлове" -#: midx.c:1067 +#: midx.c:1260 #, c-format msgid "oid lookup out of order: oid[%d] = %s >= %s = oid[%d]" msgstr "" "неправилна подредба на откъси (OID lookup): oid[%d] = %s >= %s = oid[%d]" -#: midx.c:1087 +#: midx.c:1280 msgid "Sorting objects by packfile" msgstr "Подредба на обектите по пакетни файлове" -#: midx.c:1094 +#: midx.c:1287 msgid "Verifying object offsets" msgstr "Проверка на отместването на обекти" -#: midx.c:1110 +#: midx.c:1303 #, c-format msgid "failed to load pack entry for oid[%d] = %s" msgstr "записът в пакета за обекта oid[%d] = %s не може да бъде зареден" -#: midx.c:1116 +#: midx.c:1309 #, c-format msgid "failed to load pack-index for packfile %s" msgstr "индексът на пакета „%s“ не може да бъде зареден" -#: midx.c:1125 +#: midx.c:1318 #, c-format msgid "incorrect object offset for oid[%d] = %s: %<PRIx64> != %<PRIx64>" msgstr "неправилно отместване на обект за oid[%d] = %s: %<PRIx64> != %<PRIx64>" -#: midx.c:1150 +#: midx.c:1343 msgid "Counting referenced objects" msgstr "Преброяване на свързаните обекти" -#: midx.c:1160 +#: midx.c:1353 msgid "Finding and deleting unreferenced packfiles" msgstr "Търсене и изтриване на несвързаните пакетни файлове" -#: midx.c:1351 +#: midx.c:1544 msgid "could not start pack-objects" msgstr "командата „pack-objects“ не може да бъде стартирана" -#: midx.c:1371 +#: midx.c:1564 msgid "could not finish pack-objects" msgstr "командата „pack-objects“ не може да бъде завършена" -#: name-hash.c:538 +#: name-hash.c:542 #, c-format msgid "unable to create lazy_dir thread: %s" msgstr "не може да се създаде нишка за директории: %s" -#: name-hash.c:560 +#: name-hash.c:564 #, c-format msgid "unable to create lazy_name thread: %s" msgstr "не може да се създаде нишка за имена: %s" -#: name-hash.c:566 +#: name-hash.c:570 #, c-format msgid "unable to join lazy_name thread: %s" msgstr "не може да се изчака нишка за имена: %s" @@ -5644,265 +5719,265 @@ msgstr "" msgid "Bad %s value: '%s'" msgstr "Зададена е лоша стойност на променливата „%s“: „%s“" -#: object-file.c:480 +#: object-file.c:526 #, c-format msgid "object directory %s does not exist; check .git/objects/info/alternates" msgstr "" "директорията за обекти „%s“ не съществува, проверете „.git/objects/info/" "alternates“" -#: object-file.c:531 +#: object-file.c:577 #, c-format msgid "unable to normalize alternate object path: %s" msgstr "алтернативният път към обекти не може да бъде нормализиран: „%s“" -#: object-file.c:603 +#: object-file.c:649 #, c-format msgid "%s: ignoring alternate object stores, nesting too deep" msgstr "" "%s: алтернативните хранилища за обекти се пренебрегват поради прекалено " "дълбоко влагане" -#: object-file.c:610 +#: object-file.c:656 #, c-format msgid "unable to normalize object directory: %s" msgstr "директорията за обекти „%s“ не може да бъде нормализирана" -#: object-file.c:653 +#: object-file.c:699 msgid "unable to fdopen alternates lockfile" msgstr "заключващият файл за алтернативите не може да се отвори с „fdopen“" -#: object-file.c:671 +#: object-file.c:717 msgid "unable to read alternates file" msgstr "файлът с алтернативите не може да бъде прочетен" -#: object-file.c:678 +#: object-file.c:724 msgid "unable to move new alternates file into place" msgstr "новият файл с алтернативите не може да бъде преместен на мястото му" -#: object-file.c:713 +#: object-file.c:759 #, c-format msgid "path '%s' does not exist" msgstr "пътят „%s“ не съществува." -#: object-file.c:734 +#: object-file.c:780 #, c-format msgid "reference repository '%s' as a linked checkout is not supported yet." msgstr "все още не се поддържа еталонно хранилище „%s“ като свързано." -#: object-file.c:740 +#: object-file.c:786 #, c-format msgid "reference repository '%s' is not a local repository." msgstr "еталонното хранилище „%s“ не е локално" -#: object-file.c:746 +#: object-file.c:792 #, c-format msgid "reference repository '%s' is shallow" msgstr "еталонното хранилище „%s“ е плитко" -#: object-file.c:754 +#: object-file.c:800 #, c-format msgid "reference repository '%s' is grafted" msgstr "еталонното хранилище „%s“ е с присаждане" -#: object-file.c:814 +#: object-file.c:860 #, c-format msgid "invalid line while parsing alternate refs: %s" msgstr "неправилен ред при анализа на алтернативните указатели: „%s“" -#: object-file.c:964 +#: object-file.c:1010 #, c-format msgid "attempting to mmap %<PRIuMAX> over limit %<PRIuMAX>" msgstr "" "неуспешен опит за „mmap“ %<PRIuMAX>, което е над позволеното %<PRIuMAX>" -#: object-file.c:985 +#: object-file.c:1031 msgid "mmap failed" msgstr "неуспешно изпълнение на „mmap“" -#: object-file.c:1149 +#: object-file.c:1195 #, c-format msgid "object file %s is empty" msgstr "файлът с обектите „%s“ е празен" -#: object-file.c:1284 object-file.c:2477 +#: object-file.c:1330 object-file.c:2524 #, c-format msgid "corrupt loose object '%s'" msgstr "непакетираният обект „%s“ е повреден" -#: object-file.c:1286 object-file.c:2481 +#: object-file.c:1332 object-file.c:2528 #, c-format msgid "garbage at end of loose object '%s'" msgstr "грешни данни в края на непакетирания обект „%s“" -#: object-file.c:1328 +#: object-file.c:1374 msgid "invalid object type" msgstr "неправилен вид обект" -#: object-file.c:1412 +#: object-file.c:1458 #, c-format msgid "unable to unpack %s header with --allow-unknown-type" msgstr "" "заглавната част „%s“ не може да се разпакетира с опцията „--allow-unknown-" "type“" -#: object-file.c:1415 +#: object-file.c:1461 #, c-format msgid "unable to unpack %s header" msgstr "заглавната част на „%s“ не може да бъде разпакетирана" -#: object-file.c:1421 +#: object-file.c:1467 #, c-format msgid "unable to parse %s header with --allow-unknown-type" msgstr "" "заглавната част „%s“ не може да се анализира с опцията „--allow-unknown-type“" -#: object-file.c:1424 +#: object-file.c:1470 #, c-format msgid "unable to parse %s header" msgstr "заглавната част на „%s“ не може да бъде анализирана" -#: object-file.c:1651 +#: object-file.c:1697 #, c-format msgid "failed to read object %s" msgstr "обектът „%s“ не може да бъде прочетен" -#: object-file.c:1655 +#: object-file.c:1701 #, c-format msgid "replacement %s not found for %s" msgstr "заместителят „%s“ на „%s“ не може да бъде открит" -#: object-file.c:1659 +#: object-file.c:1705 #, c-format msgid "loose object %s (stored in %s) is corrupt" msgstr "непакетираният обект „%s“ (в „%s“) е повреден" -#: object-file.c:1663 +#: object-file.c:1709 #, c-format msgid "packed object %s (stored in %s) is corrupt" msgstr "пакетираният обект „%s“ (в „%s“) е повреден" -#: object-file.c:1768 +#: object-file.c:1814 #, c-format msgid "unable to write file %s" msgstr "файлът „%s“ не може да бъде записан" -#: object-file.c:1775 +#: object-file.c:1821 #, c-format msgid "unable to set permission to '%s'" -msgstr "правата за достъп до „%s“ не могат да бъдат зададени" +msgstr "правата за достъп до „%s“ не може да бъдат зададени" -#: object-file.c:1782 +#: object-file.c:1828 msgid "file write error" msgstr "грешка при запис на файл" -#: object-file.c:1802 +#: object-file.c:1848 msgid "error when closing loose object file" msgstr "грешка при затварянето на файла с непакетиран обект" -#: object-file.c:1867 +#: object-file.c:1913 #, c-format msgid "insufficient permission for adding an object to repository database %s" msgstr "" "няма права за добавяне на обект към базата от данни на хранилището „%s“" -#: object-file.c:1869 +#: object-file.c:1915 msgid "unable to create temporary file" msgstr "не може да бъде създаден временен файл" -#: object-file.c:1893 +#: object-file.c:1939 msgid "unable to write loose object file" msgstr "грешка при записа на файла с непакетиран обект" -#: object-file.c:1899 +#: object-file.c:1945 #, c-format msgid "unable to deflate new object %s (%d)" msgstr "новият обект „%s“ не може да се компресира с „deflate“: %d" -#: object-file.c:1903 +#: object-file.c:1949 #, c-format msgid "deflateEnd on object %s failed (%d)" msgstr "неуспешно приключване на „deflate“ върху „%s“: %d" -#: object-file.c:1907 +#: object-file.c:1953 #, c-format msgid "confused by unstable object source data for %s" msgstr "грешка поради нестабилния източник данни за обектите „%s“" -#: object-file.c:1917 builtin/pack-objects.c:1097 +#: object-file.c:1963 builtin/pack-objects.c:1097 #, c-format msgid "failed utime() on %s" msgstr "неуспешно задаване на време на достъп/създаване чрез „utime“ на „%s“" -#: object-file.c:1994 +#: object-file.c:2040 #, c-format msgid "cannot read object for %s" msgstr "обектът за „%s“ не може да се прочете" -#: object-file.c:2045 +#: object-file.c:2091 msgid "corrupt commit" msgstr "повредено подаване" -#: object-file.c:2053 +#: object-file.c:2099 msgid "corrupt tag" msgstr "повреден етикет" -#: object-file.c:2153 +#: object-file.c:2199 #, c-format msgid "read error while indexing %s" msgstr "грешка при четене по време на индексиране на „%s“" -#: object-file.c:2156 +#: object-file.c:2202 #, c-format msgid "short read while indexing %s" msgstr "непълно прочитане по време на индексиране на „%s“" -#: object-file.c:2229 object-file.c:2239 +#: object-file.c:2275 object-file.c:2285 #, c-format msgid "%s: failed to insert into database" msgstr "„%s“ не може да се вмъкне в базата от данни" -#: object-file.c:2245 +#: object-file.c:2291 #, c-format msgid "%s: unsupported file type" msgstr "неподдържан вид файл: „%s“" -#: object-file.c:2269 +#: object-file.c:2315 #, c-format msgid "%s is not a valid object" msgstr "„%s“ е неправилен обект" -#: object-file.c:2271 +#: object-file.c:2317 #, c-format msgid "%s is not a valid '%s' object" msgstr "„%s“ е неправилен обект от вид „%s“" -#: object-file.c:2298 builtin/index-pack.c:192 +#: object-file.c:2344 builtin/index-pack.c:192 #, c-format msgid "unable to open %s" msgstr "обектът „%s“ не може да бъде отворен" -#: object-file.c:2488 object-file.c:2541 +#: object-file.c:2535 object-file.c:2588 #, c-format msgid "hash mismatch for %s (expected %s)" msgstr "неправилна контролна сума за „%s“ (трябва да е %s)" -#: object-file.c:2512 +#: object-file.c:2559 #, c-format msgid "unable to mmap %s" msgstr "неуспешно изпълнение на „mmap“ върху „%s“" -#: object-file.c:2517 +#: object-file.c:2564 #, c-format msgid "unable to unpack header of %s" msgstr "заглавната част на „%s“ не може да бъде разпакетирана" -#: object-file.c:2523 +#: object-file.c:2570 #, c-format msgid "unable to parse header of %s" msgstr "заглавната част на „%s“ не може да бъде анализирана" -#: object-file.c:2534 +#: object-file.c:2581 #, c-format msgid "unable to unpack contents of %s" msgstr "съдържанието на „%s“ не може да бъде разпакетирано" @@ -6016,73 +6091,73 @@ msgstr "неправилен вид обект: „%s“" msgid "object %s is a %s, not a %s" msgstr "обектът „%s“ е %s, а не %s" -#: object.c:233 +#: object.c:232 #, c-format msgid "object %s has unknown type id %d" msgstr "обектът „%s“ е непознат вид: %d" -#: object.c:246 +#: object.c:245 #, c-format msgid "unable to parse object: %s" msgstr "обектът „%s“ не може да бъде анализиран" -#: object.c:266 object.c:278 +#: object.c:265 object.c:277 #, c-format msgid "hash mismatch %s" msgstr "разлика в контролната сума: „%s“" -#: pack-bitmap.c:843 pack-bitmap.c:849 builtin/pack-objects.c:2226 +#: pack-bitmap.c:844 pack-bitmap.c:850 builtin/pack-objects.c:2251 #, c-format msgid "unable to get size of %s" msgstr "размерът на „%s“ не може да бъде получен" -#: pack-bitmap.c:1489 builtin/rev-list.c:92 +#: pack-bitmap.c:1547 builtin/rev-list.c:92 #, c-format msgid "unable to get disk usage of %s" msgstr "използваното място за „%s“ не може да бъде получено" -#: pack-revindex.c:220 +#: pack-revindex.c:221 #, c-format msgid "reverse-index file %s is too small" msgstr "файлът с обратния индекс „%s“ е твърде малък" -#: pack-revindex.c:225 +#: pack-revindex.c:226 #, c-format msgid "reverse-index file %s is corrupt" msgstr "файлът с обратния индекс „%s“ е повреден" -#: pack-revindex.c:233 +#: pack-revindex.c:234 #, c-format msgid "reverse-index file %s has unknown signature" msgstr "непознат подпис за файла на обратния индекс „%s“" -#: pack-revindex.c:237 +#: pack-revindex.c:238 #, c-format msgid "reverse-index file %s has unsupported version %<PRIu32>" msgstr "версия %2$<PRIu32> на файла с обратен индекс „%1$s“ не се поддържа" -#: pack-revindex.c:242 +#: pack-revindex.c:243 #, c-format msgid "reverse-index file %s has unsupported hash id %<PRIu32>" msgstr "" "идентификатор на контролна сума %2$<PRIu32> на файла с обратен индекс „%1$s“ " "не се поддържа" -#: pack-write.c:236 +#: pack-write.c:250 msgid "cannot both write and verify reverse index" msgstr "обратният индекс не може едновременно да се записва и да се проверява" -#: pack-write.c:257 +#: pack-write.c:271 #, c-format msgid "could not stat: %s" msgstr "не може да се получи информация чрез „stat“ за „%s“" -#: pack-write.c:269 +#: pack-write.c:283 #, c-format msgid "failed to make %s readable" msgstr "не може да се дадат права за четене на „%s“" -#: pack-write.c:508 +#: pack-write.c:522 #, c-format msgid "could not write '%s' promisor file" msgstr "гарантиращият файл „%s“ не може да се запише" @@ -6092,14 +6167,14 @@ msgid "offset before end of packfile (broken .idx?)" msgstr "" "отместване преди края на пакетния файл (възможно е индексът да е повреден)" -#: packfile.c:1934 +#: packfile.c:1937 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "" "отместване преди началото на индекса на пакетния файл „%s“ (възможно е " "индексът да е повреден)" -#: packfile.c:1938 +#: packfile.c:1941 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "" @@ -6169,31 +6244,31 @@ msgstr "нееднозначна опция: „%s“ (може да е „--%s% msgid "did you mean `--%s` (with two dashes)?" msgstr "„--%s“ (с 2 тирета) ли имахте предвид?" -#: parse-options.c:666 parse-options.c:971 +#: parse-options.c:668 parse-options.c:988 #, c-format msgid "alias of --%s" msgstr "псевдоним на „--%s“" -#: parse-options.c:862 +#: parse-options.c:879 #, c-format msgid "unknown option `%s'" msgstr "непозната опция: „%s“" -#: parse-options.c:864 +#: parse-options.c:881 #, c-format msgid "unknown switch `%c'" msgstr "непознат флаг „%c“" -#: parse-options.c:866 +#: parse-options.c:883 #, c-format msgid "unknown non-ascii option in string: `%s'" msgstr "непозната стойност извън „ascii“ в низа: „%s“" -#: parse-options.c:890 +#: parse-options.c:907 msgid "..." msgstr "…" -#: parse-options.c:909 +#: parse-options.c:926 #, c-format msgid "usage: %s" msgstr "употреба: %s" @@ -6201,48 +6276,48 @@ msgstr "употреба: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation. #. -#: parse-options.c:915 +#: parse-options.c:932 #, c-format msgid " or: %s" msgstr " или: %s" -#: parse-options.c:918 +#: parse-options.c:935 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:957 +#: parse-options.c:974 msgid "-NUM" msgstr "-ЧИСЛО" #: path.c:915 #, c-format msgid "Could not make %s writable by group" -msgstr "Не могат да се дадат права за запис в директорията „%s“ на групата" +msgstr "Не може да се дадат права за запис в директорията „%s“ на групата" -#: pathspec.c:130 +#: pathspec.c:151 msgid "Escape character '\\' not allowed as last character in attr value" msgstr "" "Екраниращият знак „\\“не може да е последен знак в стойността на атрибут" -#: pathspec.c:148 +#: pathspec.c:169 msgid "Only one 'attr:' specification is allowed." msgstr "Позволено е само едно указване на „attr:“." -#: pathspec.c:151 +#: pathspec.c:172 msgid "attr spec must not be empty" msgstr "„attr:“ трябва да указва стойност" -#: pathspec.c:194 +#: pathspec.c:215 #, c-format msgid "invalid attribute name %s" msgstr "неправилно име на атрибут: „%s“" -#: pathspec.c:259 +#: pathspec.c:280 msgid "global 'glob' and 'noglob' pathspec settings are incompatible" msgstr "глобалните настройки за пътища „glob“ и „noglob“ са несъвместими" -#: pathspec.c:266 +#: pathspec.c:287 msgid "" "global 'literal' pathspec setting is incompatible with all other global " "pathspec settings" @@ -6250,51 +6325,51 @@ msgstr "" "глобалната настройка за дословни пътища „literal“ е несъвместима с всички " "други глобални настройки за пътища" -#: pathspec.c:306 +#: pathspec.c:327 msgid "invalid parameter for pathspec magic 'prefix'" msgstr "неправилен параметър за опцията за магически пътища „prefix“" -#: pathspec.c:327 +#: pathspec.c:348 #, c-format msgid "Invalid pathspec magic '%.*s' in '%s'" msgstr "Неправилна стойност за опцията за магически пътища „%.*s“ в „%s“" -#: pathspec.c:332 +#: pathspec.c:353 #, c-format msgid "Missing ')' at the end of pathspec magic in '%s'" msgstr "Знакът „)“ липсва в опцията за магически пътища в „%s“" -#: pathspec.c:370 +#: pathspec.c:391 #, c-format msgid "Unimplemented pathspec magic '%c' in '%s'" msgstr "Магическите пътища „%c“ са без реализация за „%s“" -#: pathspec.c:429 +#: pathspec.c:450 #, c-format msgid "%s: 'literal' and 'glob' are incompatible" msgstr "%s: опциите „literal“ и „glob“ са несъвместими" -#: pathspec.c:445 +#: pathspec.c:466 #, c-format msgid "%s: '%s' is outside repository at '%s'" msgstr "%s: „%s“ е извън хранилището при „%s“" -#: pathspec.c:521 +#: pathspec.c:542 #, c-format msgid "'%s' (mnemonic: '%c')" msgstr "„%s“ (клавиш: „%c“)" -#: pathspec.c:531 +#: pathspec.c:552 #, c-format msgid "%s: pathspec magic not supported by this command: %s" msgstr "%s: магическите пътища не се поддържат от командата „%s“" -#: pathspec.c:598 +#: pathspec.c:619 #, c-format msgid "pathspec '%s' is beyond a symbolic link" msgstr "пътят „%s“ е след символна връзка" -#: pathspec.c:643 +#: pathspec.c:664 #, c-format msgid "line is badly quoted: %s" msgstr "неправилно цитиран ред: %s" @@ -6315,7 +6390,7 @@ msgstr "разделящият пакет без запазване на със msgid "flush packet write failed" msgstr "неуспешно изчистване на буферите при запис на пакет" -#: pkt-line.c:153 pkt-line.c:239 +#: pkt-line.c:153 pkt-line.c:265 msgid "protocol error: impossibly long line" msgstr "протоколна грешка: прекалено дълъг ред" @@ -6323,35 +6398,36 @@ msgstr "протоколна грешка: прекалено дълъг ред" msgid "packet write with format failed" msgstr "неуспешен запис на пакет с формат" -#: pkt-line.c:203 +#: pkt-line.c:204 msgid "packet write failed - data exceeds max packet size" msgstr "" "неуспешен запис на пакетен файл — данните надвишават максималният размер на " "пакет" -#: pkt-line.c:210 pkt-line.c:217 -msgid "packet write failed" -msgstr "неуспешен запис на пакет" +#: pkt-line.c:222 +#, c-format +msgid "packet write failed: %s" +msgstr "неуспешен запис на пакет: %s" -#: pkt-line.c:302 +#: pkt-line.c:328 pkt-line.c:329 msgid "read error" msgstr "грешка при четене" -#: pkt-line.c:310 +#: pkt-line.c:339 pkt-line.c:340 msgid "the remote end hung up unexpectedly" msgstr "отдалеченото хранилище неочаквано прекъсна връзката" -#: pkt-line.c:338 +#: pkt-line.c:369 pkt-line.c:371 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "протоколна грешка: неправилeн знак за дължина на ред: %.4s" -#: pkt-line.c:352 pkt-line.c:357 +#: pkt-line.c:386 pkt-line.c:388 pkt-line.c:394 pkt-line.c:396 #, c-format msgid "protocol error: bad line length %d" msgstr "протоколна грешка: неправилна дължина на ред: %d" -#: pkt-line.c:373 sideband.c:165 +#: pkt-line.c:413 sideband.c:165 #, c-format msgid "remote error: %s" msgstr "отдалечена грешка: %s" @@ -6365,7 +6441,7 @@ msgstr "Обновяване на индекса" msgid "unable to create threaded lstat: %s" msgstr "не може да се създаде нишка за изпълнението на „lstat“: %s" -#: pretty.c:984 +#: pretty.c:988 msgid "unable to parse --pretty format" msgstr "аргументът към опцията „--pretty“ не може да се анализира" @@ -6389,6 +6465,10 @@ msgid "promisor remote name cannot begin with '/': %s" msgstr "" "името отдалеченото хранилище-гарант не може за започва със знака „/“: %s" +#: protocol-caps.c:103 +msgid "object-info: expected flush after arguments" +msgstr "object-info: след аргументите се очаква изчистване на буферите" + #: prune-packed.c:35 msgid "Removing duplicate objects" msgstr "Изтриване на повтарящите се обекти" @@ -6402,7 +6482,7 @@ msgid "could not read `log` output" msgstr "" "изходът от командата за журнала с подавания „log“ не може да се прочете" -#: range-diff.c:101 sequencer.c:5318 +#: range-diff.c:101 sequencer.c:5551 #, c-format msgid "could not parse commit '%s'" msgstr "подаването „%s“ не може да бъде анализирано" @@ -6434,53 +6514,53 @@ msgstr "опциите „--left-only“ и „--right-only“ са несъвм msgid "could not parse log for '%s'" msgstr "журналът с подаванията на „%s“ не може да бъде анализиран" -#: read-cache.c:682 +#: read-cache.c:708 #, c-format msgid "will not add file alias '%s' ('%s' already exists in index)" msgstr "" "няма да бъде добавен псевдоним за файл „%s“ („%s“ вече съществува в индекса)" -#: read-cache.c:698 +#: read-cache.c:724 msgid "cannot create an empty blob in the object database" msgstr "в базата от данни за обектите не може да се създаде празен обект-BLOB" -#: read-cache.c:720 +#: read-cache.c:746 #, c-format msgid "%s: can only add regular files, symbolic links or git-directories" msgstr "" "%s: може да добавяте само обикновени файлове, символни връзки и директории " "на git" -#: read-cache.c:725 +#: read-cache.c:751 #, c-format msgid "'%s' does not have a commit checked out" msgstr "не е изтеглено подаване в „%s“" -#: read-cache.c:777 +#: read-cache.c:803 #, c-format msgid "unable to index file '%s'" msgstr "файлът „%s“ не може да бъде индексиран" -#: read-cache.c:796 +#: read-cache.c:822 #, c-format msgid "unable to add '%s' to index" msgstr "„%s“ не може да се добави в индекса" -#: read-cache.c:807 +#: read-cache.c:833 #, c-format msgid "unable to stat '%s'" msgstr "„stat“ не може да се изпълни върху „%s“" -#: read-cache.c:1318 +#: read-cache.c:1356 #, c-format msgid "'%s' appears as both a file and as a directory" msgstr "„%s“ съществува и като файл, и като директория" -#: read-cache.c:1532 +#: read-cache.c:1571 msgid "Refresh index" msgstr "Обновяване на индекса" -#: read-cache.c:1657 +#: read-cache.c:1700 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -6489,7 +6569,7 @@ msgstr "" "Зададена е неправилна стойност на настройката „index.version“.\n" "Ще се ползва версия %i" -#: read-cache.c:1667 +#: read-cache.c:1710 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -6499,142 +6579,146 @@ msgstr "" "„GIT_INDEX_VERSION“.\n" "Ще се ползва версия %i" -#: read-cache.c:1723 +#: read-cache.c:1766 #, c-format msgid "bad signature 0x%08x" msgstr "неправилен подпис: „0x%08x“" -#: read-cache.c:1726 +#: read-cache.c:1769 #, c-format msgid "bad index version %d" msgstr "неправилна версия на индекса %d" -#: read-cache.c:1735 +#: read-cache.c:1778 msgid "bad index file sha1 signature" msgstr "неправилен подпис за контролна сума по SHA1 на файла на индекса" -#: read-cache.c:1765 +#: read-cache.c:1812 #, c-format msgid "index uses %.4s extension, which we do not understand" msgstr "" "индексът ползва разширение „%.4s“, което не се поддържа от тази версия на git" -#: read-cache.c:1767 +#: read-cache.c:1814 #, c-format msgid "ignoring %.4s extension" msgstr "игнориране на разширението „%.4s“" -#: read-cache.c:1804 +#: read-cache.c:1851 #, c-format msgid "unknown index entry format 0x%08x" msgstr "непознат формат на запис в индекса: „0x%08x“" -#: read-cache.c:1820 +#: read-cache.c:1867 #, c-format msgid "malformed name field in the index, near path '%s'" msgstr "неправилно име на поле в индекса близо до пътя „%s“" -#: read-cache.c:1877 +#: read-cache.c:1924 msgid "unordered stage entries in index" msgstr "неподредени записи в индекса" -#: read-cache.c:1880 +#: read-cache.c:1927 #, c-format msgid "multiple stage entries for merged file '%s'" msgstr "множество записи за слетия файл „%s“" -#: read-cache.c:1883 +#: read-cache.c:1930 #, c-format msgid "unordered stage entries for '%s'" msgstr "неподредени записи за „%s“" -#: read-cache.c:1989 read-cache.c:2280 rerere.c:549 rerere.c:583 rerere.c:1095 -#: submodule.c:1634 builtin/add.c:546 builtin/check-ignore.c:181 -#: builtin/checkout.c:504 builtin/checkout.c:690 builtin/clean.c:991 -#: builtin/commit.c:364 builtin/diff-tree.c:122 builtin/grep.c:505 -#: builtin/mv.c:146 builtin/reset.c:247 builtin/rm.c:290 +#: read-cache.c:2036 read-cache.c:2333 rerere.c:549 rerere.c:583 rerere.c:1095 +#: submodule.c:1635 builtin/add.c:575 builtin/check-ignore.c:183 +#: builtin/checkout.c:522 builtin/checkout.c:711 builtin/clean.c:991 +#: builtin/commit.c:377 builtin/diff-tree.c:122 builtin/grep.c:505 +#: builtin/mv.c:146 builtin/reset.c:247 builtin/rm.c:291 #: builtin/submodule--helper.c:332 msgid "index file corrupt" msgstr "файлът с индекса е повреден" -#: read-cache.c:2133 +#: read-cache.c:2180 #, c-format msgid "unable to create load_cache_entries thread: %s" msgstr "не може да се създаде нишка за зареждане на обектите от кеша: %s" -#: read-cache.c:2146 +#: read-cache.c:2193 #, c-format msgid "unable to join load_cache_entries thread: %s" msgstr "не може да се изчака нишка за зареждане на обектите от кеша: %s" -#: read-cache.c:2179 +#: read-cache.c:2226 #, c-format msgid "%s: index file open failed" msgstr "%s: неуспешно отваряне на файла на индекса" -#: read-cache.c:2183 +#: read-cache.c:2230 #, c-format msgid "%s: cannot stat the open index" msgstr "%s: не може да се получи информация за отворения индекс със „stat“" -#: read-cache.c:2187 +#: read-cache.c:2234 #, c-format msgid "%s: index file smaller than expected" msgstr "%s: файлът на индекса е по-малък от очакваното" -#: read-cache.c:2191 +#: read-cache.c:2238 #, c-format msgid "%s: unable to map index file" msgstr "%s: неуспешно заделяне на съответстваща памет чрез „mmap“ на индекса" -#: read-cache.c:2233 +#: read-cache.c:2280 #, c-format msgid "unable to create load_index_extensions thread: %s" msgstr "" "не може да се създаде нишка за зареждане на разширенията на индекса: %s" -#: read-cache.c:2260 +#: read-cache.c:2307 #, c-format msgid "unable to join load_index_extensions thread: %s" msgstr "" "не може да се създаде нишка за зареждане на разширенията на индекса: %s" -#: read-cache.c:2292 +#: read-cache.c:2345 #, c-format msgid "could not freshen shared index '%s'" msgstr "споделеният индекс „%s“ не може да се обнови" -#: read-cache.c:2339 +#: read-cache.c:2392 #, c-format msgid "broken index, expect %s in %s, got %s" msgstr "грешки в индекса — в „%2$s“ се очаква „%1$s“, а бе получено „%3$s“" -#: read-cache.c:3035 strbuf.c:1171 wrapper.c:633 builtin/merge.c:1141 +#: read-cache.c:3095 strbuf.c:1173 wrapper.c:633 builtin/merge.c:1145 #, c-format msgid "could not close '%s'" msgstr "„%s“ не може да се затвори" -#: read-cache.c:3138 sequencer.c:2487 sequencer.c:4239 +#: read-cache.c:3138 +msgid "failed to convert to a sparse-index" +msgstr "индексът не може да бъде превърнат в частичен" + +#: read-cache.c:3209 sequencer.c:2684 sequencer.c:4441 #, c-format msgid "could not stat '%s'" msgstr "неуспешно изпълнение на „stat“ върху „%s“" -#: read-cache.c:3151 +#: read-cache.c:3222 #, c-format msgid "unable to open git dir: %s" msgstr "не може да се отвори директорията на git: %s" -#: read-cache.c:3163 +#: read-cache.c:3234 #, c-format msgid "unable to unlink: %s" msgstr "неуспешно изтриване на „%s“" -#: read-cache.c:3188 +#: read-cache.c:3263 #, c-format msgid "cannot fix permission bits on '%s'" -msgstr "правата за достъп до „%s“ не могат да бъдат поправени" +msgstr "правата за достъп до „%s“ не може да бъдат поправени" -#: read-cache.c:3337 +#: read-cache.c:3412 #, c-format msgid "%s: cannot drop to stage #0" msgstr "%s: не може да се премине към етап №0" @@ -6665,7 +6749,10 @@ msgid "" "r, reword <commit> = use commit, but edit the commit message\n" "e, edit <commit> = use commit, but stop for amending\n" "s, squash <commit> = use commit, but meld into previous commit\n" -"f, fixup <commit> = like \"squash\", but discard this commit's log message\n" +"f, fixup [-C | -c] <commit> = like \"squash\" but keep only the previous\n" +" commit's log message, unless -C is used, in which case\n" +" keep only this commit's message; -c is same as -C but\n" +" opens the editor\n" "x, exec <command> = run command (the rest of the line) using shell\n" "b, break = stop here (continue rebase later with 'git rebase --continue')\n" "d, drop <commit> = remove commit\n" @@ -6674,19 +6761,21 @@ msgid "" "m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n" ". create a merge commit using the original merge commit's\n" ". message (or the oneline, if no original merge commit was\n" -". specified). Use -c <commit> to reword the commit message.\n" +". specified); use -c <commit> to reword the commit message\n" "\n" "These lines can be re-ordered; they are executed from top to bottom.\n" msgstr "" "\n" "Команди:\n" " p, pick ПОДАВАНЕ — прилагане на подаването\n" -" r, reword ПОДАВАНЕ — прилагане на подаването, но смяна на съобщението му\n" +" r, reword ПОДАВАНЕ — прилагане на подаването, но промяна на съобщението му\n" " e, edit ПОДАВАНЕ — прилагане на подаването и спиране при него за още " "промени\n" " s, squash ПОДАВАНЕ — вкарване на подаването в предходното му\n" -" f, fixup ПОДАВАНЕ — вкарване на подаването в предходното му, без смяна на\n" -" съобщението\n" +" f, fixup [-C | -c] ПОДАВАНЕ\n" +" — вкарване на подаването в предходното му, без смяна на\n" +" съобщението. С „-C“ се използва само съобщението на\n" +" настоящото, а с „-c“ освен това се отваря редакторът\n" " x, exec ПОДАВАНЕ — изпълнение на команда към обвивката: останалата част " "на\n" " реда\n" @@ -6704,23 +6793,22 @@ msgstr "" "Може да променяте последователността на редовете — те се изпълняват\n" "последователно отгоре-надолу.\n" -#: rebase-interactive.c:63 +#: rebase-interactive.c:66 #, c-format msgid "Rebase %s onto %s (%d command)" msgid_plural "Rebase %s onto %s (%d commands)" msgstr[0] "Пребазиране на „%s“ върху „%s“ (%d команди)" msgstr[1] "Пребазиране на „%s“ върху „%s“ (%d команда)" -#: rebase-interactive.c:72 git-rebase--preserve-merges.sh:218 +#: rebase-interactive.c:75 git-rebase--preserve-merges.sh:218 msgid "" "\n" "Do not remove any line. Use 'drop' explicitly to remove a commit.\n" msgstr "" "\n" -"Не изтривайте редове. Подаванията могат да се прескачат с командата " -"„drop“.\n" +"Не изтривайте редове. Подаванията може да се прескачат с командата „drop“.\n" -#: rebase-interactive.c:75 git-rebase--preserve-merges.sh:222 +#: rebase-interactive.c:78 git-rebase--preserve-merges.sh:222 msgid "" "\n" "If you remove a line here THAT COMMIT WILL BE LOST.\n" @@ -6728,7 +6816,7 @@ msgstr "" "\n" "Ако изтриете ред, съответстващото му подаване ще бъде ИЗТРИТО.\n" -#: rebase-interactive.c:81 git-rebase--preserve-merges.sh:861 +#: rebase-interactive.c:84 git-rebase--preserve-merges.sh:861 msgid "" "\n" "You are editing the todo file of an ongoing interactive rebase.\n" @@ -6743,7 +6831,7 @@ msgstr "" " git rebase --continue\n" "\n" -#: rebase-interactive.c:86 git-rebase--preserve-merges.sh:938 +#: rebase-interactive.c:89 git-rebase--preserve-merges.sh:938 msgid "" "\n" "However, if you remove everything, the rebase will be aborted.\n" @@ -6753,19 +6841,19 @@ msgstr "" "Ако изтриете всичко, пребазирането ще бъде преустановено.\n" "\n" -#: rebase-interactive.c:110 rerere.c:469 rerere.c:676 sequencer.c:3615 -#: sequencer.c:3641 sequencer.c:5424 builtin/fsck.c:329 builtin/rebase.c:272 +#: rebase-interactive.c:113 rerere.c:469 rerere.c:676 sequencer.c:3816 +#: sequencer.c:3842 sequencer.c:5657 builtin/fsck.c:327 builtin/rebase.c:271 #, c-format msgid "could not write '%s'" msgstr "„%s“ не може да се запише" -#: rebase-interactive.c:116 builtin/rebase.c:204 builtin/rebase.c:230 -#: builtin/rebase.c:254 +#: rebase-interactive.c:119 builtin/rebase.c:203 builtin/rebase.c:229 +#: builtin/rebase.c:253 #, c-format msgid "could not write '%s'." msgstr "„%s“ не може да се запише." -#: rebase-interactive.c:193 +#: rebase-interactive.c:196 #, c-format msgid "" "Warning: some commits may have been dropped accidentally.\n" @@ -6774,7 +6862,7 @@ msgstr "" "Предупреждение: някои подавания може да са пропуснати.\n" "Пропуснати подавания (новите са най-отгоре):\n" -#: rebase-interactive.c:200 +#: rebase-interactive.c:203 #, c-format msgid "" "To avoid this message, use \"drop\" to explicitly remove a commit.\n" @@ -6791,14 +6879,14 @@ msgstr "" "предупреждение)\n" "или „error“ (считане за грешка).\n" -#: rebase-interactive.c:233 rebase-interactive.c:238 sequencer.c:2402 -#: builtin/rebase.c:190 builtin/rebase.c:215 builtin/rebase.c:241 -#: builtin/rebase.c:266 +#: rebase-interactive.c:236 rebase-interactive.c:241 sequencer.c:2597 +#: builtin/rebase.c:189 builtin/rebase.c:214 builtin/rebase.c:240 +#: builtin/rebase.c:265 #, c-format msgid "could not read '%s'." msgstr "от „%s“ не може да се чете." -#: ref-filter.c:42 wt-status.c:1975 +#: ref-filter.c:42 wt-status.c:1978 msgid "gone" msgstr "изтрит" @@ -6953,111 +7041,111 @@ msgstr "не е хранилище на git, а полето „%.*s“ изис msgid "format: %%(if) atom used without a %%(then) atom" msgstr "формат: лексемата %%(if) е използвана без съответната ѝ %%(then)" -#: ref-filter.c:806 +#: ref-filter.c:807 #, c-format msgid "format: %%(then) atom used without an %%(if) atom" msgstr "формат: лексемата %%(then) е използвана без съответната ѝ %%(if)" -#: ref-filter.c:808 +#: ref-filter.c:809 #, c-format msgid "format: %%(then) atom used more than once" msgstr "формат: лексемата %%(then) е използвана повече от един път" -#: ref-filter.c:810 +#: ref-filter.c:811 #, c-format msgid "format: %%(then) atom used after %%(else)" msgstr "формат: лексемата %%(then) е използвана след %%(else)" -#: ref-filter.c:838 +#: ref-filter.c:839 #, c-format msgid "format: %%(else) atom used without an %%(if) atom" msgstr "формат: лексемата %%(else) е използвана без съответната ѝ %%(if)" -#: ref-filter.c:840 +#: ref-filter.c:841 #, c-format msgid "format: %%(else) atom used without a %%(then) atom" msgstr "формат: лексемата %%(else) е използвана без съответната ѝ %%(then)" -#: ref-filter.c:842 +#: ref-filter.c:843 #, c-format msgid "format: %%(else) atom used more than once" msgstr "формат: лексемата %%(else) е използвана повече от един път" -#: ref-filter.c:857 +#: ref-filter.c:858 #, c-format msgid "format: %%(end) atom used without corresponding atom" msgstr "формат: лексемата %%(end) е използвана без съответната ѝ" -#: ref-filter.c:914 +#: ref-filter.c:915 #, c-format msgid "malformed format string %s" msgstr "неправилен форматиращ низ „%s“" -#: ref-filter.c:1555 +#: ref-filter.c:1556 #, c-format msgid "(no branch, rebasing %s)" msgstr "(извън клон, пребазиране на „%s“)" -#: ref-filter.c:1558 +#: ref-filter.c:1559 #, c-format msgid "(no branch, rebasing detached HEAD %s)" msgstr "(извън клон, пребазиране на несвързан указател „HEAD“ при „%s“)" -#: ref-filter.c:1561 +#: ref-filter.c:1562 #, c-format msgid "(no branch, bisect started on %s)" msgstr "(извън клон, двоично търсене от „%s“)" -#: ref-filter.c:1565 +#: ref-filter.c:1566 #, c-format msgid "(HEAD detached at %s)" msgstr "(указателят „HEAD“ не е свързан и е при „%s“)" -#: ref-filter.c:1568 +#: ref-filter.c:1569 #, c-format msgid "(HEAD detached from %s)" msgstr "(указателят „HEAD“ не е свързан и е отделѐн от „%s“)" -#: ref-filter.c:1571 +#: ref-filter.c:1572 msgid "(no branch)" msgstr "(извън клон)" -#: ref-filter.c:1603 ref-filter.c:1812 +#: ref-filter.c:1604 ref-filter.c:1813 #, c-format msgid "missing object %s for %s" msgstr "обектът „%s“ липсва за „%s“" -#: ref-filter.c:1613 +#: ref-filter.c:1614 #, c-format msgid "parse_object_buffer failed on %s for %s" msgstr "неуспешно анализиране чрез „parse_object_buffer“ на „%s“ за „%s“" -#: ref-filter.c:1996 +#: ref-filter.c:1997 #, c-format msgid "malformed object at '%s'" msgstr "обект със сгрешен формат при „%s“" -#: ref-filter.c:2085 +#: ref-filter.c:2086 #, c-format msgid "ignoring ref with broken name %s" msgstr "игнориране на указателя с грешно име „%s“" -#: ref-filter.c:2090 refs.c:676 +#: ref-filter.c:2091 refs.c:676 #, c-format msgid "ignoring broken ref %s" msgstr "игнориране на повредения указател „%s“" -#: ref-filter.c:2430 +#: ref-filter.c:2431 #, c-format msgid "format: %%(end) atom missing" msgstr "грешка във форма̀та: липсва лексемата %%(end)" -#: ref-filter.c:2529 +#: ref-filter.c:2525 #, c-format msgid "malformed object name %s" msgstr "неправилно име на обект „%s“" -#: ref-filter.c:2534 +#: ref-filter.c:2530 #, c-format msgid "option `%s' must point to a commit" msgstr "опцията „%s“ не сочи към подаване" @@ -7081,7 +7169,7 @@ msgid "" "\n" "\tgit branch -m <name>\n" msgstr "" -"Първоначалният клон ще се казва „%s“. Това може да се промени. Можете да " +"Първоначалният клон ще се казва „%s“. Това може да се промени. Може да " "зададете\n" "настройката и да спрете това съобщение. За това изпълнете:\n" "\n" @@ -7518,8 +7606,8 @@ msgstr "излишният обект „%s“ не може да се изтр msgid "Recorded preimage for '%s'" msgstr "Предварителният вариант на „%s“ е запазен" -#: rerere.c:865 submodule.c:2088 builtin/log.c:1991 -#: builtin/submodule--helper.c:1878 builtin/submodule--helper.c:1890 +#: rerere.c:865 submodule.c:2089 builtin/log.c:2000 +#: builtin/submodule--helper.c:1879 builtin/submodule--helper.c:1891 #, c-format msgid "could not create directory '%s'" msgstr "Директорията „%s“ не може да бъде създадена" @@ -7557,25 +7645,25 @@ msgstr "директорията „rr-cache“ не може да се отво msgid "could not determine HEAD revision" msgstr "не може да се определи към какво да сочи указателят „HEAD“" -#: reset.c:70 reset.c:76 sequencer.c:3468 +#: reset.c:70 reset.c:76 sequencer.c:3669 #, c-format msgid "failed to find tree of %s" msgstr "дървото, сочено от „%s“, не може да бъде открито" -#: revision.c:2338 +#: revision.c:2343 msgid "--unpacked=<packfile> no longer supported" msgstr "опцията „--unpacked=ПАКЕТЕН_ФАЙЛ“ вече не се поддържа" -#: revision.c:2668 +#: revision.c:2683 msgid "your current branch appears to be broken" msgstr "Текущият клон е повреден" -#: revision.c:2671 +#: revision.c:2686 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "Текущият клон „%s“ е без подавания " -#: revision.c:2877 +#: revision.c:2892 msgid "-L does not yet support diff formats besides -p and -s" msgstr "" "опцията „-L“ поддържа единствено форматирането на разликите според опциите „-" @@ -7585,12 +7673,12 @@ msgstr "" msgid "open /dev/null failed" msgstr "неуспешно отваряне на „/dev/null“" -#: run-command.c:1274 +#: run-command.c:1275 #, c-format msgid "cannot create async thread: %s" msgstr "не може да се създаде асинхронна нишка: %s" -#: run-command.c:1338 +#: run-command.c:1345 #, c-format msgid "" "The '%s' hook was ignored because it's not set as executable.\n" @@ -7600,37 +7688,45 @@ msgstr "" "За да изключите това предупреждение, изпълнете:\n" " git config advice.ignoredHook false" -#: send-pack.c:146 +#: send-pack.c:150 msgid "unexpected flush packet while reading remote unpack status" msgstr "" "неочакван изчистващ пакет „flush“ при изчитане на състоянието от " "отдалеченото разпакетиране" -#: send-pack.c:148 +#: send-pack.c:152 #, c-format msgid "unable to parse remote unpack status: %s" msgstr "" "състоянието от отдалеченото разпакетиране не може да бъде анализирано: %s" -#: send-pack.c:150 +#: send-pack.c:154 #, c-format msgid "remote unpack failed: %s" msgstr "неуспешно отдалечено разпакетиране: %s" -#: send-pack.c:374 +#: send-pack.c:378 msgid "failed to sign the push certificate" msgstr "сертификатът за изтласкване не може да бъде подписан" -#: send-pack.c:467 +#: send-pack.c:433 +msgid "send-pack: unable to fork off fetch subprocess" +msgstr "send-pack: неуспешно създаване на процес" + +#: send-pack.c:455 +msgid "push negotiation failed; proceeding anyway with push" +msgstr "неуспешно договаряне на изтласкване, но се продължава с изтласкването" + +#: send-pack.c:520 msgid "the receiving end does not support this repository's hash algorithm" msgstr "" "отсрещната страна не поддържа алгоритъма за контролни суми на това хранилище" -#: send-pack.c:476 +#: send-pack.c:529 msgid "the receiving end does not support --signed push" msgstr "отсрещната страна не поддържа изтласкване с опцията „--signed“" -#: send-pack.c:478 +#: send-pack.c:531 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -7638,47 +7734,47 @@ msgstr "" "отсрещната страна не поддържа изтласкване с опцията „--signed“, затова не се " "използва сертификат" -#: send-pack.c:490 +#: send-pack.c:543 msgid "the receiving end does not support --atomic push" msgstr "получаващата страна не поддържа изтласкване с опцията „--atomic“" -#: send-pack.c:495 +#: send-pack.c:548 msgid "the receiving end does not support push options" msgstr "отсрещната страна не поддържа опции при изтласкване" -#: sequencer.c:195 +#: sequencer.c:196 #, c-format msgid "invalid commit message cleanup mode '%s'" msgstr "несъществуващ режим на изчистване „%s“ на съобщение при подаване" -#: sequencer.c:323 +#: sequencer.c:324 #, c-format msgid "could not delete '%s'" msgstr "„%s“ не може да бъде изтрит" -#: sequencer.c:343 builtin/rebase.c:757 builtin/rebase.c:1602 builtin/rm.c:385 +#: sequencer.c:344 builtin/rebase.c:757 builtin/rebase.c:1592 builtin/rm.c:402 #, c-format msgid "could not remove '%s'" msgstr "„%s“ не може да бъде изтрит" -#: sequencer.c:353 +#: sequencer.c:354 msgid "revert" msgstr "отмяна" -#: sequencer.c:355 +#: sequencer.c:356 msgid "cherry-pick" msgstr "отбиране" -#: sequencer.c:357 +#: sequencer.c:358 msgid "rebase" msgstr "пребазиране" -#: sequencer.c:359 +#: sequencer.c:360 #, c-format msgid "unknown action: %d" msgstr "неизвестно действие: %d" -#: sequencer.c:418 +#: sequencer.c:419 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -7686,7 +7782,7 @@ msgstr "" "след коригирането на конфликтите, отбележете съответните\n" "пътища с „git add ПЪТ…“ или „git rm ПЪТ…“." -#: sequencer.c:421 +#: sequencer.c:422 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -7696,43 +7792,43 @@ msgstr "" "пътища с „git add ПЪТ…“ или „git rm ПЪТ…“, след което\n" "подайте резултата с командата „git commit'“." -#: sequencer.c:434 sequencer.c:3070 +#: sequencer.c:435 sequencer.c:3271 #, c-format msgid "could not lock '%s'" msgstr "„%s“ не може да се заключи" -#: sequencer.c:436 sequencer.c:2869 sequencer.c:3074 sequencer.c:3088 -#: sequencer.c:3345 sequencer.c:5334 strbuf.c:1168 wrapper.c:631 +#: sequencer.c:437 sequencer.c:3070 sequencer.c:3275 sequencer.c:3289 +#: sequencer.c:3546 sequencer.c:5567 strbuf.c:1170 wrapper.c:631 #, c-format msgid "could not write to '%s'" msgstr "в „%s“ не може да се пише" -#: sequencer.c:441 +#: sequencer.c:442 #, c-format msgid "could not write eol to '%s'" msgstr "краят на ред не може да се запише в „%s“" -#: sequencer.c:446 sequencer.c:2874 sequencer.c:3076 sequencer.c:3090 -#: sequencer.c:3353 +#: sequencer.c:447 sequencer.c:3075 sequencer.c:3277 sequencer.c:3291 +#: sequencer.c:3554 #, c-format msgid "failed to finalize '%s'" msgstr "„%s“ не може да се завърши" -#: sequencer.c:485 +#: sequencer.c:486 #, c-format msgid "your local changes would be overwritten by %s." msgstr "локалните ви промени ще бъдат презаписани при %s." -#: sequencer.c:489 +#: sequencer.c:490 msgid "commit your changes or stash them to proceed." msgstr "подайте или скатайте промените, за да продължите" -#: sequencer.c:521 +#: sequencer.c:522 #, c-format msgid "%s: fast-forward" msgstr "%s: превъртане" -#: sequencer.c:560 builtin/tag.c:598 +#: sequencer.c:561 builtin/tag.c:609 #, c-format msgid "Invalid cleanup mode %s" msgstr "Несъществуващ режим на изчистване „%s“" @@ -7740,65 +7836,65 @@ msgstr "Несъществуващ режим на изчистване „%s“ #. TRANSLATORS: %s will be "revert", "cherry-pick" or #. "rebase". #. -#: sequencer.c:670 +#: sequencer.c:671 #, c-format msgid "%s: Unable to write new index file" msgstr "%s: новият индекс не може да бъде запазен" -#: sequencer.c:684 +#: sequencer.c:685 msgid "unable to update cache tree" msgstr "дървото на кеша не може да бъде обновено" -#: sequencer.c:698 +#: sequencer.c:699 msgid "could not resolve HEAD commit" msgstr "подаването, сочено от указателя „HEAD“, не може да бъде открито" -#: sequencer.c:778 +#: sequencer.c:779 #, c-format msgid "no key present in '%.*s'" msgstr "в „%.*s“ няма ключове" -#: sequencer.c:789 +#: sequencer.c:790 #, c-format msgid "unable to dequote value of '%s'" msgstr "цитирането на стойността на „%s“ не може да бъде изчистено" -#: sequencer.c:826 wrapper.c:201 wrapper.c:371 builtin/am.c:710 -#: builtin/am.c:802 builtin/merge.c:1136 builtin/rebase.c:910 +#: sequencer.c:827 wrapper.c:201 wrapper.c:371 builtin/am.c:728 +#: builtin/am.c:820 builtin/merge.c:1140 builtin/rebase.c:910 #, c-format msgid "could not open '%s' for reading" msgstr "файлът не може да бъде прочетен: „%s“" -#: sequencer.c:836 +#: sequencer.c:837 msgid "'GIT_AUTHOR_NAME' already given" msgstr "настройката за автор „GIT_AUTHOR_NAME“ вече е зададена" -#: sequencer.c:841 +#: sequencer.c:842 msgid "'GIT_AUTHOR_EMAIL' already given" msgstr "настройката за е-поща „GIT_AUTHOR_EMAIL“ вече е зададена" -#: sequencer.c:846 +#: sequencer.c:847 msgid "'GIT_AUTHOR_DATE' already given" msgstr "настройката за дата „GIT_AUTHOR_DATE“ вече е зададена" -#: sequencer.c:850 +#: sequencer.c:851 #, c-format msgid "unknown variable '%s'" msgstr "непозната променлива „%s“" -#: sequencer.c:855 +#: sequencer.c:856 msgid "missing 'GIT_AUTHOR_NAME'" msgstr "настройката за автор „GIT_AUTHOR_NAME“ липсва" -#: sequencer.c:857 +#: sequencer.c:858 msgid "missing 'GIT_AUTHOR_EMAIL'" msgstr "настройката за е-поща „GIT_AUTHOR_EMAIL“ липсва" -#: sequencer.c:859 +#: sequencer.c:860 msgid "missing 'GIT_AUTHOR_DATE'" msgstr "настройката за дата „GIT_AUTHOR_DATE“ липсва" -#: sequencer.c:924 +#: sequencer.c:925 #, c-format msgid "" "you have staged changes in your working tree\n" @@ -7827,13 +7923,13 @@ msgstr "" "\n" " git rebase --continue\n" -#: sequencer.c:1211 +#: sequencer.c:1212 msgid "'prepare-commit-msg' hook failed" msgstr "" "неуспешно изпълнение на куката при промяна на съобщението при подаване " "(prepare-commit-msg)" -#: sequencer.c:1217 +#: sequencer.c:1218 msgid "" "Your name and email address were configured automatically based\n" "on your username and hostname. Please check that they are accurate.\n" @@ -7848,8 +7944,7 @@ msgid "" " git commit --amend --reset-author\n" msgstr "" "Името и адресът за е-поща са настроени автоматично на базата на името на\n" -"потребителя и името на машината. Проверете дали са верни. Можете да " -"спрете\n" +"потребителя и името на машината. Проверете дали са верни. Може да спрете\n" "това съобщение като изрично зададете стойностите. Изпълнете следната " "команда\n" "и следвайте инструкциите в текстовия ви редактор, за да редактирате\n" @@ -7857,12 +7952,12 @@ msgstr "" "\n" " git config --global --edit\n" "\n" -"След като направите това, можете да коригирате информацията за автора на\n" +"След като направите това, може да коригирате информацията за автора на\n" "текущото подаване чрез:\n" "\n" " git commit --amend --reset-author\n" -#: sequencer.c:1230 +#: sequencer.c:1231 msgid "" "Your name and email address were configured automatically based\n" "on your username and hostname. Please check that they are accurate.\n" @@ -7876,363 +7971,366 @@ msgid "" " git commit --amend --reset-author\n" msgstr "" "Името и адресът за е-поща са настроени автоматично на базата на името на\n" -"потребителя и името на машината. Проверете дали са верни. Можете да " -"спрете\n" +"потребителя и името на машината. Проверете дали са верни. Може да спрете\n" "това съобщение като изрично зададете стойностите:\n" "\n" " git config --global user.name \"Вашето Име\"\n" " git config --global user.email пенчо@example.com\n" "\n" -"След като направите това, можете да коригирате информацията за автора на\n" +"След като направите това, може да коригирате информацията за автора на\n" "текущото подаване чрез:\n" "\n" " git commit --amend --reset-author\n" -#: sequencer.c:1272 +#: sequencer.c:1273 msgid "couldn't look up newly created commit" msgstr "току що създаденото подаване не може да бъде открито" -#: sequencer.c:1274 +#: sequencer.c:1275 msgid "could not parse newly created commit" msgstr "току що създаденото подаване не може да бъде анализирано" -#: sequencer.c:1320 +#: sequencer.c:1321 msgid "unable to resolve HEAD after creating commit" msgstr "" "състоянието сочено от указателя „HEAD“ не може да бъде открито след " "подаването" -#: sequencer.c:1322 +#: sequencer.c:1323 msgid "detached HEAD" msgstr "несвързан връх „HEAD“" -#: sequencer.c:1326 +#: sequencer.c:1327 msgid " (root-commit)" msgstr " (начално подаване)" -#: sequencer.c:1347 +#: sequencer.c:1348 msgid "could not parse HEAD" msgstr "указателят „HEAD“ не може да бъде анализиран" -#: sequencer.c:1349 +#: sequencer.c:1350 #, c-format msgid "HEAD %s is not a commit!" msgstr "указателят „HEAD“ „%s“ сочи към нещо, което не е подаване!" -#: sequencer.c:1353 sequencer.c:1431 builtin/commit.c:1577 +#: sequencer.c:1354 sequencer.c:1432 builtin/commit.c:1692 msgid "could not parse HEAD commit" msgstr "върховото подаване „HEAD“ не може да бъде прочетено" -#: sequencer.c:1409 sequencer.c:2108 +#: sequencer.c:1410 sequencer.c:2295 msgid "unable to parse commit author" msgstr "авторът на подаването не може да бъде анализиран" -#: sequencer.c:1420 builtin/am.c:1566 builtin/merge.c:702 +#: sequencer.c:1421 builtin/am.c:1614 builtin/merge.c:706 msgid "git write-tree failed to write a tree" msgstr "Командата „git write-tree“ не успя да запише обект-дърво" -#: sequencer.c:1453 sequencer.c:1573 +#: sequencer.c:1454 sequencer.c:1574 #, c-format msgid "unable to read commit message from '%s'" msgstr "съобщението за подаване не може да бъде прочетено от „%s“" -#: sequencer.c:1484 sequencer.c:1516 +#: sequencer.c:1485 sequencer.c:1517 #, c-format msgid "invalid author identity '%s'" msgstr "неправилна самоличност за автор: „%s“" -#: sequencer.c:1490 +#: sequencer.c:1491 msgid "corrupt author: missing date information" msgstr "повредена информация за автор: липсва дата" -#: sequencer.c:1529 builtin/am.c:1593 builtin/commit.c:1678 builtin/merge.c:905 -#: builtin/merge.c:930 t/helper/test-fast-rebase.c:78 +#: sequencer.c:1530 builtin/am.c:1641 builtin/commit.c:1806 builtin/merge.c:909 +#: builtin/merge.c:934 t/helper/test-fast-rebase.c:78 msgid "failed to write commit object" msgstr "обектът за подаването не може да бъде записан" -#: sequencer.c:1556 sequencer.c:4291 t/helper/test-fast-rebase.c:198 +#: sequencer.c:1557 sequencer.c:4493 t/helper/test-fast-rebase.c:198 #, c-format msgid "could not update %s" msgstr "„%s“ не може да се обнови" -#: sequencer.c:1605 +#: sequencer.c:1606 #, c-format msgid "could not parse commit %s" msgstr "подаването „%s“ не може да бъде анализирано" -#: sequencer.c:1610 +#: sequencer.c:1611 #, c-format msgid "could not parse parent commit %s" msgstr "родителското подаване „%s“ не може да бъде анализирано" -#: sequencer.c:1693 sequencer.c:1804 +#: sequencer.c:1694 sequencer.c:1975 #, c-format msgid "unknown command: %d" msgstr "непозната команда: %d" -#: sequencer.c:1751 sequencer.c:1776 +#: sequencer.c:1736 git-rebase--preserve-merges.sh:486 +msgid "This is the 1st commit message:" +msgstr "Това е 1-то съобщение при подаване:" + +#: sequencer.c:1737 +#, c-format +msgid "This is the commit message #%d:" +msgstr "Това е съобщение при подаване №%d:" + +#: sequencer.c:1738 +msgid "The 1st commit message will be skipped:" +msgstr "Съобщението при подаване №1 ще бъде прескочено:" + +#: sequencer.c:1739 +#, c-format +msgid "The commit message #%d will be skipped:" +msgstr "Съобщението при подаване №%d ще бъде прескочено:" + +#: sequencer.c:1740 #, c-format msgid "This is a combination of %d commits." msgstr "Това е обединение от %d подавания" -#: sequencer.c:1761 +#: sequencer.c:1887 sequencer.c:1944 +#, c-format +msgid "cannot write '%s'" +msgstr "„%s“ не може да се запази" + +#: sequencer.c:1934 msgid "need a HEAD to fixup" msgstr "За вкарване в предходното подаване ви трябва указател „HEAD“" -#: sequencer.c:1763 sequencer.c:3380 +#: sequencer.c:1936 sequencer.c:3581 msgid "could not read HEAD" msgstr "указателят „HEAD“ не може да се прочете" -#: sequencer.c:1765 +#: sequencer.c:1938 msgid "could not read HEAD's commit message" msgstr "" "съобщението за подаване към указателя „HEAD“ не може да бъде прочетено: %s" -#: sequencer.c:1771 -#, c-format -msgid "cannot write '%s'" -msgstr "„%s“ не може да се запази" - -#: sequencer.c:1778 git-rebase--preserve-merges.sh:486 -msgid "This is the 1st commit message:" -msgstr "Това е 1-то съобщение при подаване:" - -#: sequencer.c:1786 +#: sequencer.c:1962 #, c-format msgid "could not read commit message of %s" msgstr "съобщението за подаване към „%s“ не може да бъде прочетено" -#: sequencer.c:1793 -#, c-format -msgid "This is the commit message #%d:" -msgstr "Това е съобщение при подаване №%d:" - -#: sequencer.c:1799 -#, c-format -msgid "The commit message #%d will be skipped:" -msgstr "Съобщение при подаване №%d ще бъде прескочено:" - -#: sequencer.c:1887 +#: sequencer.c:2072 msgid "your index file is unmerged." msgstr "индексът не е слят." -#: sequencer.c:1894 +#: sequencer.c:2079 msgid "cannot fixup root commit" msgstr "началното подаване не може да се вкара в предходното му" -#: sequencer.c:1913 +#: sequencer.c:2098 #, c-format msgid "commit %s is a merge but no -m option was given." msgstr "подаването „%s“ е сливане, но не е дадена опцията „-m“" -#: sequencer.c:1921 sequencer.c:1929 +#: sequencer.c:2106 sequencer.c:2114 #, c-format msgid "commit %s does not have parent %d" msgstr "подаването „%s“ няма родител %d" -#: sequencer.c:1935 +#: sequencer.c:2120 #, 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:1954 +#: sequencer.c:2139 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "%s: неразпозната стойност за родителското подаване „%s“" -#: sequencer.c:2019 +#: sequencer.c:2205 #, c-format msgid "could not rename '%s' to '%s'" msgstr "„%s“ не може да се преименува на „%s“" -#: sequencer.c:2079 +#: sequencer.c:2265 #, c-format msgid "could not revert %s... %s" msgstr "подаването „%s“… не може да бъде отменено: „%s“" -#: sequencer.c:2080 +#: sequencer.c:2266 #, c-format msgid "could not apply %s... %s" msgstr "подаването „%s“… не може да бъде приложено: „%s“" -#: sequencer.c:2100 +#: sequencer.c:2287 #, c-format msgid "dropping %s %s -- patch contents already upstream\n" msgstr "прескачане на %s %s — кръпката вече е приложена\n" -#: sequencer.c:2158 +#: sequencer.c:2345 #, c-format msgid "git %s: failed to read the index" msgstr "git %s: неуспешно изчитане на индекса" -#: sequencer.c:2165 +#: sequencer.c:2352 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %s: неуспешно обновяване на индекса" -#: sequencer.c:2242 +#: sequencer.c:2425 #, c-format msgid "%s does not accept arguments: '%s'" msgstr "„%s“ не приема аргументи: „%s“" -#: sequencer.c:2251 +#: sequencer.c:2434 #, c-format msgid "missing arguments for %s" msgstr "„%s“ изисква аргументи" -#: sequencer.c:2282 +#: sequencer.c:2477 #, c-format msgid "could not parse '%s'" msgstr "„%s“ не може да се анализира" -#: sequencer.c:2343 +#: sequencer.c:2538 #, c-format msgid "invalid line %d: %.*s" msgstr "неправилен ред %d: %.*s" -#: sequencer.c:2354 +#: sequencer.c:2549 #, c-format msgid "cannot '%s' without a previous commit" msgstr "Без предишно подаване не може да се изпълни „%s“" -#: sequencer.c:2440 +#: sequencer.c:2635 msgid "cancelling a cherry picking in progress" msgstr "преустановяване на извършваното в момента отбиране на подавания" -#: sequencer.c:2449 +#: sequencer.c:2644 msgid "cancelling a revert in progress" msgstr "преустановяване на извършваното в момента отмяна на подаване" -#: sequencer.c:2493 +#: sequencer.c:2690 msgid "please fix this using 'git rebase --edit-todo'." msgstr "коригирайте това чрез „git rebase --edit-todo“." -#: sequencer.c:2495 +#: sequencer.c:2692 #, c-format msgid "unusable instruction sheet: '%s'" msgstr "неизползваем файл с описание на предстоящите действия: „%s“" -#: sequencer.c:2500 +#: sequencer.c:2697 msgid "no commits parsed." msgstr "никое от подаванията не може да се разпознае." -#: sequencer.c:2511 +#: sequencer.c:2708 msgid "cannot cherry-pick during a revert." msgstr "" "по време на отмяна на подаване не може да се извърши отбиране на подаване." -#: sequencer.c:2513 +#: sequencer.c:2710 msgid "cannot revert during a cherry-pick." msgstr "по време на отбиране не може да се извърши отмяна на подаване." -#: sequencer.c:2591 +#: sequencer.c:2788 #, c-format msgid "invalid value for %s: %s" msgstr "неправилна стойност за „%s“: „%s“" -#: sequencer.c:2698 +#: sequencer.c:2897 msgid "unusable squash-onto" msgstr "подаването, в което другите да се вкарат, не може да се използва" -#: sequencer.c:2718 +#: sequencer.c:2917 #, c-format msgid "malformed options sheet: '%s'" msgstr "неправилен файл с опции: „%s“" -#: sequencer.c:2811 sequencer.c:4644 +#: sequencer.c:3012 sequencer.c:4869 msgid "empty commit set passed" msgstr "зададено е празно множество от подавания" -#: sequencer.c:2828 +#: sequencer.c:3029 msgid "revert is already in progress" msgstr "в момента вече се извършва отмяна на подавания" -#: sequencer.c:2830 +#: sequencer.c:3031 #, c-format msgid "try \"git revert (--continue | %s--abort | --quit)\"" msgstr "използвайте „git cherry-pick (--continue | %s--abort | --quit)“" -#: sequencer.c:2833 +#: sequencer.c:3034 msgid "cherry-pick is already in progress" msgstr "в момента вече се извършва отбиране на подавания" -#: sequencer.c:2835 +#: sequencer.c:3036 #, c-format msgid "try \"git cherry-pick (--continue | %s--abort | --quit)\"" msgstr "използвайте „git cherry-pick (--continue | %s--abort | --quit)“" -#: sequencer.c:2849 +#: sequencer.c:3050 #, c-format msgid "could not create sequencer directory '%s'" msgstr "" "директорията за определянето на последователността „%s“ не може да бъде " "създадена" -#: sequencer.c:2864 +#: sequencer.c:3065 msgid "could not lock HEAD" msgstr "указателят „HEAD“ не може да се заключи" -#: sequencer.c:2924 sequencer.c:4379 +#: sequencer.c:3125 sequencer.c:4582 msgid "no cherry-pick or revert in progress" msgstr "" "в момента не се извършва отбиране на подавания или пребазиране на клона" -#: sequencer.c:2926 sequencer.c:2937 +#: sequencer.c:3127 sequencer.c:3138 msgid "cannot resolve HEAD" msgstr "Подаването сочено от указателя „HEAD“ не може да бъде открито" -#: sequencer.c:2928 sequencer.c:2972 +#: sequencer.c:3129 sequencer.c:3173 msgid "cannot abort from a branch yet to be born" msgstr "" "действието не може да бъде преустановено, когато сте на клон, който тепърва " "предстои да бъде създаден" -#: sequencer.c:2958 builtin/grep.c:757 +#: sequencer.c:3159 builtin/grep.c:759 #, c-format msgid "cannot open '%s'" msgstr "„%s“ не може да бъде отворен" -#: sequencer.c:2960 +#: sequencer.c:3161 #, c-format msgid "cannot read '%s': %s" msgstr "„%s“ не може да бъде прочетен: %s" -#: sequencer.c:2961 +#: sequencer.c:3162 msgid "unexpected end of file" msgstr "неочакван край на файл" -#: sequencer.c:2967 +#: sequencer.c:3168 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" msgstr "" "запазеният преди започването на отбирането файл за указателя „HEAD“ — „%s“ е " "повреден" -#: sequencer.c:2978 +#: sequencer.c:3179 msgid "You seem to have moved HEAD. Not rewinding, check your HEAD!" msgstr "" "Изглежда указателят „HEAD“ е променен. Проверете към какво сочи.\n" "Не се правят промени." -#: sequencer.c:3019 +#: sequencer.c:3220 msgid "no revert in progress" msgstr "в момента не тече пребазиране" -#: sequencer.c:3028 +#: sequencer.c:3229 msgid "no cherry-pick in progress" msgstr "в момента не се извършва отбиране на подавания" -#: sequencer.c:3038 +#: sequencer.c:3239 msgid "failed to skip the commit" msgstr "неуспешно прескачане на подаването" -#: sequencer.c:3045 +#: sequencer.c:3246 msgid "there is nothing to skip" msgstr "няма какво да се прескочи" -#: sequencer.c:3048 +#: sequencer.c:3249 #, c-format msgid "" "have you committed already?\n" @@ -8242,16 +8340,16 @@ msgstr "" "\n" " git %s --continue" -#: sequencer.c:3210 sequencer.c:4271 +#: sequencer.c:3411 sequencer.c:4473 msgid "cannot read HEAD" msgstr "указателят „HEAD“ не може да бъде прочетен" -#: sequencer.c:3227 +#: sequencer.c:3428 #, c-format msgid "unable to copy '%s' to '%s'" msgstr "„%s“ не може да се копира като „%s“" -#: sequencer.c:3235 +#: sequencer.c:3436 #, c-format msgid "" "You can amend the commit now, with\n" @@ -8270,27 +8368,27 @@ msgstr "" "\n" " git rebase --continue\n" -#: sequencer.c:3245 +#: sequencer.c:3446 #, c-format msgid "Could not apply %s... %.*s" msgstr "Подаването „%s“… не може да бъде приложено: „%.*s“" -#: sequencer.c:3252 +#: sequencer.c:3453 #, c-format msgid "Could not merge %.*s" msgstr "Невъзможно сливане на „%.*s“" -#: sequencer.c:3266 sequencer.c:3270 builtin/difftool.c:640 +#: sequencer.c:3467 sequencer.c:3471 builtin/difftool.c:644 #, c-format msgid "could not copy '%s' to '%s'" msgstr "„%s“ не може да се копира като „%s“" -#: sequencer.c:3282 +#: sequencer.c:3483 #, c-format msgid "Executing: %s\n" msgstr "В момента се изпълнява: %s\n" -#: sequencer.c:3297 +#: sequencer.c:3498 #, c-format msgid "" "execution failed: %s\n" @@ -8305,11 +8403,11 @@ msgstr "" " git rebase --continue\n" "\n" -#: sequencer.c:3303 +#: sequencer.c:3504 msgid "and made changes to the index and/or the working tree\n" msgstr "и променѝ индекса и/или работното дърво\n" -#: sequencer.c:3309 +#: sequencer.c:3510 #, c-format msgid "" "execution succeeded: %s\n" @@ -8326,90 +8424,90 @@ msgstr "" " git rebase --continue\n" "\n" -#: sequencer.c:3370 +#: sequencer.c:3571 #, c-format msgid "illegal label name: '%.*s'" msgstr "неправилно име на етикет: „%.*s“" -#: sequencer.c:3424 +#: sequencer.c:3625 msgid "writing fake root commit" msgstr "запазване на фалшиво начално подаване" -#: sequencer.c:3429 +#: sequencer.c:3630 msgid "writing squash-onto" msgstr "запазване на подаването, в което другите да се вкарат" -#: sequencer.c:3513 +#: sequencer.c:3714 #, c-format msgid "could not resolve '%s'" msgstr "„%s“ не може да бъде открит" -#: sequencer.c:3546 +#: sequencer.c:3747 msgid "cannot merge without a current revision" msgstr "без текущо подаване не може да се слива" -#: sequencer.c:3568 +#: sequencer.c:3769 #, c-format msgid "unable to parse '%.*s'" msgstr "„%.*s“ не може да се анализира" -#: sequencer.c:3577 +#: sequencer.c:3778 #, c-format msgid "nothing to merge: '%.*s'" msgstr "няма нищо за сливане: „%.*s“" -#: sequencer.c:3589 +#: sequencer.c:3790 msgid "octopus merge cannot be executed on top of a [new root]" msgstr "върху начално подаване не може да се извърши множествено сливане" -#: sequencer.c:3605 +#: sequencer.c:3806 #, c-format msgid "could not get commit message of '%s'" msgstr "съобщението за подаване към „%s“ не може да бъде получено" -#: sequencer.c:3788 +#: sequencer.c:3989 #, c-format msgid "could not even attempt to merge '%.*s'" msgstr "сливането на „%.*s“ не може даже да започне" -#: sequencer.c:3804 +#: sequencer.c:4005 msgid "merge: Unable to write new index file" msgstr "сливане: новият индекс не може да бъде запазен" -#: sequencer.c:3878 +#: sequencer.c:4079 msgid "Cannot autostash" msgstr "Не може да се скатае автоматично" -#: sequencer.c:3881 +#: sequencer.c:4082 #, c-format msgid "Unexpected stash response: '%s'" msgstr "Неочакван резултат при скатаване: „%s“" -#: sequencer.c:3887 +#: sequencer.c:4088 #, c-format msgid "Could not create directory for '%s'" msgstr "Директорията за „%s“ не може да бъде създадена" -#: sequencer.c:3890 +#: sequencer.c:4091 #, c-format msgid "Created autostash: %s\n" msgstr "Автоматично скатано: „%s“\n" -#: sequencer.c:3894 +#: sequencer.c:4095 msgid "could not reset --hard" msgstr "неуспешно изпълнение на „git reset --hard“" -#: sequencer.c:3919 +#: sequencer.c:4120 #, c-format msgid "Applied autostash.\n" msgstr "Автоматично скатаното е приложено.\n" -#: sequencer.c:3931 +#: sequencer.c:4132 #, c-format msgid "cannot store %s" msgstr "„%s“ не може да бъде запазен" -#: sequencer.c:3934 +#: sequencer.c:4135 #, c-format msgid "" "%s\n" @@ -8417,33 +8515,33 @@ msgid "" "You can run \"git stash pop\" or \"git stash drop\" at any time.\n" msgstr "" "%s\n" -"Промените ви са надеждно скатани. Можете да пробвате да ги приложите чрез\n" +"Промените ви са надеждно скатани. Може да пробвате да ги приложите чрез\n" "„git stash pop“ или да ги изхвърлите чрез „git stash drop“, когато " "поискате.\n" -#: sequencer.c:3939 +#: sequencer.c:4140 msgid "Applying autostash resulted in conflicts." msgstr "Конфликти при прилагането на автоматично скатаното." -#: sequencer.c:3940 +#: sequencer.c:4141 msgid "Autostash exists; creating a new stash entry." msgstr "Вече има запис за автоматично скатано, затова се създава нов запис." -#: sequencer.c:4033 git-rebase--preserve-merges.sh:769 +#: sequencer.c:4234 git-rebase--preserve-merges.sh:769 msgid "could not detach HEAD" msgstr "указателят „HEAD“ не може да се отдели" -#: sequencer.c:4048 +#: sequencer.c:4249 #, c-format msgid "Stopped at HEAD\n" msgstr "Бе спряно при „HEAD“\n" -#: sequencer.c:4050 +#: sequencer.c:4251 #, c-format msgid "Stopped at %s\n" msgstr "Бе спряно при „%s“\n" -#: sequencer.c:4058 +#: sequencer.c:4259 #, c-format msgid "" "Could not execute the todo command\n" @@ -8466,58 +8564,58 @@ msgstr "" " git rebase --edit-todo\n" " git rebase --continue\n" -#: sequencer.c:4104 +#: sequencer.c:4305 #, c-format msgid "Rebasing (%d/%d)%s" msgstr "Пребазиране (%d/%d)%s" -#: sequencer.c:4149 +#: sequencer.c:4351 #, c-format msgid "Stopped at %s... %.*s\n" msgstr "Спиране при „%s“… %.*s\n" -#: sequencer.c:4220 +#: sequencer.c:4422 #, c-format msgid "unknown command %d" msgstr "непозната команда %d" -#: sequencer.c:4279 +#: sequencer.c:4481 msgid "could not read orig-head" msgstr "указателят за „orig-head“ не може да се прочете" -#: sequencer.c:4284 +#: sequencer.c:4486 msgid "could not read 'onto'" msgstr "указателят за „onto“ не може да се прочете" -#: sequencer.c:4298 +#: sequencer.c:4500 #, c-format msgid "could not update HEAD to %s" msgstr "„HEAD“ не може да бъде обновен до „%s“" -#: sequencer.c:4358 +#: sequencer.c:4560 #, c-format msgid "Successfully rebased and updated %s.\n" msgstr "Успешно пребазиране и обновяване на „%s“.\n" -#: sequencer.c:4391 +#: sequencer.c:4612 msgid "cannot rebase: You have unstaged changes." msgstr "не може да пребазирате, защото има промени, които не са в индекса." -#: sequencer.c:4400 +#: sequencer.c:4621 msgid "cannot amend non-existing commit" msgstr "несъществуващо подаване не може да се поправи" -#: sequencer.c:4402 +#: sequencer.c:4623 #, c-format msgid "invalid file: '%s'" msgstr "неправилен файл: „%s“" -#: sequencer.c:4404 +#: sequencer.c:4625 #, c-format msgid "invalid contents: '%s'" msgstr "неправилно съдържание: „%s“" -#: sequencer.c:4407 +#: sequencer.c:4628 msgid "" "\n" "You have uncommitted changes in your working tree. Please, commit them\n" @@ -8527,50 +8625,50 @@ msgstr "" "В работното дърво има неподадени промени. Първо ги подайте, а след това\n" "отново изпълнете „git rebase --continue“." -#: sequencer.c:4443 sequencer.c:4482 +#: sequencer.c:4664 sequencer.c:4703 #, c-format msgid "could not write file: '%s'" msgstr "файлът „%s“ не може да бъде записан" -#: sequencer.c:4498 +#: sequencer.c:4719 msgid "could not remove CHERRY_PICK_HEAD" msgstr "указателят „CHERRY_PICK_HEAD“ не може да бъде изтрит" -#: sequencer.c:4505 +#: sequencer.c:4726 msgid "could not commit staged changes." -msgstr "промените в индекса не могат да бъдат подадени." +msgstr "промените в индекса не може да бъдат подадени." -#: sequencer.c:4621 +#: sequencer.c:4846 #, c-format msgid "%s: can't cherry-pick a %s" msgstr "%s: не може да се отбере „%s“" -#: sequencer.c:4625 +#: sequencer.c:4850 #, c-format msgid "%s: bad revision" msgstr "%s: неправилна версия" -#: sequencer.c:4660 +#: sequencer.c:4885 msgid "can't revert as initial commit" msgstr "първоначалното подаване не може да бъде отменено" -#: sequencer.c:5137 +#: sequencer.c:5362 msgid "make_script: unhandled options" msgstr "make_script: неподдържани опции" -#: sequencer.c:5140 +#: sequencer.c:5365 msgid "make_script: error preparing revisions" msgstr "make_script: грешка при подготовката на версии" -#: sequencer.c:5382 sequencer.c:5399 +#: sequencer.c:5615 sequencer.c:5632 msgid "nothing to do" msgstr "няма какво да се прави" -#: sequencer.c:5418 +#: sequencer.c:5651 msgid "could not skip unnecessary pick commands" msgstr "излишните команди за отбиране не бяха прескочени" -#: sequencer.c:5512 +#: sequencer.c:5751 msgid "the script was already rearranged." msgstr "скриптът вече е преподреден." @@ -8723,7 +8821,7 @@ msgstr "" "Git работи в рамките на една файлова система, защото променливата на средата " "„GIT_DISCOVERY_ACROSS_FILESYSTEM“ не е зададена." -#: setup.c:1362 +#: setup.c:1370 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -8733,56 +8831,69 @@ msgstr "" "(0%.3o).\n" "Собственикът на файла трябва да има права за писане и четене." -#: setup.c:1409 +#: setup.c:1417 msgid "open /dev/null or dup failed" msgstr "неуспешно изпълнение на „open“ или „dup“ върху „/dev/null“" -#: setup.c:1424 +#: setup.c:1432 msgid "fork failed" msgstr "неуспешно създаване на процес чрез „fork“" -#: setup.c:1429 +#: setup.c:1437 t/helper/test-simple-ipc.c:285 msgid "setsid failed" msgstr "неуспешно изпълнение на „setsid“" +#: sparse-index.c:151 +msgid "attempting to use sparse-index without cone mode" +msgstr "опит за ползване на частичен индекс без пътеводен режим" + +#: sparse-index.c:156 +msgid "unable to update cache-tree, staying full" +msgstr "дървото на кеша не може да бъде обновено и остава пълно" + +#: sparse-index.c:239 +#, c-format +msgid "index entry is a directory, but not sparse (%08x)" +msgstr "обектът в индекса е директория, но не частично изтеглена (%08x)" + #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:848 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:850 +#: strbuf.c:852 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:858 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:860 +#: strbuf.c:862 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:867 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:869 +#: strbuf.c:871 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:875 +#: strbuf.c:877 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8790,20 +8901,20 @@ msgstr[0] "%u байт" msgstr[1] "%u байта" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:877 +#: strbuf.c:879 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u байт/сек." msgstr[1] "%u байта/сек." -#: strbuf.c:1166 wrapper.c:199 wrapper.c:369 builtin/am.c:719 +#: strbuf.c:1168 wrapper.c:199 wrapper.c:369 builtin/am.c:737 #: builtin/rebase.c:866 #, c-format msgid "could not open '%s' for writing" msgstr "„%s“ не може да бъде отворен за запис" -#: strbuf.c:1175 +#: strbuf.c:1177 #, c-format msgid "could not edit '%s'" msgstr "„%s“ не може да се редактира" @@ -8837,7 +8948,7 @@ msgstr "Записът „%s“ във файла „.gitmodules“ не мож #: submodule.c:114 submodule.c:143 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first" msgstr "" -"Неслетите файлове „.gitmodules“ не могат да бъдат променяни. Първо " +"Неслетите файлове „.gitmodules“ не може да бъдат променяни. Първо " "коригирайте конфликтите" #: submodule.c:118 submodule.c:147 @@ -8854,22 +8965,22 @@ msgstr "Записът „%s“ във файла „.gitmodules“ не мож msgid "staging updated .gitmodules failed" msgstr "неуспешно добавяне на променения файл „.gitmodules“ в индекса" -#: submodule.c:327 +#: submodule.c:328 #, c-format msgid "in unpopulated submodule '%s'" msgstr "в неподготвения подмодул „%s“" -#: submodule.c:358 +#: submodule.c:359 #, c-format msgid "Pathspec '%s' is in submodule '%.*s'" msgstr "Пътят „%s“ е в подмодула „%.*s“" -#: submodule.c:435 +#: submodule.c:436 #, c-format msgid "bad --ignore-submodules argument: %s" msgstr "неправилен аргумент за „--ignore-submodules“: „%s“" -#: submodule.c:817 +#: submodule.c:818 #, c-format msgid "" "Submodule in commit %s at path: '%s' collides with a submodule named the " @@ -8878,12 +8989,12 @@ msgstr "" "Подмодулът при подаване %s на пътя „%s“ е различен от другия модул със " "същото име, затова първият се прескача." -#: submodule.c:920 +#: submodule.c:921 #, c-format msgid "submodule entry '%s' (%s) is a %s, not a commit" msgstr "записът за подмодула „%s“ (%s) е %s, а не подаване!" -#: submodule.c:1005 +#: submodule.c:1006 #, c-format msgid "" "Could not run 'git rev-list <commits> --not --remotes -n 1' command in " @@ -8892,36 +9003,36 @@ msgstr "" "Командата „git rev-list ПОДАВАНИЯ --not --remotes -n 1“ не може да се " "изпълни в подмодула „%s“" -#: submodule.c:1128 +#: submodule.c:1129 #, c-format msgid "process for submodule '%s' failed" msgstr "процесът за подмодула „%s“ завърши неуспешно" -#: submodule.c:1157 builtin/branch.c:689 builtin/submodule--helper.c:2469 +#: submodule.c:1158 builtin/branch.c:691 builtin/submodule--helper.c:2470 msgid "Failed to resolve HEAD as a valid ref." msgstr "Не може да се открие към какво сочи указателят „HEAD“" -#: submodule.c:1168 +#: submodule.c:1169 #, c-format msgid "Pushing submodule '%s'\n" msgstr "Изтласкване на подмодула „%s“\n" -#: submodule.c:1171 +#: submodule.c:1172 #, c-format msgid "Unable to push submodule '%s'\n" msgstr "Подмодулът „%s“ не може да бъде изтласкан\n" -#: submodule.c:1463 +#: submodule.c:1464 #, c-format msgid "Fetching submodule %s%s\n" msgstr "Доставяне на подмодула „%s%s“\n" -#: submodule.c:1497 +#: submodule.c:1498 #, c-format msgid "Could not access submodule '%s'\n" msgstr "Подмодулът „%s“ не може да бъде достъпен\n" -#: submodule.c:1652 +#: submodule.c:1653 #, c-format msgid "" "Errors during submodule fetch:\n" @@ -8930,63 +9041,63 @@ msgstr "" "Грешки при доставяне на подмодул:\n" "%s" -#: submodule.c:1677 +#: submodule.c:1678 #, c-format msgid "'%s' not recognized as a git repository" msgstr "„%s“ не е хранилище на git" -#: submodule.c:1694 +#: submodule.c:1695 #, c-format msgid "Could not run 'git status --porcelain=2' in submodule %s" msgstr "" "Командата „git status --porcelain=2“ не може да се изпълни в подмодула „%s“" -#: submodule.c:1735 +#: submodule.c:1736 #, c-format msgid "'git status --porcelain=2' failed in submodule %s" msgstr "" "командата „git status --porcelain=2“ не може да се изпълни в подмодула „%s“" -#: submodule.c:1810 +#: submodule.c:1811 #, c-format msgid "could not start 'git status' in submodule '%s'" msgstr "командата „git status“ не може да се изпълни в подмодула „%s“" -#: submodule.c:1823 +#: submodule.c:1824 #, c-format msgid "could not run 'git status' in submodule '%s'" msgstr "командата „git status“ не може да се изпълни в подмодула „%s“" -#: submodule.c:1838 +#: submodule.c:1839 #, c-format msgid "Could not unset core.worktree setting in submodule '%s'" msgstr "Настройката „core.worktree“ не може да се изтрие в подмодула „%s“" -#: submodule.c:1865 submodule.c:2175 +#: submodule.c:1866 submodule.c:2176 #, c-format msgid "could not recurse into submodule '%s'" msgstr "неуспешна обработка на поддиректориите в подмодула „%s“" -#: submodule.c:1886 +#: submodule.c:1887 msgid "could not reset submodule index" msgstr "неуспешно зануляване на индекса на подмодула" -#: submodule.c:1928 +#: submodule.c:1929 #, c-format msgid "submodule '%s' has dirty index" msgstr "индексът на подмодула „%s“ не е чист" -#: submodule.c:1980 +#: submodule.c:1981 #, c-format msgid "Submodule '%s' could not be updated." msgstr "Подмодулът „%s“ не може да се обнови." -#: submodule.c:2048 +#: submodule.c:2049 #, c-format msgid "submodule git dir '%s' is inside git dir '%.*s'" msgstr "„%s“ (директория на подмодул) е в директорията на git: „%.*s“" -#: submodule.c:2069 +#: submodule.c:2070 #, c-format msgid "" "relocate_gitdir for submodule '%s' with more than one worktree not supported" @@ -8994,17 +9105,17 @@ msgstr "" "не се поддържа „relocate_gitdir“ за подмодула „%s“, който има повече от едно " "работно дърво" -#: submodule.c:2081 submodule.c:2140 +#: submodule.c:2082 submodule.c:2141 #, c-format msgid "could not lookup name for submodule '%s'" msgstr "името на подмодула „%s“ не може да бъде намерено" -#: submodule.c:2085 +#: submodule.c:2086 #, c-format msgid "refusing to move '%s' into an existing git dir" msgstr "„%s“ не може да се премести в съществуваща директория на git" -#: submodule.c:2092 +#: submodule.c:2093 #, c-format msgid "" "Migrating git directory of '%s%s' from\n" @@ -9015,65 +9126,71 @@ msgstr "" "„%s“ към\n" "„%s“\n" -#: submodule.c:2220 +#: submodule.c:2221 msgid "could not start ls-files in .." msgstr "„ls-stat“ не може да се стартира в „..“" -#: submodule.c:2260 +#: submodule.c:2261 #, c-format msgid "ls-tree returned unexpected return code %d" msgstr "„ls-tree“ завърши с неочакван изходен код: %d" -#: trailer.c:236 +#: symlinks.c:244 +#, c-format +msgid "failed to lstat '%s'" +msgstr "не може да бъде получена информация чрез „lstat“ за „%s“" + +#: trailer.c:244 #, c-format msgid "running trailer command '%s' failed" msgstr "неуспешно изпълнение на завършващата команда „%s“" -#: trailer.c:483 trailer.c:488 trailer.c:493 trailer.c:547 trailer.c:551 -#: trailer.c:555 +#: trailer.c:493 trailer.c:498 trailer.c:503 trailer.c:562 trailer.c:566 +#: trailer.c:570 #, c-format msgid "unknown value '%s' for key '%s'" msgstr "непозната стойност „%s“ за настройката „%s“" -#: trailer.c:537 trailer.c:542 builtin/remote.c:299 builtin/remote.c:324 +#: trailer.c:547 trailer.c:552 trailer.c:557 builtin/remote.c:299 +#: builtin/remote.c:324 #, c-format msgid "more than one %s" msgstr "стойността „%s“ се повтаря в настройките" -#: trailer.c:728 +#: trailer.c:743 #, c-format msgid "empty trailer token in trailer '%.*s'" msgstr "празна завършваща лексема в епилога „%.*s“" -#: trailer.c:748 +#: trailer.c:763 #, c-format msgid "could not read input file '%s'" msgstr "входният файл „%s“ не може да бъде прочетен" -#: trailer.c:751 builtin/mktag.c:91 +#: trailer.c:766 builtin/mktag.c:88 msgid "could not read from stdin" msgstr "от стандартния вход не може да се чете" -#: trailer.c:1009 wrapper.c:676 +#: trailer.c:1024 wrapper.c:676 #, c-format msgid "could not stat %s" msgstr "Не може да се получи информация чрез „stat“ за „%s“" -#: trailer.c:1011 +#: trailer.c:1026 #, c-format msgid "file %s is not a regular file" msgstr "„%s“ не е обикновен файл" -#: trailer.c:1013 +#: trailer.c:1028 #, c-format msgid "file %s is not writable by user" msgstr "„%s“: няма права за записване на файла" -#: trailer.c:1025 +#: trailer.c:1040 msgid "could not open temporary file" msgstr "временният файл не може да се отвори" -#: trailer.c:1065 +#: trailer.c:1080 #, c-format msgid "could not rename temporary file to %s" msgstr "временният файл не може да се преименува на „%s“" @@ -9126,7 +9243,7 @@ msgstr "неуспешно изпълнение на бързо внасяне" msgid "error while running fast-import" msgstr "грешка при изпълнението на бързо внасяне" -#: transport-helper.c:549 transport-helper.c:1237 +#: transport-helper.c:549 transport-helper.c:1247 #, c-format msgid "could not read ref %s" msgstr "указателят „%s“ не може да се прочете" @@ -9144,7 +9261,7 @@ msgstr "протоколът не поддържа задаването на п msgid "invalid remote service path" msgstr "неправилен път на отдалечената услуга" -#: transport-helper.c:661 transport.c:1447 +#: transport-helper.c:661 transport.c:1471 msgid "operation not supported by protocol" msgstr "опцията не се поддържа от протокола" @@ -9153,73 +9270,77 @@ msgstr "опцията не се поддържа от протокола" msgid "can't connect to subservice %s" msgstr "неуспешно свързване към подуслугата „%s“" -#: transport-helper.c:745 +#: transport-helper.c:693 transport.c:397 +msgid "--negotiate-only requires protocol v2" +msgstr "опцията „--negotiate-only“ изисква версия 2 на протокола" + +#: transport-helper.c:755 msgid "'option' without a matching 'ok/error' directive" msgstr "опция без съответстваща директива за успех или грешка" -#: transport-helper.c:788 +#: transport-helper.c:798 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "" "очаква се или успех, или грешка, но насрещната помощна програма върна „%s“" -#: transport-helper.c:845 +#: transport-helper.c:855 #, c-format msgid "helper reported unexpected status of %s" msgstr "насрещната помощна програма завърши с неочакван изходен код: „%s“" -#: transport-helper.c:928 +#: transport-helper.c:938 #, c-format msgid "helper %s does not support dry-run" msgstr "насрещната помощна програма „%s“ не поддържа проби „dry-run“" -#: transport-helper.c:931 +#: transport-helper.c:941 #, c-format msgid "helper %s does not support --signed" msgstr "насрещната помощна програма „%s“ не поддържа опцията „--signed“" -#: transport-helper.c:934 +#: transport-helper.c:944 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "" "насрещната помощна програма „%s“ не поддържа опцията „--signed=if-asked“" -#: transport-helper.c:939 +#: transport-helper.c:949 #, c-format msgid "helper %s does not support --atomic" msgstr "насрещната помощна програма „%s“ не поддържа опцията „--atomic“" -#: transport-helper.c:943 +#: transport-helper.c:953 #, c-format msgid "helper %s does not support --%s" msgstr "насрещната помощна програма „%s“ не поддържа опцията „%s“" -#: transport-helper.c:950 +#: transport-helper.c:960 #, c-format msgid "helper %s does not support 'push-option'" msgstr "насрещната помощна програма „%s“ не поддържа опции за изтласкване" -#: transport-helper.c:1050 +#: transport-helper.c:1060 msgid "remote-helper doesn't support push; refspec needed" msgstr "" "насрещната помощна програма не поддържа изтласкване. Необходимо е " "изброяване на указателите" -#: transport-helper.c:1055 +#: transport-helper.c:1065 #, c-format msgid "helper %s does not support 'force'" msgstr "" "насрещната помощна програма не поддържа „%s“ поддържа опцията „--force“" -#: transport-helper.c:1102 +#: transport-helper.c:1112 msgid "couldn't run fast-export" msgstr "не може да се извърши бързо изнасяне" -#: transport-helper.c:1107 +#: transport-helper.c:1117 msgid "error while running fast-export" msgstr "грешка при изпълнението на командата за бързо изнасяне" -#: transport-helper.c:1132 +#: transport-helper.c:1142 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" @@ -9228,52 +9349,52 @@ msgstr "" "Няма общи указатели, не са указани никакви указатели —\n" "нищо няма да бъде направено. Пробвайте да укажете клон.\n" -#: transport-helper.c:1214 +#: transport-helper.c:1224 #, c-format msgid "unsupported object format '%s'" msgstr "обект с неподдържан формат „%s“" -#: transport-helper.c:1223 +#: transport-helper.c:1233 #, c-format msgid "malformed response in ref list: %s" msgstr "неправилен отговор в списъка с указатели: „%s“" -#: transport-helper.c:1375 +#: transport-helper.c:1385 #, c-format msgid "read(%s) failed" msgstr "неуспешно четене на „%s“" -#: transport-helper.c:1402 +#: transport-helper.c:1412 #, c-format msgid "write(%s) failed" msgstr "неуспешен запис в „%s“" -#: transport-helper.c:1451 +#: transport-helper.c:1461 #, c-format msgid "%s thread failed" msgstr "неуспешно изпълнение на нишката „%s“" -#: transport-helper.c:1455 +#: transport-helper.c:1465 #, c-format msgid "%s thread failed to join: %s" msgstr "завършването на нишката „%s“ не може да се изчака: „%s“" -#: transport-helper.c:1474 transport-helper.c:1478 +#: transport-helper.c:1484 transport-helper.c:1488 #, c-format msgid "can't start thread for copying data: %s" msgstr "неуспешно стартиране на нишка за копиране на данните: „%s“" -#: transport-helper.c:1515 +#: transport-helper.c:1525 #, c-format msgid "%s process failed to wait" msgstr "процесът на „%s“ не успя да изчака чрез „waitpid“" -#: transport-helper.c:1519 +#: transport-helper.c:1529 #, c-format msgid "%s process failed" msgstr "неуспешно изпълнение на „%s“" -#: transport-helper.c:1537 transport-helper.c:1546 +#: transport-helper.c:1547 transport-helper.c:1556 msgid "can't start thread for copying data" msgstr "неуспешно стартиране на нишка за копиране на данните" @@ -9292,38 +9413,42 @@ msgstr "пратката на git „%s“ не може да бъде проч msgid "transport: invalid depth option '%s'" msgstr "transport: неправилна опция за дълбочина: %s" -#: transport.c:269 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "" "За повече информация вижте раздела „protocol.version“ в „git help config“" -#: transport.c:270 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "опциите на сървъра изискват поне версия 2 на протокола" -#: transport.c:727 +#: transport.c:400 +msgid "server does not support wait-for-done" +msgstr "сървърът не поддържа „wait-for-done“" + +#: transport.c:751 msgid "could not parse transport.color.* config" msgstr "стойността на настройката „transport.color.*“ не може да се разпознае" -#: transport.c:802 +#: transport.c:826 msgid "support for protocol v2 not implemented yet" msgstr "протокол версия 2 все още не се поддържа" -#: transport.c:936 +#: transport.c:960 #, c-format msgid "unknown value for config '%s': %s" msgstr "непозната стойност за настройката „%s“: „%s“" -#: transport.c:1002 +#: transport.c:1026 #, c-format msgid "transport '%s' not allowed" msgstr "преносът по „%s“ не е позволен" -#: transport.c:1055 +#: transport.c:1079 msgid "git-over-rsync is no longer supported" msgstr "командата „git-over-rsync“ вече не се поддържа" -#: transport.c:1157 +#: transport.c:1181 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -9332,7 +9457,7 @@ msgstr "" "Следните пътища за подмодули съдържат промени,\n" "които липсват от всички отдалечени хранилища:\n" -#: transport.c:1161 +#: transport.c:1185 #, c-format msgid "" "\n" @@ -9357,11 +9482,11 @@ msgstr "" " git push\n" "\n" -#: transport.c:1169 +#: transport.c:1193 msgid "Aborting." msgstr "Преустановяване на действието." -#: transport.c:1316 +#: transport.c:1340 msgid "failed to push all needed submodules" msgstr "неуспешно изтласкване на всички необходими подмодули" @@ -9381,7 +9506,7 @@ msgstr "празно име на файл в запис в дърво" msgid "too-short tree file" msgstr "прекалено кратък файл-дърво" -#: unpack-trees.c:113 +#: unpack-trees.c:115 #, c-format msgid "" "Your local changes to the following files would be overwritten by checkout:\n" @@ -9390,7 +9515,7 @@ msgstr "" "Изтеглянето ще презапише локалните промени на тези файлове:\n" "%%sПодайте или скатайте промените, за да преминете към нов клон." -#: unpack-trees.c:115 +#: unpack-trees.c:117 #, c-format msgid "" "Your local changes to the following files would be overwritten by checkout:\n" @@ -9399,7 +9524,7 @@ msgstr "" "Изтеглянето ще презапише локалните промени на тези файлове:\n" "%%s" -#: unpack-trees.c:118 +#: unpack-trees.c:120 #, c-format msgid "" "Your local changes to the following files would be overwritten by merge:\n" @@ -9408,7 +9533,7 @@ msgstr "" "Сливането ще презапише локалните промени на тези файлове:\n" "%%sПодайте или скатайте промените, за да слеете." -#: unpack-trees.c:120 +#: unpack-trees.c:122 #, c-format msgid "" "Your local changes to the following files would be overwritten by merge:\n" @@ -9417,7 +9542,7 @@ msgstr "" "Сливането ще презапише локалните промени на тези файлове:\n" "%%s" -#: unpack-trees.c:123 +#: unpack-trees.c:125 #, c-format msgid "" "Your local changes to the following files would be overwritten by %s:\n" @@ -9426,7 +9551,7 @@ msgstr "" "„%s“ ще презапише локалните промени на тези файлове:\n" "%%sПодайте или скатайте промените, за да извършите „%s“." -#: unpack-trees.c:125 +#: unpack-trees.c:127 #, c-format msgid "" "Your local changes to the following files would be overwritten by %s:\n" @@ -9435,7 +9560,7 @@ msgstr "" "„%s“ ще презапише локалните промени на тези файлове:\n" "%%s" -#: unpack-trees.c:130 +#: unpack-trees.c:132 #, c-format msgid "" "Updating the following directories would lose untracked files in them:\n" @@ -9444,7 +9569,7 @@ msgstr "" "Обновяването на следните директории ще изтрие неследените файлове в тях:\n" "%s" -#: unpack-trees.c:134 +#: unpack-trees.c:136 #, c-format msgid "" "The following untracked working tree files would be removed by checkout:\n" @@ -9453,7 +9578,7 @@ msgstr "" "Изтеглянето ще изтрие тези неследени файлове в работното дърво:\n" "%%sПреместете ги или ги изтрийте, за да преминете на друг клон." -#: unpack-trees.c:136 +#: unpack-trees.c:138 #, c-format msgid "" "The following untracked working tree files would be removed by checkout:\n" @@ -9462,7 +9587,7 @@ msgstr "" "Изтеглянето ще изтрие тези неследени файлове в работното дърво:\n" "%%s" -#: unpack-trees.c:139 +#: unpack-trees.c:141 #, c-format msgid "" "The following untracked working tree files would be removed by merge:\n" @@ -9471,7 +9596,7 @@ msgstr "" "Сливането ще изтрие тези неследени файлове в работното дърво:\n" "%%sПреместете ги или ги изтрийте, за да слеете." -#: unpack-trees.c:141 +#: unpack-trees.c:143 #, c-format msgid "" "The following untracked working tree files would be removed by merge:\n" @@ -9480,7 +9605,7 @@ msgstr "" "Сливането ще изтрие тези неследени файлове в работното дърво:\n" "%%s" -#: unpack-trees.c:144 +#: unpack-trees.c:146 #, c-format msgid "" "The following untracked working tree files would be removed by %s:\n" @@ -9489,7 +9614,7 @@ msgstr "" "„%s“ ще изтрие тези неследени файлове в работното дърво:\n" "%%sПреместете ги или ги изтрийте, за да извършите „%s“." -#: unpack-trees.c:146 +#: unpack-trees.c:148 #, c-format msgid "" "The following untracked working tree files would be removed by %s:\n" @@ -9498,7 +9623,7 @@ msgstr "" "„%s“ ще изтрие тези неследени файлове в работното дърво:\n" "%%s" -#: unpack-trees.c:152 +#: unpack-trees.c:154 #, c-format msgid "" "The following untracked working tree files would be overwritten by " @@ -9508,7 +9633,7 @@ msgstr "" "Изтеглянето ще презапише тези неследени файлове в работното дърво:\n" "%%sПреместете ги или ги изтрийте, за да смените клон." -#: unpack-trees.c:154 +#: unpack-trees.c:156 #, c-format msgid "" "The following untracked working tree files would be overwritten by " @@ -9518,7 +9643,7 @@ msgstr "" "Изтеглянето ще презапише тези неследени файлове в работното дърво:\n" "%%s" -#: unpack-trees.c:157 +#: unpack-trees.c:159 #, c-format msgid "" "The following untracked working tree files would be overwritten by merge:\n" @@ -9527,7 +9652,7 @@ msgstr "" "Сливането ще презапише тези неследени файлове в работното дърво:\n" "%%sПреместете ги или ги изтрийте, за да слеете." -#: unpack-trees.c:159 +#: unpack-trees.c:161 #, c-format msgid "" "The following untracked working tree files would be overwritten by merge:\n" @@ -9536,7 +9661,7 @@ msgstr "" "Сливането ще презапише тези неследени файлове в работното дърво:\n" "%%s" -#: unpack-trees.c:162 +#: unpack-trees.c:164 #, c-format msgid "" "The following untracked working tree files would be overwritten by %s:\n" @@ -9545,7 +9670,7 @@ msgstr "" "„%s“ ще презапише тези неследени файлове в работното дърво:\n" "%%sПреместете ги или ги изтрийте, за да извършите „%s“." -#: unpack-trees.c:164 +#: unpack-trees.c:166 #, c-format msgid "" "The following untracked working tree files would be overwritten by %s:\n" @@ -9554,12 +9679,12 @@ msgstr "" "„%s“ ще презапише тези неследени файлове в работното дърво:\n" "%%s" -#: unpack-trees.c:172 +#: unpack-trees.c:174 #, c-format msgid "Entry '%s' overlaps with '%s'. Cannot bind." msgstr "Записът за „%s“ съвпада с този за „%s“. Не може да се присвои." -#: unpack-trees.c:175 +#: unpack-trees.c:177 #, c-format msgid "" "Cannot update submodule:\n" @@ -9568,7 +9693,7 @@ msgstr "" "Подмодулът не може да бъде обновен:\n" "„%s“" -#: unpack-trees.c:178 +#: unpack-trees.c:180 #, c-format msgid "" "The following paths are not up to date and were left despite sparse " @@ -9579,7 +9704,7 @@ msgstr "" "изтегляне:\n" "%s" -#: unpack-trees.c:180 +#: unpack-trees.c:182 #, c-format msgid "" "The following paths are unmerged and were left despite sparse patterns:\n" @@ -9589,7 +9714,7 @@ msgstr "" "изтегляне:\n" "%s" -#: unpack-trees.c:182 +#: unpack-trees.c:184 #, c-format msgid "" "The following paths were already present and thus not updated despite sparse " @@ -9600,12 +9725,12 @@ msgstr "" "частично изтегляне:\n" "%s" -#: unpack-trees.c:262 +#: unpack-trees.c:264 #, c-format msgid "Aborting\n" msgstr "Преустановяване на действието\n" -#: unpack-trees.c:289 +#: unpack-trees.c:291 #, c-format msgid "" "After fixing the above paths, you may want to run `git sparse-checkout " @@ -9616,11 +9741,11 @@ msgstr "" "\n" " git sparse-checkout reapply\n" -#: unpack-trees.c:350 +#: unpack-trees.c:352 msgid "Updating files" msgstr "Обновяване на файлове" -#: unpack-trees.c:382 +#: unpack-trees.c:384 msgid "" "the following paths have collided (e.g. case-sensitive paths\n" "on a case-insensitive filesystem) and only one from the same\n" @@ -9630,11 +9755,17 @@ msgstr "" "във файлови системи, които не различават главни от малки букви)\n" "и само един от участниците в конфликта е в работното дърво:\n" -#: unpack-trees.c:1498 +#: unpack-trees.c:1519 msgid "Updating index flags" msgstr "Обновяване на флаговете на индекса" -#: upload-pack.c:1543 +#: unpack-trees.c:2608 +#, c-format +msgid "worktree and untracked commit have duplicate entries: %s" +msgstr "" +"работното дърво и неследеното подаване съдържат повтарящи се обекти: %s" + +#: upload-pack.c:1548 msgid "expected flush after fetch arguments" msgstr "след аргументите на „fetch“ се очаква изчистване на буферите" @@ -9653,7 +9784,7 @@ msgstr "не е указана машина, а схемата не е „file: #: urlmatch.c:232 msgid "a 'file:' URL may not have a port number" -msgstr "при схема „file:“ не можете да указвате номер на порт" +msgstr "при схема „file:“ не може да указвате номер на порт" #: urlmatch.c:247 msgid "invalid characters in host name" @@ -9671,7 +9802,7 @@ msgstr "неправилна част от пътя „..“" msgid "Fetching objects" msgstr "Доставяне на обектите" -#: worktree.c:238 builtin/am.c:2103 +#: worktree.c:238 builtin/am.c:2151 #, c-format msgid "failed to read '%s'" msgstr "„%s“ не може да бъде прочетен" @@ -9821,11 +9952,11 @@ msgid " (use \"git rm <file>...\" to mark resolution)" msgstr "" " (използвайте „git rm ФАЙЛ…“, за да укажете разрешаването на конфликта)" -#: wt-status.c:211 wt-status.c:1072 +#: wt-status.c:211 wt-status.c:1075 msgid "Changes to be committed:" msgstr "Промени, които ще бъдат подадени:" -#: wt-status.c:234 wt-status.c:1081 +#: wt-status.c:234 wt-status.c:1084 msgid "Changes not staged for commit:" msgstr "Промени, които не са в индекса за подаване:" @@ -9930,22 +10061,22 @@ msgstr "променено съдържание, " msgid "untracked content, " msgstr "неследено съдържание, " -#: wt-status.c:905 +#: wt-status.c:908 #, 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:936 +#: wt-status.c:939 msgid "Submodules changed but not updated:" msgstr "Подмодулите са променени, но не са обновени:" -#: wt-status.c:938 +#: wt-status.c:941 msgid "Submodule changes to be committed:" msgstr "Промени в подмодулите за подаване:" -#: wt-status.c:1020 +#: wt-status.c:1023 msgid "" "Do not modify or remove the line above.\n" "Everything below it will be ignored." @@ -9953,7 +10084,7 @@ msgstr "" "Не променяйте и не изтривайте горния ред.\n" "Всичко отдолу ще бъде изтрито." -#: wt-status.c:1112 +#: wt-status.c:1115 #, c-format msgid "" "\n" @@ -9964,271 +10095,271 @@ msgstr "" "Изчисляването на броя различаващи се подавания отне %.2f сек.\n" "За да избегнете това, ползвайте „--no-ahead-behind“.\n" -#: wt-status.c:1142 +#: wt-status.c:1145 msgid "You have unmerged paths." msgstr "Някои пътища не са слети." -#: wt-status.c:1145 +#: wt-status.c:1148 msgid " (fix conflicts and run \"git commit\")" msgstr " (коригирайте конфликтите и изпълнете „git commit“)" -#: wt-status.c:1147 +#: wt-status.c:1150 msgid " (use \"git merge --abort\" to abort the merge)" msgstr " (използвайте „git merge --abort“, за да преустановите сливането)" -#: wt-status.c:1151 +#: wt-status.c:1154 msgid "All conflicts fixed but you are still merging." msgstr "Всички конфликти са решени, но продължавате сливането." -#: wt-status.c:1154 +#: wt-status.c:1157 msgid " (use \"git commit\" to conclude merge)" msgstr " (използвайте „git commit“, за да завършите сливането)" -#: wt-status.c:1163 +#: wt-status.c:1166 msgid "You are in the middle of an am session." msgstr "В момента прилагате поредица от кръпки чрез „git am“." -#: wt-status.c:1166 +#: wt-status.c:1169 msgid "The current patch is empty." msgstr "Текущата кръпка е празна." -#: wt-status.c:1170 +#: wt-status.c:1173 msgid " (fix conflicts and then run \"git am --continue\")" msgstr " (коригирайте конфликтите и изпълнете „git am --continue“)" -#: wt-status.c:1172 +#: wt-status.c:1175 msgid " (use \"git am --skip\" to skip this patch)" msgstr " (използвайте „git am --skip“, за да пропуснете тази кръпка)" -#: wt-status.c:1174 +#: wt-status.c:1177 msgid " (use \"git am --abort\" to restore the original branch)" msgstr "" " (използвайте „git am --abort“, за да възстановите първоначалния клон)" -#: wt-status.c:1307 +#: wt-status.c:1310 msgid "git-rebase-todo is missing." msgstr "„git-rebase-todo“ липсва." -#: wt-status.c:1309 +#: wt-status.c:1312 msgid "No commands done." msgstr "Не са изпълнени команди." -#: wt-status.c:1312 +#: wt-status.c:1315 #, 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:1323 +#: wt-status.c:1326 #, c-format msgid " (see more in file %s)" msgstr " (повече информация има във файла „%s“)" -#: wt-status.c:1328 +#: wt-status.c:1331 msgid "No commands remaining." msgstr "Не остават повече команди." -#: wt-status.c:1331 +#: wt-status.c:1334 #, 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:1339 +#: wt-status.c:1342 msgid " (use \"git rebase --edit-todo\" to view and edit)" msgstr "" " (използвайте „git rebase --edit-todo“, за да разгледате и редактирате)" -#: wt-status.c:1351 +#: wt-status.c:1354 #, c-format msgid "You are currently rebasing branch '%s' on '%s'." msgstr "В момента пребазирате клона „%s“ върху „%s“." -#: wt-status.c:1356 +#: wt-status.c:1359 msgid "You are currently rebasing." msgstr "В момента пребазирате." -#: wt-status.c:1369 +#: wt-status.c:1372 msgid " (fix conflicts and then run \"git rebase --continue\")" msgstr " (коригирайте конфликтите и използвайте „git rebase --continue“)" -#: wt-status.c:1371 +#: wt-status.c:1374 msgid " (use \"git rebase --skip\" to skip this patch)" msgstr " (използвайте „git rebase --skip“, за да пропуснете тази кръпка)" -#: wt-status.c:1373 +#: wt-status.c:1376 msgid " (use \"git rebase --abort\" to check out the original branch)" msgstr "" " (използвайте „git rebase --abort“, за да възстановите първоначалния клон)" -#: wt-status.c:1380 +#: wt-status.c:1383 msgid " (all conflicts fixed: run \"git rebase --continue\")" msgstr " (всички конфликти са коригирани: изпълнете „git rebase --continue“)" -#: wt-status.c:1384 +#: wt-status.c:1387 #, c-format msgid "" "You are currently splitting a commit while rebasing branch '%s' on '%s'." msgstr "В момента разделяте подаване докато пребазирате клона „%s“ върху „%s“." -#: wt-status.c:1389 +#: wt-status.c:1392 msgid "You are currently splitting a commit during a rebase." msgstr "В момента разделяте подаване докато пребазирате." -#: wt-status.c:1392 +#: wt-status.c:1395 msgid " (Once your working directory is clean, run \"git rebase --continue\")" msgstr "" " (След като работното ви дърво стане чисто, използвайте „git rebase --" "continue“)" -#: wt-status.c:1396 +#: wt-status.c:1399 #, c-format msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." msgstr "" "В момента редактирате подаване докато пребазирате клона „%s“ върху „%s“." -#: wt-status.c:1401 +#: wt-status.c:1404 msgid "You are currently editing a commit during a rebase." msgstr "В момента редактирате подаване докато пребазирате." -#: wt-status.c:1404 +#: wt-status.c:1407 msgid " (use \"git commit --amend\" to amend the current commit)" msgstr "" " (използвайте „git commit --amend“, за да редактирате текущото подаване)" -#: wt-status.c:1406 +#: wt-status.c:1409 msgid "" " (use \"git rebase --continue\" once you are satisfied with your changes)" msgstr "" " (използвайте „git rebase --continue“, след като завършите промените си)" -#: wt-status.c:1417 +#: wt-status.c:1420 msgid "Cherry-pick currently in progress." msgstr "В момента се извършва отбиране на подавания." -#: wt-status.c:1420 +#: wt-status.c:1423 #, c-format msgid "You are currently cherry-picking commit %s." msgstr "В момента отбирате подаването „%s“." -#: wt-status.c:1427 +#: wt-status.c:1430 msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr " (коригирайте конфликтите и изпълнете „git cherry-pick --continue“)" -#: wt-status.c:1430 +#: wt-status.c:1433 msgid " (run \"git cherry-pick --continue\" to continue)" msgstr " (за да продължите, изпълнете „git cherry-pick --continue“)" -#: wt-status.c:1433 +#: wt-status.c:1436 msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" msgstr "" " (всички конфликти са коригирани, изпълнете „git cherry-pick --continue“)" -#: wt-status.c:1435 +#: wt-status.c:1438 msgid " (use \"git cherry-pick --skip\" to skip this patch)" msgstr " (използвайте „git cherry-pick --skip“, за да пропуснете тази кръпка)" -#: wt-status.c:1437 +#: wt-status.c:1440 msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" msgstr "" " (използвайте „git cherry-pick --abort“, за да отмените всички действия с " "отбиране)" -#: wt-status.c:1447 +#: wt-status.c:1450 msgid "Revert currently in progress." msgstr "В момента тече отмяна на подаване." -#: wt-status.c:1450 +#: wt-status.c:1453 #, c-format msgid "You are currently reverting commit %s." msgstr "В момента отменяте подаване „%s“." -#: wt-status.c:1456 +#: wt-status.c:1459 msgid " (fix conflicts and run \"git revert --continue\")" msgstr " (коригирайте конфликтите и изпълнете „git revert --continue“)" -#: wt-status.c:1459 +#: wt-status.c:1462 msgid " (run \"git revert --continue\" to continue)" msgstr " (за да продължите, изпълнете „git revert --continue“)" -#: wt-status.c:1462 +#: wt-status.c:1465 msgid " (all conflicts fixed: run \"git revert --continue\")" msgstr " (всички конфликти са коригирани, изпълнете „git revert --continue“)" -#: wt-status.c:1464 +#: wt-status.c:1467 msgid " (use \"git revert --skip\" to skip this patch)" msgstr " (използвайте „git revert --skip“, за да пропуснете тази кръпка)" -#: wt-status.c:1466 +#: wt-status.c:1469 msgid " (use \"git revert --abort\" to cancel the revert operation)" msgstr "" " (използвайте „git revert --abort“, за да преустановите отмяната на " "подаване)" -#: wt-status.c:1476 +#: wt-status.c:1479 #, c-format msgid "You are currently bisecting, started from branch '%s'." msgstr "В момента търсите двоично, като сте стартирали от клон „%s“." -#: wt-status.c:1480 +#: wt-status.c:1483 msgid "You are currently bisecting." msgstr "В момента търсите двоично." -#: wt-status.c:1483 +#: wt-status.c:1486 msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" " (използвайте „git bisect reset“, за да се върнете към първоначалното " "състояние и клон)" -#: wt-status.c:1494 +#: wt-status.c:1497 #, c-format msgid "You are in a sparse checkout with %d%% of tracked files present." msgstr "" "Намирате се в частично изтеглено хранилище с %d%% налични, следени файла." -#: wt-status.c:1733 +#: wt-status.c:1736 msgid "On branch " msgstr "На клон " -#: wt-status.c:1740 +#: wt-status.c:1743 msgid "interactive rebase in progress; onto " msgstr "извършвате интерактивно пребазиране върху " -#: wt-status.c:1742 +#: wt-status.c:1745 msgid "rebase in progress; onto " msgstr "извършвате пребазиране върху " -#: wt-status.c:1747 +#: wt-status.c:1750 msgid "HEAD detached at " msgstr "Указателят „HEAD“ не е свързан и е при " -#: wt-status.c:1749 +#: wt-status.c:1752 msgid "HEAD detached from " msgstr "Указателят „HEAD“ не е свързан и е отделѐн от " -#: wt-status.c:1752 +#: wt-status.c:1755 msgid "Not currently on any branch." msgstr "Извън всички клони." -#: wt-status.c:1769 +#: wt-status.c:1772 msgid "Initial commit" msgstr "Първоначално подаване" -#: wt-status.c:1770 +#: wt-status.c:1773 msgid "No commits yet" msgstr "Все още липсват подавания" -#: wt-status.c:1784 +#: wt-status.c:1787 msgid "Untracked files" msgstr "Неследени файлове" -#: wt-status.c:1786 +#: wt-status.c:1789 msgid "Ignored files" msgstr "Игнорирани файлове" -#: wt-status.c:1790 +#: wt-status.c:1793 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -10240,32 +10371,32 @@ msgstr "" "изпълнението, но ще трябва да добавяте новите файлове ръчно.\n" "За повече подробности погледнете „git status help“." -#: wt-status.c:1796 +#: wt-status.c:1799 #, c-format msgid "Untracked files not listed%s" msgstr "Неследените файлове не са изведени%s" -#: wt-status.c:1798 +#: wt-status.c:1801 msgid " (use -u option to show untracked files)" msgstr " (използвайте опцията „-u“, за да изведете неследените файлове)" -#: wt-status.c:1804 +#: wt-status.c:1807 msgid "No changes" msgstr "Няма промени" -#: wt-status.c:1809 +#: wt-status.c:1812 #, 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:1813 +#: wt-status.c:1816 #, c-format msgid "no changes added to commit\n" msgstr "към индекса за подаване не са добавени промени\n" -#: wt-status.c:1817 +#: wt-status.c:1820 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -10274,71 +10405,89 @@ msgstr "" "към индекса за подаване не са добавени промени, но има нови файлове " "(използвайте „git add“, за да започне тяхното следене)\n" -#: wt-status.c:1821 +#: wt-status.c:1824 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "към индекса за подаване не са добавени промени, но има нови файлове\n" -#: wt-status.c:1825 +#: wt-status.c:1828 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "липсват каквито и да е промени (създайте или копирайте файлове и използвайте " "„git add“, за да започне тяхното следене)\n" -#: wt-status.c:1829 wt-status.c:1835 +#: wt-status.c:1832 wt-status.c:1838 #, c-format msgid "nothing to commit\n" msgstr "липсват каквито и да е промени\n" -#: wt-status.c:1832 +#: wt-status.c:1835 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "липсват каквито и да е промени (използвайте опцията „-u“, за да се изведат и " "неследените файлове)\n" -#: wt-status.c:1837 +#: wt-status.c:1840 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "липсват каквито и да е промени, работното дърво е чисто\n" -#: wt-status.c:1942 +#: wt-status.c:1945 msgid "No commits yet on " msgstr "Все още липсват подавания в " -#: wt-status.c:1946 +#: wt-status.c:1949 msgid "HEAD (no branch)" msgstr "HEAD (извън клон)" -#: wt-status.c:1977 +#: wt-status.c:1980 msgid "different" msgstr "различен" -#: wt-status.c:1979 wt-status.c:1987 +#: wt-status.c:1982 wt-status.c:1990 msgid "behind " msgstr "назад с " -#: wt-status.c:1982 wt-status.c:1985 +#: wt-status.c:1985 wt-status.c:1988 msgid "ahead " msgstr "напред с " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2507 +#: wt-status.c:2511 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "не може да извършите „%s“, защото има промени, които не са в индекса." -#: wt-status.c:2513 +#: wt-status.c:2517 msgid "additionally, your index contains uncommitted changes." msgstr "освен това в индекса има неподадени промени." -#: wt-status.c:2515 +#: wt-status.c:2519 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "не може да извършите „%s“, защото в индекса има неподадени промени." -#: compat/precompose_utf8.c:58 builtin/clone.c:457 +#: compat/simple-ipc/ipc-unix-socket.c:178 +msgid "could not send IPC command" +msgstr "командата за комуникация между процеси не може да бъде пратена" + +#: compat/simple-ipc/ipc-unix-socket.c:185 +msgid "could not read IPC response" +msgstr "отговорът за комуникацията между процеси не може да бъде прочетен" + +#: compat/simple-ipc/ipc-unix-socket.c:862 +#, c-format +msgid "could not start accept_thread '%s'" +msgstr "неуспешно изпълнение на „accept_thread“ върху нишката „%s“" + +#: compat/simple-ipc/ipc-unix-socket.c:874 +#, c-format +msgid "could not start worker[0] for '%s'" +msgstr "не може да се стартира нишката worker[0] за „%s“" + +#: compat/precompose_utf8.c:58 builtin/clone.c:461 #, c-format msgid "failed to unlink '%s'" msgstr "неуспешно изтриване на „%s“" @@ -10347,137 +10496,136 @@ msgstr "неуспешно изтриване на „%s“" msgid "git add [<options>] [--] <pathspec>..." msgstr "git add [ОПЦИЯ…] [--] ПЪТ…" -#: builtin/add.c:58 +#: builtin/add.c:61 #, c-format msgid "cannot chmod %cx '%s'" msgstr "правата на „%2$s“ не може да се зададат да са %1$cx" -#: builtin/add.c:96 +#: builtin/add.c:99 #, c-format msgid "unexpected diff status %c" msgstr "неочакван изходен код при генериране на разлика: %c" -#: builtin/add.c:101 builtin/commit.c:285 +#: builtin/add.c:104 builtin/commit.c:297 msgid "updating files failed" msgstr "неуспешно обновяване на файловете" -#: builtin/add.c:111 +#: builtin/add.c:114 #, c-format msgid "remove '%s'\n" msgstr "изтриване на „%s“\n" -#: builtin/add.c:186 +#: builtin/add.c:198 msgid "Unstaged changes after refreshing the index:" msgstr "Промени, които и след обновяването на индекса не са добавени към него:" -#: builtin/add.c:280 builtin/rev-parse.c:991 +#: builtin/add.c:307 builtin/rev-parse.c:991 msgid "Could not read the index" msgstr "Индексът не може да бъде прочетен" -#: builtin/add.c:291 +#: builtin/add.c:318 #, c-format msgid "Could not open '%s' for writing." msgstr "Файлът „%s“ не може да бъде отворен за запис." -#: builtin/add.c:295 +#: builtin/add.c:322 msgid "Could not write patch" msgstr "Кръпката не може да бъде записана" -#: builtin/add.c:298 +#: builtin/add.c:325 msgid "editing patch failed" msgstr "неуспешно редактиране на кръпка" -#: builtin/add.c:301 +#: builtin/add.c:328 #, c-format msgid "Could not stat '%s'" msgstr "Не може да се получи информация чрез „stat“ за файла „%s“" -#: builtin/add.c:303 +#: builtin/add.c:330 msgid "Empty patch. Aborted." msgstr "Празна кръпка, преустановяване на действието." -#: builtin/add.c:308 +#: builtin/add.c:335 #, c-format msgid "Could not apply '%s'" msgstr "Кръпката „%s“ не може да бъде приложена" -#: builtin/add.c:316 +#: builtin/add.c:343 msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "" "Следните пътища ще бъдат игнорирани според някой от файловете „.gitignore“:\n" -#: builtin/add.c:336 builtin/clean.c:904 builtin/fetch.c:169 builtin/mv.c:124 +#: builtin/add.c:363 builtin/clean.c:904 builtin/fetch.c:173 builtin/mv.c:124 #: builtin/prune-packed.c:14 builtin/pull.c:204 builtin/push.c:559 -#: builtin/remote.c:1427 builtin/rm.c:242 builtin/send-pack.c:190 +#: builtin/remote.c:1427 builtin/rm.c:243 builtin/send-pack.c:190 msgid "dry run" msgstr "пробно изпълнение" -#: builtin/add.c:339 +#: builtin/add.c:366 msgid "interactive picking" msgstr "интерактивно отбиране на промени" -#: builtin/add.c:340 builtin/checkout.c:1546 builtin/reset.c:308 +#: builtin/add.c:367 builtin/checkout.c:1567 builtin/reset.c:308 msgid "select hunks interactively" msgstr "интерактивен избор на парчета код" -#: builtin/add.c:341 +#: builtin/add.c:368 msgid "edit current diff and apply" msgstr "редактиране на текущата разлика и прилагане" -#: builtin/add.c:342 +#: builtin/add.c:369 msgid "allow adding otherwise ignored files" msgstr "добавяне и на иначе игнорираните файлове" -#: builtin/add.c:343 +#: builtin/add.c:370 msgid "update tracked files" msgstr "обновяване на следените файлове" -#: builtin/add.c:344 +#: builtin/add.c:371 msgid "renormalize EOL of tracked files (implies -u)" msgstr "уеднаквяване на знаците за край на файл (включва опцията „-u“)" -#: builtin/add.c:345 +#: builtin/add.c:372 msgid "record only the fact that the path will be added later" msgstr "отбелязване само на факта, че пътят ще бъде добавен по-късно" -#: builtin/add.c:346 +#: builtin/add.c:373 msgid "add changes from all tracked and untracked files" msgstr "добавяне на всички промени в следените и неследените файлове" -#: builtin/add.c:349 +#: builtin/add.c:376 msgid "ignore paths removed in the working tree (same as --no-all)" msgstr "" "игнориране на пътищата, които са изтрити от работното дърво (същото като „--" "no-all“)" -#: builtin/add.c:351 +#: builtin/add.c:378 msgid "don't add, only refresh the index" msgstr "без добавяне на нови файлове, само обновяване на индекса" -#: builtin/add.c:352 +#: builtin/add.c:379 msgid "just skip files which cannot be added because of errors" -msgstr "" -"прескачане на файловете, които не могат да бъдат добавени поради грешки" +msgstr "прескачане на файловете, които не може да бъдат добавени поради грешки" -#: builtin/add.c:353 +#: builtin/add.c:380 msgid "check if - even missing - files are ignored in dry run" msgstr "" "проверка, че при пробно изпълнение всички файлове, дори и изтритите, се " "игнорират" -#: builtin/add.c:355 builtin/update-index.c:1004 +#: builtin/add.c:382 builtin/update-index.c:1006 msgid "override the executable bit of the listed files" msgstr "изрично задаване на стойността на флага дали файлът е изпълним" -#: builtin/add.c:357 +#: builtin/add.c:384 msgid "warn when adding an embedded repository" msgstr "предупреждаване при добавяне на вградено хранилище" -#: builtin/add.c:359 +#: builtin/add.c:386 msgid "backend for `git stash -p`" msgstr "реализация на „git stash -p“" -#: builtin/add.c:377 +#: builtin/add.c:404 #, c-format msgid "" "You've added another git repository inside your current repository.\n" @@ -10508,12 +10656,12 @@ msgstr "" "\n" "За повече информация погледнете „git help submodule“." -#: builtin/add.c:405 +#: builtin/add.c:432 #, c-format msgid "adding embedded git repository: %s" msgstr "добавяне на вградено хранилище: %s" -#: builtin/add.c:424 +#: builtin/add.c:451 msgid "" "Use -f if you really want to add them.\n" "Turn this message off by running\n" @@ -10524,50 +10672,56 @@ msgstr "" "\n" " git config advice.addIgnoredFile false" -#: builtin/add.c:433 +#: builtin/add.c:460 msgid "adding files failed" msgstr "неуспешно добавяне на файлове" -#: builtin/add.c:461 builtin/commit.c:345 +#: builtin/add.c:488 +msgid "--dry-run is incompatible with --interactive/--patch" +msgstr "" +"опцията „--dry-run“ е несъвместима с всяка от опциите „--interactive“/„--" +"patch“" + +#: builtin/add.c:490 builtin/commit.c:357 msgid "--pathspec-from-file is incompatible with --interactive/--patch" msgstr "" "опцията „--pathspec-from-file“ е несъвместима с всяка от опциите „--" "interactive“/„--patch“" -#: builtin/add.c:478 +#: builtin/add.c:507 msgid "--pathspec-from-file is incompatible with --edit" msgstr "опциите „--pathspec-from-file“ и „--edit“ са несъвместими" -#: builtin/add.c:490 +#: builtin/add.c:519 msgid "-A and -u are mutually incompatible" msgstr "опциите „-A“ и „-u“ са несъвместими" -#: builtin/add.c:493 +#: builtin/add.c:522 msgid "Option --ignore-missing can only be used together with --dry-run" -msgstr "Опцията „--ignore-missing“ изисква „--dry-run“" +msgstr "опцията „--ignore-missing“ изисква „--dry-run“" -#: builtin/add.c:497 +#: builtin/add.c:526 #, c-format msgid "--chmod param '%s' must be either -x or +x" msgstr "параметърът към „--chmod“ — „%s“ може да е или „-x“, или „+x“" -#: builtin/add.c:515 builtin/checkout.c:1714 builtin/commit.c:351 -#: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1569 +#: builtin/add.c:544 builtin/checkout.c:1735 builtin/commit.c:363 +#: builtin/reset.c:328 builtin/rm.c:273 builtin/stash.c:1637 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "" "опцията „--pathspec-from-file“ е несъвместима с аргументи, указващи пътища" -#: builtin/add.c:522 builtin/checkout.c:1726 builtin/commit.c:357 -#: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1575 +#: builtin/add.c:551 builtin/checkout.c:1747 builtin/commit.c:369 +#: builtin/reset.c:334 builtin/rm.c:279 builtin/stash.c:1643 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "опцията „--pathspec-file-nul“ изисква опция „--pathspec-from-file“" -#: builtin/add.c:526 +#: builtin/add.c:555 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Нищо не е зададено и нищо не е добавено.\n" -#: builtin/add.c:528 +#: builtin/add.c:557 msgid "" "Maybe you wanted to say 'git add .'?\n" "Turn this message off by running\n" @@ -10578,110 +10732,110 @@ msgstr "" "\n" " git config advice.addEmptyPathspec false" -#: builtin/am.c:352 +#: builtin/am.c:364 msgid "could not parse author script" msgstr "скриптът за автор не може да се анализира" -#: builtin/am.c:436 +#: builtin/am.c:454 #, c-format msgid "'%s' was deleted by the applypatch-msg hook" msgstr "„%s“ бе изтрит от куката „applypatch-msg“" -#: builtin/am.c:478 +#: builtin/am.c:496 #, c-format msgid "Malformed input line: '%s'." msgstr "Даденият входен ред е с неправилен формат: „%s“." -#: builtin/am.c:516 +#: builtin/am.c:534 #, c-format msgid "Failed to copy notes from '%s' to '%s'" msgstr "Бележката не може да се копира от „%s“ към „%s“" -#: builtin/am.c:542 +#: builtin/am.c:560 msgid "fseek failed" msgstr "неуспешно изпълнение на „fseek“" -#: builtin/am.c:730 +#: builtin/am.c:748 #, c-format msgid "could not parse patch '%s'" msgstr "кръпката „%s“ не може да се анализира" -#: builtin/am.c:795 +#: builtin/am.c:813 msgid "Only one StGIT patch series can be applied at once" msgstr "" "Само една поредица от кръпки от „StGIT“ може да бъде прилагана в даден момент" -#: builtin/am.c:843 +#: builtin/am.c:861 msgid "invalid timestamp" msgstr "неправилна стойност за време" -#: builtin/am.c:848 builtin/am.c:860 +#: builtin/am.c:866 builtin/am.c:878 msgid "invalid Date line" msgstr "неправилен ред за дата „Date“" -#: builtin/am.c:855 +#: builtin/am.c:873 msgid "invalid timezone offset" msgstr "неправилно отместване на часовия пояс" -#: builtin/am.c:948 +#: builtin/am.c:966 msgid "Patch format detection failed." msgstr "Форматът на кръпката не може да бъде определен." -#: builtin/am.c:953 builtin/clone.c:410 +#: builtin/am.c:971 builtin/clone.c:414 #, c-format msgid "failed to create directory '%s'" msgstr "директорията „%s“ не може да бъде създадена" -#: builtin/am.c:958 +#: builtin/am.c:976 msgid "Failed to split patches." -msgstr "Кръпките не могат да бъдат разделени." +msgstr "Кръпките не може да бъдат разделени." -#: builtin/am.c:1089 +#: builtin/am.c:1125 #, c-format msgid "When you have resolved this problem, run \"%s --continue\"." msgstr "След коригирането на този проблем изпълнете „%s --continue“." -#: builtin/am.c:1090 +#: builtin/am.c:1126 #, c-format msgid "If you prefer to skip this patch, run \"%s --skip\" instead." msgstr "Ако предпочитате да прескочите тази кръпка, изпълнете „%s --skip“." -#: builtin/am.c:1091 +#: builtin/am.c:1127 #, c-format msgid "To restore the original branch and stop patching, run \"%s --abort\"." msgstr "За да се върнете към първоначалното състояние, изпълнете „%s --abort“." -#: builtin/am.c:1174 +#: builtin/am.c:1222 msgid "Patch sent with format=flowed; space at the end of lines might be lost." msgstr "" "Кръпката е пратена с форматиране „format=flowed“. Празните знаци в края на " "редовете може да се загубят." -#: builtin/am.c:1202 +#: builtin/am.c:1250 msgid "Patch is empty." msgstr "Кръпката е празна." -#: builtin/am.c:1267 +#: builtin/am.c:1315 #, c-format msgid "missing author line in commit %s" msgstr "липсва ред за авторство в подаването „%s“" -#: builtin/am.c:1270 +#: builtin/am.c:1318 #, c-format msgid "invalid ident line: %.*s" msgstr "грешен ред с идентичност: %.*s" -#: builtin/am.c:1489 +#: builtin/am.c:1537 msgid "Repository lacks necessary blobs to fall back on 3-way merge." msgstr "" "В хранилището липсват необходимите обекти-BLOB, за да се премине към тройно " "сливане." -#: builtin/am.c:1491 +#: builtin/am.c:1539 msgid "Using index info to reconstruct a base tree..." msgstr "Базовото дърво се реконструира от информацията в индекса…" -#: builtin/am.c:1510 +#: builtin/am.c:1558 msgid "" "Did you hand edit your patch?\n" "It does not apply to blobs recorded in its index." @@ -10689,24 +10843,24 @@ msgstr "" "Кръпката не може да се приложи към обектите-BLOB в индекса.\n" "Да не би да сте я редактирали на ръка?" -#: builtin/am.c:1516 +#: builtin/am.c:1564 msgid "Falling back to patching base and 3-way merge..." msgstr "Преминаване към прилагане на кръпка към базата и тройно сливане…" -#: builtin/am.c:1542 +#: builtin/am.c:1590 msgid "Failed to merge in the changes." msgstr "Неуспешно сливане на промените." -#: builtin/am.c:1574 +#: builtin/am.c:1622 msgid "applying to an empty history" msgstr "прилагане върху празна история" -#: builtin/am.c:1626 builtin/am.c:1630 +#: builtin/am.c:1674 builtin/am.c:1678 #, c-format msgid "cannot resume: %s does not exist." msgstr "не може да се продължи — „%s“ не съществува." -#: builtin/am.c:1648 +#: builtin/am.c:1696 msgid "Commit Body is:" msgstr "Тялото на кръпката за прилагане е:" @@ -10714,45 +10868,45 @@ msgstr "Тялото на кръпката за прилагане е:" #. in your translation. The program will only accept English #. input at this point. #. -#: builtin/am.c:1658 +#: builtin/am.c:1706 #, c-format msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: " msgstr "" "Прилагане? „y“ — да/„n“ — не/„e“ — редактиране/„v“ — преглед/„a“ — приемане " "на всичко:" -#: builtin/am.c:1704 builtin/commit.c:395 +#: builtin/am.c:1752 builtin/commit.c:408 msgid "unable to write index file" msgstr "индексът не може да бъде записан" -#: builtin/am.c:1708 +#: builtin/am.c:1756 #, c-format msgid "Dirty index: cannot apply patches (dirty: %s)" msgstr "" -"Индексът не е чист: кръпките не могат да бъдат приложени (замърсени са: %s)" +"Индексът не е чист: кръпките не може да бъдат приложени (замърсени са: %s)" -#: builtin/am.c:1748 builtin/am.c:1816 +#: builtin/am.c:1796 builtin/am.c:1864 #, c-format msgid "Applying: %.*s" msgstr "Прилагане: %.*s" -#: builtin/am.c:1765 +#: builtin/am.c:1813 msgid "No changes -- Patch already applied." msgstr "Без промени — кръпката вече е приложена." -#: builtin/am.c:1771 +#: builtin/am.c:1819 #, c-format msgid "Patch failed at %s %.*s" msgstr "Неуспешно прилагане на кръпка при %s %.*s“" -#: builtin/am.c:1775 +#: builtin/am.c:1823 msgid "Use 'git am --show-current-patch=diff' to see the failed patch" msgstr "" "За да видите неуспешно приложени кръпки, използвайте:\n" "\n" " git am --show-current-patch=diff" -#: builtin/am.c:1819 +#: builtin/am.c:1867 msgid "" "No changes - did you forget to use 'git add'?\n" "If there is nothing left to stage, chances are that something else\n" @@ -10762,7 +10916,7 @@ msgstr "" "Ако няма друга промяна за включване в индекса, най-вероятно някоя друга\n" "кръпка е довела до същите промени и в такъв случай просто пропуснете тази." -#: builtin/am.c:1826 +#: builtin/am.c:1874 msgid "" "You still have unmerged paths in your index.\n" "You should 'git add' each file with resolved conflicts to mark them as " @@ -10773,17 +10927,17 @@ msgstr "" "След корекция на конфликтите изпълнете „git add“ върху поправените файлове.\n" "За да приемете „изтрити от тях“, изпълнете „git rm“ върху изтритите файлове." -#: builtin/am.c:1933 builtin/am.c:1937 builtin/am.c:1949 builtin/reset.c:347 +#: builtin/am.c:1981 builtin/am.c:1985 builtin/am.c:1997 builtin/reset.c:347 #: builtin/reset.c:355 #, c-format msgid "Could not parse object '%s'." msgstr "„%s“ не е разпознат като обект." -#: builtin/am.c:1985 +#: builtin/am.c:2033 msgid "failed to clean index" msgstr "индексът не може да бъде изчистен" -#: builtin/am.c:2029 +#: builtin/am.c:2077 msgid "" "You seem to have moved HEAD since the last 'am' failure.\n" "Not rewinding to ORIG_HEAD" @@ -10794,162 +10948,166 @@ msgstr "" "сочи към\n" "„ORIG_HEAD“" -#: builtin/am.c:2136 +#: builtin/am.c:2184 #, c-format msgid "Invalid value for --patch-format: %s" msgstr "Неправилна стойност за „--patch-format“: „%s“" -#: builtin/am.c:2178 +#: builtin/am.c:2226 #, c-format msgid "Invalid value for --show-current-patch: %s" msgstr "Неправилна стойност за „--show-current-patch“: „%s“" -#: builtin/am.c:2182 +#: builtin/am.c:2230 #, c-format msgid "--show-current-patch=%s is incompatible with --show-current-patch=%s" msgstr "" "опциите „--show-current-patch=%s“ и „--show-current-patch=%s“ са несъвместими" -#: builtin/am.c:2213 +#: builtin/am.c:2261 msgid "git am [<options>] [(<mbox> | <Maildir>)...]" msgstr "git am [ОПЦИЯ…] [(ФАЙЛ_С_ПОЩА|ДИРЕКТОРИЯ_С_ПОЩА)…]" -#: builtin/am.c:2214 +#: builtin/am.c:2262 msgid "git am [<options>] (--continue | --skip | --abort)" msgstr "git am [ОПЦИЯ…] (--continue | --quit | --abort)" -#: builtin/am.c:2220 +#: builtin/am.c:2268 msgid "run interactively" msgstr "интерактивна работа" -#: builtin/am.c:2222 +#: builtin/am.c:2270 msgid "historical option -- no-op" msgstr "изоставена опция, съществува по исторически причини, нищо не прави" -#: builtin/am.c:2224 +#: builtin/am.c:2272 msgid "allow fall back on 3way merging if needed" msgstr "да се преминава към тройно сливане при нужда." -#: builtin/am.c:2225 builtin/init-db.c:560 builtin/prune-packed.c:16 -#: builtin/repack.c:334 builtin/stash.c:882 +#: builtin/am.c:2273 builtin/init-db.c:546 builtin/prune-packed.c:16 +#: builtin/repack.c:472 builtin/stash.c:948 msgid "be quiet" msgstr "без извеждане на информация" -#: builtin/am.c:2227 +#: builtin/am.c:2275 msgid "add a Signed-off-by trailer to the commit message" msgstr "добавяне на епилог за подпис „Signed-off-by“ в съобщението за подаване" -#: builtin/am.c:2230 +#: builtin/am.c:2278 msgid "recode into utf8 (default)" msgstr "прекодиране в UTF-8 (стандартно)" -#: builtin/am.c:2232 +#: builtin/am.c:2280 msgid "pass -k flag to git-mailinfo" msgstr "подаване на опцията „-k“ на командата „git-mailinfo“" -#: builtin/am.c:2234 +#: builtin/am.c:2282 msgid "pass -b flag to git-mailinfo" msgstr "подаване на опцията „-b“ на командата „git-mailinfo“" -#: builtin/am.c:2236 +#: builtin/am.c:2284 msgid "pass -m flag to git-mailinfo" msgstr "подаване на опцията „-m“ на командата „git-mailinfo“" -#: builtin/am.c:2238 +#: builtin/am.c:2286 msgid "pass --keep-cr flag to git-mailsplit for mbox format" msgstr "" "подаване на опцията „--keep-cr“ на командата „git-mailsplit“ за формат „mbox“" -#: builtin/am.c:2241 +#: builtin/am.c:2289 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr" msgstr "" "без подаване на опцията „--keep-cr“ на командата „git-mailsplit“ независимо " "от „am.keepcr“" -#: builtin/am.c:2244 +#: builtin/am.c:2292 msgid "strip everything before a scissors line" msgstr "пропускане на всичко преди реда за отрязване" -#: builtin/am.c:2246 builtin/am.c:2249 builtin/am.c:2252 builtin/am.c:2255 -#: builtin/am.c:2258 builtin/am.c:2261 builtin/am.c:2264 builtin/am.c:2267 -#: builtin/am.c:2273 +#: builtin/am.c:2294 +msgid "pass it through git-mailinfo" +msgstr "прекарване през „git-mailinfo“" + +#: builtin/am.c:2297 builtin/am.c:2300 builtin/am.c:2303 builtin/am.c:2306 +#: builtin/am.c:2309 builtin/am.c:2312 builtin/am.c:2315 builtin/am.c:2318 +#: builtin/am.c:2324 msgid "pass it through git-apply" msgstr "прекарване през „git-apply“" -#: builtin/am.c:2263 builtin/commit.c:1395 builtin/fmt-merge-msg.c:17 -#: builtin/fmt-merge-msg.c:20 builtin/grep.c:904 builtin/merge.c:261 +#: builtin/am.c:2314 builtin/commit.c:1505 builtin/fmt-merge-msg.c:17 +#: builtin/fmt-merge-msg.c:20 builtin/grep.c:906 builtin/merge.c:261 #: builtin/pull.c:141 builtin/pull.c:200 builtin/pull.c:217 -#: builtin/rebase.c:1347 builtin/repack.c:345 builtin/repack.c:349 -#: builtin/repack.c:351 builtin/show-branch.c:650 builtin/show-ref.c:172 -#: builtin/tag.c:436 parse-options.h:154 parse-options.h:175 -#: parse-options.h:316 +#: builtin/rebase.c:1342 builtin/repack.c:483 builtin/repack.c:487 +#: builtin/repack.c:489 builtin/show-branch.c:650 builtin/show-ref.c:172 +#: builtin/tag.c:447 parse-options.h:155 parse-options.h:176 +#: parse-options.h:317 msgid "n" msgstr "БРОЙ" -#: builtin/am.c:2269 builtin/branch.c:670 builtin/bugreport.c:136 -#: builtin/for-each-ref.c:38 builtin/replace.c:556 builtin/tag.c:470 +#: builtin/am.c:2320 builtin/branch.c:672 builtin/bugreport.c:137 +#: builtin/for-each-ref.c:40 builtin/replace.c:556 builtin/tag.c:481 #: builtin/verify-tag.c:38 msgid "format" msgstr "ФОРМАТ" -#: builtin/am.c:2270 +#: builtin/am.c:2321 msgid "format the patch(es) are in" msgstr "формат на кръпките" -#: builtin/am.c:2276 +#: builtin/am.c:2327 msgid "override error message when patch failure occurs" msgstr "избрано от вас съобщение за грешка при прилагане на кръпки" -#: builtin/am.c:2278 +#: builtin/am.c:2329 msgid "continue applying patches after resolving a conflict" msgstr "продължаване на прилагането на кръпки след коригирането на конфликт" -#: builtin/am.c:2281 +#: builtin/am.c:2332 msgid "synonyms for --continue" msgstr "псевдоними на „--continue“" -#: builtin/am.c:2284 +#: builtin/am.c:2335 msgid "skip the current patch" msgstr "прескачане на текущата кръпка" -#: builtin/am.c:2287 +#: builtin/am.c:2338 msgid "restore the original branch and abort the patching operation" msgstr "" "възстановяване на първоначалното състояние на клона и преустановяване на " "прилагането на кръпката" -#: builtin/am.c:2290 +#: builtin/am.c:2341 msgid "abort the patching operation but keep HEAD where it is" msgstr "" "преустановяване на прилагането на кръпката без промяна към кое сочи „HEAD“" -#: builtin/am.c:2294 +#: builtin/am.c:2345 msgid "show the patch being applied" msgstr "показване на прилаганата кръпка" -#: builtin/am.c:2299 +#: builtin/am.c:2350 msgid "lie about committer date" msgstr "дата за подаване различна от първоначалната" -#: builtin/am.c:2301 +#: builtin/am.c:2352 msgid "use current timestamp for author date" msgstr "използване на текущото време като това за автор" -#: builtin/am.c:2303 builtin/commit-tree.c:120 builtin/commit.c:1515 -#: builtin/merge.c:298 builtin/pull.c:175 builtin/rebase.c:538 -#: builtin/rebase.c:1400 builtin/revert.c:117 builtin/tag.c:451 +#: builtin/am.c:2354 builtin/commit-tree.c:120 builtin/commit.c:1630 +#: builtin/merge.c:298 builtin/pull.c:175 builtin/rebase.c:537 +#: builtin/rebase.c:1395 builtin/revert.c:117 builtin/tag.c:462 msgid "key-id" msgstr "ИДЕНТИФИКАТОР_НА_КЛЮЧ" -#: builtin/am.c:2304 builtin/rebase.c:539 builtin/rebase.c:1401 +#: builtin/am.c:2355 builtin/rebase.c:538 builtin/rebase.c:1396 msgid "GPG-sign commits" msgstr "подписване на подаванията с GPG" -#: builtin/am.c:2307 +#: builtin/am.c:2358 msgid "(internal use for git-rebase)" msgstr "(ползва се вътрешно за „git-rebase“)" -#: builtin/am.c:2325 +#: builtin/am.c:2376 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." @@ -10957,31 +11115,31 @@ msgstr "" "Опциите „-b“/„--binary“ отдавна не правят нищо и\n" "ще бъдат премахнати в бъдеще. Не ги ползвайте." -#: builtin/am.c:2332 +#: builtin/am.c:2383 msgid "failed to read the index" msgstr "неуспешно изчитане на индекса" -#: builtin/am.c:2347 +#: builtin/am.c:2398 #, c-format msgid "previous rebase directory %s still exists but mbox given." msgstr "" "предишната директория за пребазиране „%s“ все още съществува, а е зададен " "файл „mbox“." -#: builtin/am.c:2371 +#: builtin/am.c:2422 #, c-format msgid "" "Stray %s directory found.\n" "Use \"git am --abort\" to remove it." msgstr "" "Открита е излишна директория „%s“.\n" -"Можете да я изтриете с командата „git am --abort“." +"Може да я изтриете с командата „git am --abort“." -#: builtin/am.c:2377 +#: builtin/am.c:2428 msgid "Resolve operation not in progress, we are not resuming." msgstr "В момента не тече операция по коригиране и няма как да се продължи." -#: builtin/am.c:2387 +#: builtin/am.c:2438 msgid "interactive mode requires patches on the command line" msgstr "интерактивният режим изисква кръпки на командния ред" @@ -11187,7 +11345,7 @@ msgstr "" "на „git bisect terms“ е подаден неправилен аргумент „%s“\n" "Поддържат се опциите „--term-good“/„--term-old“ и „--term-bad„/„--term-new“." -#: builtin/bisect--helper.c:497 builtin/bisect--helper.c:1014 +#: builtin/bisect--helper.c:497 builtin/bisect--helper.c:1021 msgid "revision walk setup failed\n" msgstr "неуспешно настройване на обхождането на версиите\n" @@ -11250,97 +11408,102 @@ msgstr "Да се извърши ли автоматично? „Y“ — ДА, #: builtin/bisect--helper.c:842 msgid "Please call `--bisect-state` with at least one argument" -msgstr "Опцията „--bisect-state“ изисква поне един аргумент" +msgstr "опцията „--bisect-state“ изисква поне един аргумент" #: builtin/bisect--helper.c:855 #, c-format msgid "'git bisect %s' can take only one argument." msgstr "Командата „git bisect %s“ приема само един аргумент." -#: builtin/bisect--helper.c:867 builtin/bisect--helper.c:878 +#: builtin/bisect--helper.c:867 builtin/bisect--helper.c:880 #, c-format msgid "Bad rev input: %s" msgstr "Неправилна версия: „%s“" -#: builtin/bisect--helper.c:912 +#: builtin/bisect--helper.c:887 +#, c-format +msgid "Bad rev input (not a commit): %s" +msgstr "Неправилна версия (не е подаване): „%s“" + +#: builtin/bisect--helper.c:919 msgid "We are not bisecting." msgstr "В момента не се извършва двоично търсене." -#: builtin/bisect--helper.c:962 +#: builtin/bisect--helper.c:969 #, c-format msgid "'%s'?? what are you talking about?" msgstr "" "Непозната команда „%s“. Възможностите са: „start“, „skip“, „good“, „bad“ (и " "вариантите им)" -#: builtin/bisect--helper.c:974 +#: builtin/bisect--helper.c:981 #, c-format msgid "cannot read file '%s' for replaying" msgstr "" "файлът „%s“ не може да бъде прочетен, за да се изпълнят командите от него " "наново" -#: builtin/bisect--helper.c:1047 +#: builtin/bisect--helper.c:1054 msgid "reset the bisection state" msgstr "изчистване на състоянието на двоичното търсене" -#: builtin/bisect--helper.c:1049 +#: builtin/bisect--helper.c:1056 msgid "check whether bad or good terms exist" msgstr "проверка дали съществуват одобряващи/отхвърлящи управляващи думи" -#: builtin/bisect--helper.c:1051 +#: builtin/bisect--helper.c:1058 msgid "print out the bisect terms" msgstr "извеждане на управляващите думи" -#: builtin/bisect--helper.c:1053 +#: builtin/bisect--helper.c:1060 msgid "start the bisect session" msgstr "начало на двоично търсене" -#: builtin/bisect--helper.c:1055 +#: builtin/bisect--helper.c:1062 msgid "find the next bisection commit" msgstr "откриване на следващото подаване при двоично търсене" -#: builtin/bisect--helper.c:1057 +#: builtin/bisect--helper.c:1064 msgid "mark the state of ref (or refs)" msgstr "задаване на състоянието на указателя/ите" -#: builtin/bisect--helper.c:1059 +#: builtin/bisect--helper.c:1066 msgid "list the bisection steps so far" msgstr "извеждане на стъпките на двоичното търсене досега" -#: builtin/bisect--helper.c:1061 +#: builtin/bisect--helper.c:1068 msgid "replay the bisection process from the given file" msgstr "наново изпълнение на двоичното търсене чрез дадения файл" -#: builtin/bisect--helper.c:1063 +#: builtin/bisect--helper.c:1070 msgid "skip some commits for checkout" msgstr "прескачане на някои подавания при изтегляне" -#: builtin/bisect--helper.c:1065 +#: builtin/bisect--helper.c:1072 msgid "no log for BISECT_WRITE" msgstr "липсва запис за „BISECT_WRITE“" -#: builtin/bisect--helper.c:1080 +#: builtin/bisect--helper.c:1087 msgid "--bisect-reset requires either no argument or a commit" msgstr "опцията „--bisect-reset“ изисква или 0 аргументи, или 1 — подаване" -#: builtin/bisect--helper.c:1085 +#: builtin/bisect--helper.c:1092 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "опцията „--bisect-next-check“ изисква 2 или 3 аргумента" -#: builtin/bisect--helper.c:1091 +#: builtin/bisect--helper.c:1098 msgid "--bisect-terms requires 0 or 1 argument" msgstr "опцията „--bisect-terms“ изисква 0 или 1 аргумента" -#: builtin/bisect--helper.c:1100 +#: builtin/bisect--helper.c:1107 msgid "--bisect-next requires 0 arguments" msgstr "опцията „--bisect-next“ не приема аргументи" -#: builtin/bisect--helper.c:1111 +#: builtin/bisect--helper.c:1118 msgid "--bisect-log requires 0 arguments" msgstr "опцията „--bisect-log“ не приема аргументи" -#: builtin/bisect--helper.c:1116 +#: builtin/bisect--helper.c:1123 msgid "no logfile given" msgstr "не е зададен журнален файл" @@ -11395,9 +11558,9 @@ msgstr "" msgid "show work cost statistics" msgstr "извеждане на статистика за извършените действия" -#: builtin/blame.c:871 builtin/checkout.c:1503 builtin/clone.c:92 -#: builtin/commit-graph.c:84 builtin/commit-graph.c:222 builtin/fetch.c:175 -#: builtin/merge.c:297 builtin/multi-pack-index.c:27 builtin/pull.c:119 +#: builtin/blame.c:871 builtin/checkout.c:1524 builtin/clone.c:94 +#: builtin/commit-graph.c:84 builtin/commit-graph.c:222 builtin/fetch.c:179 +#: builtin/merge.c:297 builtin/multi-pack-index.c:55 builtin/pull.c:119 #: builtin/push.c:575 builtin/send-pack.c:198 msgid "force progress reporting" msgstr "извеждане на напредъка" @@ -11454,7 +11617,7 @@ msgstr "" msgid "ignore whitespace differences" msgstr "без разлики в знаците за интервали" -#: builtin/blame.c:883 builtin/log.c:1812 +#: builtin/blame.c:883 builtin/log.c:1820 msgid "rev" msgstr "ВЕРС" @@ -11607,7 +11770,7 @@ msgstr "Неуспешно обновяване на конфигурацион #: builtin/branch.c:223 msgid "cannot use -a with -d" -msgstr "Опцията „-a“ е несъвместима с опцията „-d“" +msgstr "опциите „-a“ и „-d“ са несъвместими" #: builtin/branch.c:230 msgid "Couldn't look up commit object for HEAD" @@ -11616,7 +11779,7 @@ msgstr "Обектът-подаване, сочен от указателя „H #: builtin/branch.c:244 #, c-format msgid "Cannot delete branch '%s' checked out at '%s'" -msgstr "Не можете да изтриете клона „%s“, който е изтеглен в пътя „%s“" +msgstr "Не може да изтриете клона „%s“, който е изтеглен в пътя „%s“" #: builtin/branch.c:259 #, c-format @@ -11638,75 +11801,75 @@ msgstr "Изтрит следящ клон „%s“ (той сочеше към msgid "Deleted branch %s (was %s).\n" msgstr "Изтрит клон „%s“ (той сочеше към „%s“).\n" -#: builtin/branch.c:438 builtin/tag.c:61 +#: builtin/branch.c:440 builtin/tag.c:63 msgid "unable to parse format string" msgstr "форматиращият низ не може да бъде анализиран: %s" -#: builtin/branch.c:469 +#: builtin/branch.c:471 msgid "could not resolve HEAD" msgstr "подаването, сочено от указателя „HEAD“, не може да се установи" -#: builtin/branch.c:475 +#: builtin/branch.c:477 #, c-format msgid "HEAD (%s) points outside of refs/heads/" msgstr "„HEAD“ (%s) сочи извън директорията „refs/heads“" -#: builtin/branch.c:490 +#: builtin/branch.c:492 #, c-format msgid "Branch %s is being rebased at %s" msgstr "Клонът „%s“ се пребазира върху „%s“" -#: builtin/branch.c:494 +#: builtin/branch.c:496 #, c-format msgid "Branch %s is being bisected at %s" msgstr "Търси се двоично в клона „%s“ при „%s“" -#: builtin/branch.c:511 +#: builtin/branch.c:513 msgid "cannot copy the current branch while not on any." -msgstr "не можете да копирате текущия клон, защото сте извън който и да е клон" +msgstr "не може да копирате текущия клон, защото сте извън който и да е клон" -#: builtin/branch.c:513 +#: builtin/branch.c:515 msgid "cannot rename the current branch while not on any." msgstr "" -"не можете да преименувате текущия клон, защото сте извън който и да е клон" +"не може да преименувате текущия клон, защото сте извън който и да е клон" -#: builtin/branch.c:524 +#: builtin/branch.c:526 #, c-format msgid "Invalid branch name: '%s'" msgstr "Неправилно име на клон: „%s“" -#: builtin/branch.c:553 +#: builtin/branch.c:555 msgid "Branch rename failed" msgstr "Неуспешно преименуване на клон" -#: builtin/branch.c:555 +#: builtin/branch.c:557 msgid "Branch copy failed" msgstr "Неуспешно копиране на клон" -#: builtin/branch.c:559 +#: builtin/branch.c:561 #, c-format msgid "Created a copy of a misnamed branch '%s'" msgstr "Клонът с неправилно име „%s“ е копиран" -#: builtin/branch.c:562 +#: builtin/branch.c:564 #, c-format msgid "Renamed a misnamed branch '%s' away" msgstr "Клонът с неправилно име „%s“ е преименуван" -#: builtin/branch.c:568 +#: builtin/branch.c:570 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" msgstr "Клонът е преименуван на „%s“, но указателят „HEAD“ не е обновен" -#: builtin/branch.c:577 +#: builtin/branch.c:579 msgid "Branch is renamed, but update of config-file failed" msgstr "Клонът е преименуван, но конфигурационният файл не е обновен" -#: builtin/branch.c:579 +#: builtin/branch.c:581 msgid "Branch is copied, but update of config-file failed" msgstr "Клонът е копиран, но конфигурационният файл не е обновен" -#: builtin/branch.c:595 +#: builtin/branch.c:597 #, c-format msgid "" "Please edit the description for the branch\n" @@ -11717,183 +11880,183 @@ msgstr "" " %s\n" "Редовете, които започват с „%c“, ще бъдат пропуснати.\n" -#: builtin/branch.c:629 +#: builtin/branch.c:631 msgid "Generic options" msgstr "Общи настройки" -#: builtin/branch.c:631 +#: builtin/branch.c:633 msgid "show hash and subject, give twice for upstream branch" msgstr "" "извеждане на контролната сума и темата. Повтарянето на опцията прибавя " "отдалечените клони" -#: builtin/branch.c:632 +#: builtin/branch.c:634 msgid "suppress informational messages" msgstr "без информационни съобщения" -#: builtin/branch.c:633 +#: builtin/branch.c:635 msgid "set up tracking mode (see git-pull(1))" msgstr "задаване на режима на следене (виж git-pull(1))" -#: builtin/branch.c:635 +#: builtin/branch.c:637 msgid "do not use" msgstr "да не се ползва" -#: builtin/branch.c:637 builtin/rebase.c:534 +#: builtin/branch.c:639 builtin/rebase.c:533 msgid "upstream" msgstr "клон-източник" -#: builtin/branch.c:637 +#: builtin/branch.c:639 msgid "change the upstream info" msgstr "смяна на клона-източник" -#: builtin/branch.c:638 +#: builtin/branch.c:640 msgid "unset the upstream info" msgstr "изчистване на информацията за клон-източник" -#: builtin/branch.c:639 +#: builtin/branch.c:641 msgid "use colored output" msgstr "цветен изход" -#: builtin/branch.c:640 +#: builtin/branch.c:642 msgid "act on remote-tracking branches" msgstr "действие върху следящите клони" -#: builtin/branch.c:642 builtin/branch.c:644 +#: builtin/branch.c:644 builtin/branch.c:646 msgid "print only branches that contain the commit" msgstr "извеждане само на клоните, които съдържат това ПОДАВАНЕ" -#: builtin/branch.c:643 builtin/branch.c:645 +#: builtin/branch.c:645 builtin/branch.c:647 msgid "print only branches that don't contain the commit" msgstr "извеждане само на клоните, които не съдържат това ПОДАВАНЕ" -#: builtin/branch.c:648 +#: builtin/branch.c:650 msgid "Specific git-branch actions:" msgstr "Специални действия на „git-branch“:" -#: builtin/branch.c:649 +#: builtin/branch.c:651 msgid "list both remote-tracking and local branches" msgstr "извеждане както на следящите, така и на локалните клони" -#: builtin/branch.c:651 +#: builtin/branch.c:653 msgid "delete fully merged branch" msgstr "изтриване на клони, които са напълно слети" -#: builtin/branch.c:652 +#: builtin/branch.c:654 msgid "delete branch (even if not merged)" msgstr "изтриване и на клони, които не са напълно слети" -#: builtin/branch.c:653 +#: builtin/branch.c:655 msgid "move/rename a branch and its reflog" msgstr "" "преместване/преименуване на клон и принадлежащият му журнал на указателите" -#: builtin/branch.c:654 +#: builtin/branch.c:656 msgid "move/rename a branch, even if target exists" msgstr "преместване/преименуване на клон, дори ако има вече клон с такова име" -#: builtin/branch.c:655 +#: builtin/branch.c:657 msgid "copy a branch and its reflog" msgstr "копиране на клон и принадлежащия му журнал на указателите" -#: builtin/branch.c:656 +#: builtin/branch.c:658 msgid "copy a branch, even if target exists" msgstr "копиране на клон, дори ако има вече клон с такова име" -#: builtin/branch.c:657 +#: builtin/branch.c:659 msgid "list branch names" msgstr "извеждане на имената на клоните" -#: builtin/branch.c:658 +#: builtin/branch.c:660 msgid "show current branch name" msgstr "извеждане на името на текущия клон" -#: builtin/branch.c:659 +#: builtin/branch.c:661 msgid "create the branch's reflog" msgstr "създаване на журнала на указателите на клона" -#: builtin/branch.c:661 +#: builtin/branch.c:663 msgid "edit the description for the branch" msgstr "редактиране на описанието на клона" -#: builtin/branch.c:662 +#: builtin/branch.c:664 msgid "force creation, move/rename, deletion" msgstr "принудително създаване, преместване, преименуване, изтриване" -#: builtin/branch.c:663 +#: builtin/branch.c:665 msgid "print only branches that are merged" msgstr "извеждане само на слетите клони" -#: builtin/branch.c:664 +#: builtin/branch.c:666 msgid "print only branches that are not merged" msgstr "извеждане само на неслетите клони" -#: builtin/branch.c:665 +#: builtin/branch.c:667 msgid "list branches in columns" msgstr "извеждане по колони" -#: builtin/branch.c:667 builtin/for-each-ref.c:42 builtin/notes.c:415 +#: builtin/branch.c:669 builtin/for-each-ref.c:44 builtin/notes.c:415 #: builtin/notes.c:418 builtin/notes.c:581 builtin/notes.c:584 -#: builtin/tag.c:466 +#: builtin/tag.c:477 msgid "object" msgstr "ОБЕКТ" -#: builtin/branch.c:668 +#: builtin/branch.c:670 msgid "print only branches of the object" msgstr "извеждане само на клоните на ОБЕКТА" -#: builtin/branch.c:669 builtin/for-each-ref.c:48 builtin/tag.c:473 +#: builtin/branch.c:671 builtin/for-each-ref.c:50 builtin/tag.c:484 msgid "sorting and filtering are case insensitive" msgstr "подредбата и филтрирането третират еднакво малките и главните букви" -#: builtin/branch.c:670 builtin/for-each-ref.c:38 builtin/tag.c:471 +#: builtin/branch.c:672 builtin/for-each-ref.c:40 builtin/tag.c:482 #: builtin/verify-tag.c:38 msgid "format to use for the output" msgstr "ФОРМАТ за изхода" -#: builtin/branch.c:693 builtin/clone.c:790 +#: builtin/branch.c:695 builtin/clone.c:794 msgid "HEAD not found below refs/heads!" msgstr "В директорията „refs/heads“ липсва файл „HEAD“" -#: builtin/branch.c:717 +#: builtin/branch.c:719 msgid "--column and --verbose are incompatible" -msgstr "Опциите „--column“ и „--verbose“ са несъвместими" +msgstr "опциите „--column“ и „--verbose“ са несъвместими" -#: builtin/branch.c:732 builtin/branch.c:788 builtin/branch.c:797 +#: builtin/branch.c:734 builtin/branch.c:790 builtin/branch.c:799 msgid "branch name required" msgstr "Необходимо е име на клон" -#: builtin/branch.c:764 +#: builtin/branch.c:766 msgid "Cannot give description to detached HEAD" msgstr "Не може да зададете описание на несвързан „HEAD“" -#: builtin/branch.c:769 +#: builtin/branch.c:771 msgid "cannot edit description of more than one branch" msgstr "Не може да редактирате описанието на повече от един клон едновременно" -#: builtin/branch.c:776 +#: builtin/branch.c:778 #, c-format msgid "No commit on branch '%s' yet." msgstr "В клона „%s“ все още няма подавания." -#: builtin/branch.c:779 +#: builtin/branch.c:781 #, c-format msgid "No branch named '%s'." msgstr "Липсва клон на име „%s“." -#: builtin/branch.c:794 +#: builtin/branch.c:796 msgid "too many branches for a copy operation" msgstr "прекалено много клони за копиране" -#: builtin/branch.c:803 +#: builtin/branch.c:805 msgid "too many arguments for a rename operation" msgstr "прекалено много аргументи към командата за преименуване" -#: builtin/branch.c:808 +#: builtin/branch.c:810 msgid "too many arguments to set new upstream" msgstr "прекалено много аргументи към командата за следене" -#: builtin/branch.c:812 +#: builtin/branch.c:814 #, c-format msgid "" "could not set upstream of HEAD to %s when it does not point to any branch." @@ -11901,44 +12064,44 @@ msgstr "" "Следеното от „HEAD“ не може да се зададе да е „%s“, защото то не сочи към " "никой клон." -#: builtin/branch.c:815 builtin/branch.c:838 +#: builtin/branch.c:817 builtin/branch.c:840 #, c-format msgid "no such branch '%s'" msgstr "Няма клон на име „%s“." -#: builtin/branch.c:819 +#: builtin/branch.c:821 #, c-format msgid "branch '%s' does not exist" msgstr "Не съществува клон на име „%s“." -#: builtin/branch.c:832 +#: builtin/branch.c:834 msgid "too many arguments to unset upstream" msgstr "прекалено много аргументи към командата за спиране на следене" -#: builtin/branch.c:836 +#: builtin/branch.c:838 msgid "could not unset upstream of HEAD when it does not point to any branch." msgstr "" "Следеното от „HEAD“ не може да махне, защото то не сочи към никой клон." -#: builtin/branch.c:842 +#: builtin/branch.c:844 #, c-format msgid "Branch '%s' has no upstream information" msgstr "Няма информация клонът „%s“ да следи някой друг" -#: builtin/branch.c:852 +#: builtin/branch.c:854 msgid "" "The -a, and -r, options to 'git branch' do not take a branch name.\n" "Did you mean to use: -a|-r --list <pattern>?" msgstr "" -"Опциите „-a“ и „-r“ на „git branch“ са несъвместими с име на клон.\n" +"опциите „-a“ и „-r“ на „git branch“ са несъвместими с име на клон.\n" "Пробвайте с: „-a|-r --list ШАБЛОН“" -#: builtin/branch.c:856 +#: builtin/branch.c:858 msgid "" "the '--set-upstream' option is no longer supported. Please use '--track' or " "'--set-upstream-to' instead." msgstr "" -"Опцията „--set-upstream“ вече не се поддържа. Използвайте „--track“ или „--" +"опцията „--set-upstream“ вече не се поддържа. Използвайте „--track“ или „--" "set-upstream-to“" #: builtin/bugreport.c:15 @@ -12002,38 +12165,38 @@ msgstr "" "Разгледайте останалата част от доклада за грешка по-долу.\n" "Може да изтриете редовете, които не искате да споделите.\n" -#: builtin/bugreport.c:135 +#: builtin/bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "укажете файла, в който да се запази докладът за грешка" -#: builtin/bugreport.c:137 +#: builtin/bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "укажете суфикса на файла във формат за „strftime“" -#: builtin/bugreport.c:159 +#: builtin/bugreport.c:160 #, c-format msgid "could not create leading directories for '%s'" -msgstr "родителските директории на „%s“ не могат да бъдат създадени" +msgstr "родителските директории на „%s“ не може да бъдат създадени" -#: builtin/bugreport.c:166 +#: builtin/bugreport.c:167 msgid "System Info" msgstr "Информация за системата" -#: builtin/bugreport.c:169 +#: builtin/bugreport.c:170 msgid "Enabled Hooks" msgstr "Включени куки" -#: builtin/bugreport.c:176 +#: builtin/bugreport.c:177 #, c-format msgid "couldn't create a new file at '%s'" msgstr "новият файл „%s“ не може да бъде създаден" -#: builtin/bugreport.c:179 +#: builtin/bugreport.c:180 #, c-format msgid "unable to write to %s" msgstr "в „%s“ не може да се пише" -#: builtin/bugreport.c:189 +#: builtin/bugreport.c:190 #, c-format msgid "Created new report at '%s'.\n" msgstr "Новият доклад е създаден в „%s“.\n" @@ -12054,19 +12217,19 @@ msgstr "git bundle list-heads ФАЙЛ [ИМЕ_НА_УКАЗАТЕЛ…]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle ФАЙЛ [ИМЕ_НА_УКАЗАТЕЛ…]" -#: builtin/bundle.c:67 builtin/pack-objects.c:3495 +#: builtin/bundle.c:67 builtin/pack-objects.c:3747 msgid "do not show progress meter" msgstr "без извеждане на напредъка" -#: builtin/bundle.c:69 builtin/pack-objects.c:3497 +#: builtin/bundle.c:69 builtin/pack-objects.c:3749 msgid "show progress meter" msgstr "извеждане на напредъка" -#: builtin/bundle.c:71 builtin/pack-objects.c:3499 +#: builtin/bundle.c:71 builtin/pack-objects.c:3751 msgid "show progress meter during object writing phase" msgstr "извеждане на напредъка във фазата на запазване на обектите" -#: builtin/bundle.c:74 builtin/pack-objects.c:3502 +#: builtin/bundle.c:74 builtin/pack-objects.c:3754 msgid "similar to --all-progress when progress meter is shown" msgstr "" "същото действие като опцията „--all-progress“ при извеждането на напредъка" @@ -12217,8 +12380,8 @@ msgstr "изчитане на имената на файловете от ста msgid "terminate input and output records by a NUL character" msgstr "разделяне на входните и изходните записи с нулевия знак „NUL“" -#: builtin/check-ignore.c:21 builtin/checkout.c:1499 builtin/gc.c:549 -#: builtin/worktree.c:489 +#: builtin/check-ignore.c:21 builtin/checkout.c:1520 builtin/gc.c:549 +#: builtin/worktree.c:491 msgid "suppress progress reporting" msgstr "без показване на напредъка" @@ -12230,27 +12393,27 @@ msgstr "извеждане на несъвпадащите пътища" msgid "ignore index when checking" msgstr "прескачане на индекса при проверката" -#: builtin/check-ignore.c:163 +#: builtin/check-ignore.c:165 msgid "cannot specify pathnames with --stdin" msgstr "опцията „--stdin“ е несъвместима с имена на пътища" -#: builtin/check-ignore.c:166 +#: builtin/check-ignore.c:168 msgid "-z only makes sense with --stdin" msgstr "опцията „-z“ изисква „--stdin“" -#: builtin/check-ignore.c:168 +#: builtin/check-ignore.c:170 msgid "no path specified" msgstr "не е зададен път" -#: builtin/check-ignore.c:172 +#: builtin/check-ignore.c:174 msgid "--quiet is only valid with a single pathname" msgstr "опцията „--quiet“ изисква да е подаден точно един път" -#: builtin/check-ignore.c:174 +#: builtin/check-ignore.c:176 msgid "cannot have both --quiet and --verbose" msgstr "опциите „--quiet“ и „--verbose“ са несъвместими" -#: builtin/check-ignore.c:177 +#: builtin/check-ignore.c:179 msgid "--non-matching is only valid with --verbose" msgstr "опцията „--non-matching“ изисква „--verbose“" @@ -12271,6 +12434,21 @@ msgstr "контактът не може да бъде анализиран: %s" msgid "no contacts specified" msgstr "не са указани контакти" +#: builtin/checkout--worker.c:110 +msgid "git checkout--worker [<options>]" +msgstr "git checkout--worker [ОПЦИЯ…]" + +#: builtin/checkout--worker.c:118 builtin/checkout-index.c:201 +#: builtin/column.c:31 builtin/submodule--helper.c:1825 +#: builtin/submodule--helper.c:1828 builtin/submodule--helper.c:1836 +#: builtin/submodule--helper.c:2334 builtin/worktree.c:719 +msgid "string" +msgstr "НИЗ" + +#: builtin/checkout--worker.c:119 builtin/checkout-index.c:202 +msgid "when creating files, prepend <string>" +msgstr "при създаването на нови файлове да се добавя префикса НИЗ" + #: builtin/checkout-index.c:152 msgid "git checkout-index [<options>] [--] [<file>...]" msgstr "git checkout-index [ОПЦИЯ…] [--] [ФАЙЛ…]" @@ -12279,158 +12457,147 @@ msgstr "git checkout-index [ОПЦИЯ…] [--] [ФАЙЛ…]" msgid "stage should be between 1 and 3 or all" msgstr "етапът трябва да е „1“, „2“, „3“ или „all“ (всички)" -#: builtin/checkout-index.c:186 +#: builtin/checkout-index.c:187 msgid "check out all files in the index" msgstr "изтегляне на всички файлове в индекса" -#: builtin/checkout-index.c:187 +#: builtin/checkout-index.c:188 msgid "force overwrite of existing files" msgstr "презаписване на файловете, дори и да съществуват" -#: builtin/checkout-index.c:189 +#: builtin/checkout-index.c:190 msgid "no warning for existing files and files not in index" msgstr "без предупреждения при липсващи файлове и файлове не в индекса" -#: builtin/checkout-index.c:191 +#: builtin/checkout-index.c:192 msgid "don't checkout new files" msgstr "без изтегляне на нови файлове" -#: builtin/checkout-index.c:193 +#: builtin/checkout-index.c:194 msgid "update stat information in the index file" msgstr "обновяване на информацията получена чрез „stat“ за файловете в индекса" -#: builtin/checkout-index.c:197 +#: builtin/checkout-index.c:198 msgid "read list of paths from the standard input" msgstr "изчитане на пътищата от стандартния вход" -#: builtin/checkout-index.c:199 +#: builtin/checkout-index.c:200 msgid "write the content to temporary files" msgstr "записване на съдържанието във временни файлове" -#: builtin/checkout-index.c:200 builtin/column.c:31 -#: builtin/submodule--helper.c:1824 builtin/submodule--helper.c:1827 -#: builtin/submodule--helper.c:1835 builtin/submodule--helper.c:2333 -#: builtin/worktree.c:717 -msgid "string" -msgstr "НИЗ" - -#: builtin/checkout-index.c:201 -msgid "when creating files, prepend <string>" -msgstr "при създаването на нови файлове да се добавя префикса НИЗ" - -#: builtin/checkout-index.c:203 +#: builtin/checkout-index.c:204 msgid "copy out the files from named stage" msgstr "копиране на файловете от това състояние на сливане" -#: builtin/checkout.c:31 +#: builtin/checkout.c:33 msgid "git checkout [<options>] <branch>" msgstr "git checkout [ОПЦИЯ…] КЛОН" -#: builtin/checkout.c:32 +#: builtin/checkout.c:34 msgid "git checkout [<options>] [<branch>] -- <file>..." msgstr "git checkout [ОПЦИЯ…] [КЛОН] -- ФАЙЛ…" -#: builtin/checkout.c:37 +#: builtin/checkout.c:39 msgid "git switch [<options>] [<branch>]" msgstr "git switch [ОПЦИЯ…] КЛОН" -#: builtin/checkout.c:42 +#: builtin/checkout.c:44 msgid "git restore [<options>] [--source=<branch>] <file>..." msgstr "git restore [ОПЦИЯ…] [--source=КЛОН] ФАЙЛ…" -#: builtin/checkout.c:188 builtin/checkout.c:227 +#: builtin/checkout.c:190 builtin/checkout.c:229 #, c-format msgid "path '%s' does not have our version" msgstr "вашата версия липсва в пътя „%s“" -#: builtin/checkout.c:190 builtin/checkout.c:229 +#: builtin/checkout.c:192 builtin/checkout.c:231 #, c-format msgid "path '%s' does not have their version" msgstr "чуждата версия липсва в пътя „%s“" -#: builtin/checkout.c:206 +#: builtin/checkout.c:208 #, c-format msgid "path '%s' does not have all necessary versions" msgstr "някоя от необходимите версии липсва в пътя „%s“" -#: builtin/checkout.c:258 +#: builtin/checkout.c:261 #, c-format msgid "path '%s' does not have necessary versions" msgstr "някоя от необходимите версии липсва в пътя „%s“" -#: builtin/checkout.c:275 +#: builtin/checkout.c:278 #, c-format msgid "path '%s': cannot merge" msgstr "пътят „%s“ не може да бъде слян" -#: builtin/checkout.c:291 +#: builtin/checkout.c:294 #, c-format msgid "Unable to add merge result for '%s'" msgstr "Резултатът за „%s“ не може да бъде слян" -#: builtin/checkout.c:396 +#: builtin/checkout.c:414 #, c-format msgid "Recreated %d merge conflict" msgid_plural "Recreated %d merge conflicts" msgstr[0] "Пресъздаден е %d конфликт при сливане" msgstr[1] "Пресъздадени са %d конфликта при сливане" -#: builtin/checkout.c:401 +#: builtin/checkout.c:419 #, c-format msgid "Updated %d path from %s" msgid_plural "Updated %d paths from %s" msgstr[0] "Обновен е %d път от „%s“" msgstr[1] "Обновени са %d пътя от „%s“" -#: builtin/checkout.c:408 +#: builtin/checkout.c:426 #, c-format msgid "Updated %d path from the index" msgid_plural "Updated %d paths from the index" msgstr[0] "Обновен е %d път от индекса" msgstr[1] "Обновени са %d пътя от индекса" -#: builtin/checkout.c:431 builtin/checkout.c:434 builtin/checkout.c:437 -#: builtin/checkout.c:441 +#: builtin/checkout.c:449 builtin/checkout.c:452 builtin/checkout.c:455 +#: builtin/checkout.c:459 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "опцията „%s“ е несъвместима с обновяването на пътища" -#: builtin/checkout.c:444 builtin/checkout.c:447 +#: builtin/checkout.c:462 builtin/checkout.c:465 #, c-format msgid "'%s' cannot be used with %s" -msgstr "опцията „%s“ е несъвместима с „%s“" +msgstr "опциите „%s“ и „%s“ са несъвместими" -#: builtin/checkout.c:451 +#: builtin/checkout.c:469 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" "Невъзможно е едновременно да обновявате пътища и да преминете към клона „%s“." -#: builtin/checkout.c:455 +#: builtin/checkout.c:473 #, c-format msgid "neither '%s' or '%s' is specified" msgstr "не е указано нито „%s“, нито „%s“" -#: builtin/checkout.c:459 +#: builtin/checkout.c:477 #, c-format msgid "'%s' must be used when '%s' is not specified" msgstr "опцията „%s“ е задължителна, когато „%s“ не е зададена" -#: builtin/checkout.c:464 builtin/checkout.c:469 +#: builtin/checkout.c:482 builtin/checkout.c:487 #, c-format msgid "'%s' or '%s' cannot be used with %s" msgstr "опцията „%3$s“ е несъвместима както с „%1$s“, така и с „%2$s“" -#: builtin/checkout.c:543 builtin/checkout.c:550 +#: builtin/checkout.c:563 builtin/checkout.c:570 #, c-format msgid "path '%s' is unmerged" msgstr "пътят „%s“ не е слят" -#: builtin/checkout.c:718 +#: builtin/checkout.c:739 msgid "you need to resolve your current index first" msgstr "първо трябва да коригирате индекса си" -#: builtin/checkout.c:772 +#: builtin/checkout.c:793 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -12440,50 +12607,50 @@ msgstr "" "индекса:\n" "%s" -#: builtin/checkout.c:865 +#: builtin/checkout.c:886 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Журналът на указателите за „%s“ не може да се проследи: %s\n" -#: builtin/checkout.c:907 +#: builtin/checkout.c:928 msgid "HEAD is now at" msgstr "Указателят „HEAD“ в момента сочи към" -#: builtin/checkout.c:911 builtin/clone.c:721 t/helper/test-fast-rebase.c:202 +#: builtin/checkout.c:932 builtin/clone.c:725 t/helper/test-fast-rebase.c:202 msgid "unable to update HEAD" msgstr "Указателят „HEAD“ не може да бъде обновен" -#: builtin/checkout.c:915 +#: builtin/checkout.c:936 #, c-format msgid "Reset branch '%s'\n" msgstr "Зануляване на клона „%s“\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:939 #, c-format msgid "Already on '%s'\n" msgstr "Вече сте на „%s“\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:943 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Преминаване към клона „%s“ и зануляване на промените\n" -#: builtin/checkout.c:924 builtin/checkout.c:1355 +#: builtin/checkout.c:945 builtin/checkout.c:1376 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Преминахте към новия клон „%s“\n" -#: builtin/checkout.c:926 +#: builtin/checkout.c:947 #, c-format msgid "Switched to branch '%s'\n" msgstr "Преминахте към клона „%s“\n" -#: builtin/checkout.c:977 +#: builtin/checkout.c:998 #, c-format msgid " ... and %d more.\n" msgstr "… и още %d.\n" -#: builtin/checkout.c:983 +#: builtin/checkout.c:1004 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -12505,7 +12672,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:1002 +#: builtin/checkout.c:1023 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -12532,19 +12699,19 @@ msgstr[1] "" " git branch ИМЕ_НА_НОВИЯ_КЛОН %s\n" "\n" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1058 msgid "internal error in revision walk" msgstr "вътрешна грешка при обхождането на версиите" -#: builtin/checkout.c:1041 +#: builtin/checkout.c:1062 msgid "Previous HEAD position was" msgstr "Преди това „HEAD“ сочеше към" -#: builtin/checkout.c:1081 builtin/checkout.c:1350 +#: builtin/checkout.c:1102 builtin/checkout.c:1371 msgid "You are on a branch yet to be born" msgstr "В момента сте на клон, който все още не е създаден" -#: builtin/checkout.c:1163 +#: builtin/checkout.c:1184 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -12553,7 +12720,7 @@ msgstr "" "„%s“ може да е както локален файл, така и следящ клон. За уточняване\n" "ползвайте разделителя „--“ (и евентуално опцията „--no-guess“)" -#: builtin/checkout.c:1170 +#: builtin/checkout.c:1191 msgid "" "If you meant to check out a remote tracking branch on, e.g. 'origin',\n" "you can do so by fully qualifying the name with the --track option:\n" @@ -12575,51 +12742,51 @@ msgstr "" "\n" " checkout.defaultRemote=origin" -#: builtin/checkout.c:1180 +#: builtin/checkout.c:1201 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "„%s“ напасва с множество (%d) отдалечени клони" -#: builtin/checkout.c:1246 +#: builtin/checkout.c:1267 msgid "only one reference expected" msgstr "очаква се само един указател" -#: builtin/checkout.c:1263 +#: builtin/checkout.c:1284 #, c-format msgid "only one reference expected, %d given." msgstr "очаква се един указател, а сте подали %d." -#: builtin/checkout.c:1309 builtin/worktree.c:270 builtin/worktree.c:438 +#: builtin/checkout.c:1330 builtin/worktree.c:270 builtin/worktree.c:438 #, c-format msgid "invalid reference: %s" msgstr "неправилен указател: %s" -#: builtin/checkout.c:1322 builtin/checkout.c:1688 +#: builtin/checkout.c:1343 builtin/checkout.c:1709 #, c-format msgid "reference is not a tree: %s" msgstr "указателят не сочи към обект-дърво: %s" -#: builtin/checkout.c:1369 +#: builtin/checkout.c:1390 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "очаква се клон, а не етикет — „%s“" -#: builtin/checkout.c:1371 +#: builtin/checkout.c:1392 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "очаква се локален, а не отдалечен клон — „%s“" -#: builtin/checkout.c:1372 builtin/checkout.c:1380 +#: builtin/checkout.c:1393 builtin/checkout.c:1401 #, c-format msgid "a branch is expected, got '%s'" msgstr "очаква се клон, а не „%s“" -#: builtin/checkout.c:1375 +#: builtin/checkout.c:1396 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "очаква се клон, а не подаване — „%s“" -#: builtin/checkout.c:1391 +#: builtin/checkout.c:1412 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -12627,7 +12794,7 @@ msgstr "" "по време на сливане не може да преминете към друг клон.\n" "Пробвайте с „git merge --quit“ или „git worktree add“." -#: builtin/checkout.c:1395 +#: builtin/checkout.c:1416 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -12636,7 +12803,7 @@ msgstr "" "клон.\n" "Пробвайте с „git am --quit“ или „git worktree add“." -#: builtin/checkout.c:1399 +#: builtin/checkout.c:1420 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -12644,7 +12811,7 @@ msgstr "" "по време на пребазиране не може да преминете към друг клон.\n" "Пробвайте с „git rebase --quit“ или „git worktree add“." -#: builtin/checkout.c:1403 +#: builtin/checkout.c:1424 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -12652,7 +12819,7 @@ msgstr "" "по време на отбиране на подавания не може да преминете към друг клон.\n" "Пробвайте с „git cherry-pick --quit“ или „git worktree add“." -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1428 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -12660,139 +12827,139 @@ msgstr "" "по време на отмяна на подавания не може да преминете към друг клон.\n" "Пробвайте с „git revert --quit“ или „git worktree add“." -#: builtin/checkout.c:1411 +#: builtin/checkout.c:1432 msgid "you are switching branch while bisecting" msgstr "преминаване към друг клон по време на двоично търсене" -#: builtin/checkout.c:1418 +#: builtin/checkout.c:1439 msgid "paths cannot be used with switching branches" msgstr "задаването на път е несъвместимо с преминаването от един клон към друг" -#: builtin/checkout.c:1421 builtin/checkout.c:1425 builtin/checkout.c:1429 +#: builtin/checkout.c:1442 builtin/checkout.c:1446 builtin/checkout.c:1450 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "опцията „%s“ е несъвместима с преминаването от един клон към друг" -#: builtin/checkout.c:1433 builtin/checkout.c:1436 builtin/checkout.c:1439 -#: builtin/checkout.c:1444 builtin/checkout.c:1449 +#: builtin/checkout.c:1454 builtin/checkout.c:1457 builtin/checkout.c:1460 +#: builtin/checkout.c:1465 builtin/checkout.c:1470 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "опцията „%s“ е несъвместима с „%s“" -#: builtin/checkout.c:1446 +#: builtin/checkout.c:1467 #, c-format msgid "'%s' cannot take <start-point>" msgstr "опцията „%s“ е несъвместима със задаването на НАЧАЛО" -#: builtin/checkout.c:1454 +#: builtin/checkout.c:1475 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "" "За да преминете към клон, подайте указател, който сочи към подаване. „%s“ " "не е такъв" -#: builtin/checkout.c:1461 +#: builtin/checkout.c:1482 msgid "missing branch or commit argument" msgstr "липсва аргумент — клон или подаване" -#: builtin/checkout.c:1504 +#: builtin/checkout.c:1525 msgid "perform a 3-way merge with the new branch" msgstr "извършване на тройно сливане с новия клон" -#: builtin/checkout.c:1505 builtin/log.c:1799 parse-options.h:322 +#: builtin/checkout.c:1526 builtin/log.c:1807 parse-options.h:323 msgid "style" msgstr "СТИЛ" -#: builtin/checkout.c:1506 +#: builtin/checkout.c:1527 msgid "conflict style (merge or diff3)" msgstr "действие при конфликт (сливане или тройна разлика)" -#: builtin/checkout.c:1518 builtin/worktree.c:486 +#: builtin/checkout.c:1539 builtin/worktree.c:488 msgid "detach HEAD at named commit" msgstr "отделяне на указателя „HEAD“ към указаното подаване" -#: builtin/checkout.c:1519 +#: builtin/checkout.c:1540 msgid "set upstream info for new branch" msgstr "задаване на кой клон бива следен при създаването на новия клон" -#: builtin/checkout.c:1521 +#: builtin/checkout.c:1542 msgid "force checkout (throw away local modifications)" msgstr "принудително изтегляне (вашите промени ще бъдат занулени)" -#: builtin/checkout.c:1523 +#: builtin/checkout.c:1544 msgid "new-branch" msgstr "НОВ_КЛОН" -#: builtin/checkout.c:1523 +#: builtin/checkout.c:1544 msgid "new unparented branch" msgstr "нов клон без родител" -#: builtin/checkout.c:1525 builtin/merge.c:301 +#: builtin/checkout.c:1546 builtin/merge.c:301 msgid "update ignored files (default)" msgstr "обновяване на игнорираните файлове (стандартно)" -#: builtin/checkout.c:1528 +#: builtin/checkout.c:1549 msgid "do not check if another worktree is holding the given ref" msgstr "без проверка дали друго работно дърво държи указателя" -#: builtin/checkout.c:1541 +#: builtin/checkout.c:1562 msgid "checkout our version for unmerged files" msgstr "изтегляне на вашата версия на неслетите файлове" -#: builtin/checkout.c:1544 +#: builtin/checkout.c:1565 msgid "checkout their version for unmerged files" msgstr "изтегляне на чуждата версия на неслетите файлове" -#: builtin/checkout.c:1548 +#: builtin/checkout.c:1569 msgid "do not limit pathspecs to sparse entries only" msgstr "без ограничаване на изброените пътища само до частично изтеглените" -#: builtin/checkout.c:1603 +#: builtin/checkout.c:1624 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" -msgstr "Опциите „-%c“, „-%c“ и „--orphan“ са несъвместими една с друга" +msgstr "опциите „-%c“, „-%c“ и „--orphan“ са несъвместими една с друга" -#: builtin/checkout.c:1607 +#: builtin/checkout.c:1628 msgid "-p and --overlay are mutually exclusive" msgstr "опциите „-p“ и „--overlay“ са несъвместими" -#: builtin/checkout.c:1644 +#: builtin/checkout.c:1665 msgid "--track needs a branch name" msgstr "опцията „--track“ изисква име на клон" -#: builtin/checkout.c:1649 +#: builtin/checkout.c:1670 #, c-format msgid "missing branch name; try -%c" msgstr "липсва име на клон, използвайте опцията „-%c“" -#: builtin/checkout.c:1681 +#: builtin/checkout.c:1702 #, c-format msgid "could not resolve %s" msgstr "„%s“ не може да бъде открит" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1718 msgid "invalid path specification" msgstr "указан е неправилен път" -#: builtin/checkout.c:1704 +#: builtin/checkout.c:1725 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "„%s“ не е подаване, затова от него не може да се създаде клон „%s“" -#: builtin/checkout.c:1708 +#: builtin/checkout.c:1729 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: опцията „--detach“ не приема аргумент-път „%s“" -#: builtin/checkout.c:1717 +#: builtin/checkout.c:1738 msgid "--pathspec-from-file is incompatible with --detach" msgstr "опциите „--pathspec-from-file“ и „--detach“ са несъвместими" -#: builtin/checkout.c:1720 builtin/reset.c:325 builtin/stash.c:1566 +#: builtin/checkout.c:1741 builtin/reset.c:325 builtin/stash.c:1634 msgid "--pathspec-from-file is incompatible with --patch" msgstr "опциите „--pathspec-from-file“ и „--patch“ са несъвместими" -#: builtin/checkout.c:1733 +#: builtin/checkout.c:1754 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -12800,74 +12967,74 @@ msgstr "" "git checkout: опциите „--ours“/„--theirs“, „--force“ и „--merge“\n" "са несъвместими с изтегляне от индекса." -#: builtin/checkout.c:1738 +#: builtin/checkout.c:1759 msgid "you must specify path(s) to restore" msgstr "трябва да укажете поне един път за възстановяване" -#: builtin/checkout.c:1764 builtin/checkout.c:1766 builtin/checkout.c:1815 -#: builtin/checkout.c:1817 builtin/clone.c:122 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/submodule--helper.c:2719 builtin/worktree.c:482 -#: builtin/worktree.c:484 +#: builtin/checkout.c:1785 builtin/checkout.c:1787 builtin/checkout.c:1836 +#: builtin/checkout.c:1838 builtin/clone.c:126 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2720 builtin/worktree.c:484 +#: builtin/worktree.c:486 msgid "branch" msgstr "клон" -#: builtin/checkout.c:1765 +#: builtin/checkout.c:1786 msgid "create and checkout a new branch" msgstr "създаване и преминаване към нов клон" -#: builtin/checkout.c:1767 +#: builtin/checkout.c:1788 msgid "create/reset and checkout a branch" msgstr "създаване/зануляване на клон и преминаване към него" -#: builtin/checkout.c:1768 +#: builtin/checkout.c:1789 msgid "create reflog for new branch" msgstr "създаване на журнал на указателите за нов клон" -#: builtin/checkout.c:1770 +#: builtin/checkout.c:1791 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "" "опит за отгатване на име на клон след неуспешен опит с „git checkout " "НЕСЪЩЕСТВУВАЩ_КЛОН“ (стандартно)" -#: builtin/checkout.c:1771 +#: builtin/checkout.c:1792 msgid "use overlay mode (default)" msgstr "използване на припокриващ режим (стандартно)" -#: builtin/checkout.c:1816 +#: builtin/checkout.c:1837 msgid "create and switch to a new branch" msgstr "създаване и преминаване към нов клон" -#: builtin/checkout.c:1818 +#: builtin/checkout.c:1839 msgid "create/reset and switch to a branch" msgstr "създаване/зануляване на клон и преминаване към него" -#: builtin/checkout.c:1820 +#: builtin/checkout.c:1841 msgid "second guess 'git switch <no-such-branch>'" msgstr "" "опит за отгатване на име на клон след неуспешен опит с „git switch " "НЕСЪЩЕСТВУВАЩ_КЛОН“" -#: builtin/checkout.c:1822 +#: builtin/checkout.c:1843 msgid "throw away local modifications" msgstr "зануляване на локалните промени" -#: builtin/checkout.c:1856 +#: builtin/checkout.c:1877 msgid "which tree-ish to checkout from" msgstr "към кой указател към дърво да се премине" -#: builtin/checkout.c:1858 +#: builtin/checkout.c:1879 msgid "restore the index" msgstr "възстановяване на индекса" -#: builtin/checkout.c:1860 +#: builtin/checkout.c:1881 msgid "restore the working tree (default)" msgstr "възстановяване на работното дърво (стандартно)" -#: builtin/checkout.c:1862 +#: builtin/checkout.c:1883 msgid "ignore unmerged entries" msgstr "пренебрегване на неслетите елементи" -#: builtin/checkout.c:1863 +#: builtin/checkout.c:1884 msgid "use overlay mode" msgstr "използване на припокриващ режим" @@ -12896,11 +13063,6 @@ msgstr "Прескачане на хранилището „%s“\n" msgid "Would skip repository %s\n" msgstr "Хранилището „%s“ ще бъде прескочено\n" -#: builtin/clean.c:37 -#, c-format -msgid "failed to remove %s" -msgstr "файлът „%s“ не може да бъде изтрит" - #: builtin/clean.c:38 #, c-format msgid "could not lstat %s\n" @@ -13011,8 +13173,8 @@ msgid "remove whole directories" msgstr "изтриване на цели директории" #: builtin/clean.c:909 builtin/describe.c:565 builtin/describe.c:567 -#: builtin/grep.c:922 builtin/log.c:184 builtin/log.c:186 -#: builtin/ls-files.c:573 builtin/name-rev.c:526 builtin/name-rev.c:528 +#: builtin/grep.c:924 builtin/log.c:184 builtin/log.c:186 +#: builtin/ls-files.c:650 builtin/name-rev.c:526 builtin/name-rev.c:528 #: builtin/show-ref.c:179 msgid "pattern" msgstr "ШАБЛОН" @@ -13054,168 +13216,173 @@ msgstr "опциите „-x“ и „-X“ са несъвместими" msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [ОПЦИЯ…] [--] ХРАНИЛИЩЕ [ДИРЕКТОРИЯ]" -#: builtin/clone.c:94 +#: builtin/clone.c:96 +msgid "don't clone shallow repository" +msgstr "без клониране на плитко хранилище" + +#: builtin/clone.c:98 msgid "don't create a checkout" msgstr "без създаване на работно дърво" -#: builtin/clone.c:95 builtin/clone.c:97 builtin/init-db.c:555 +#: builtin/clone.c:99 builtin/clone.c:101 builtin/init-db.c:541 msgid "create a bare repository" msgstr "създаване на голо хранилище" -#: builtin/clone.c:99 +#: builtin/clone.c:103 msgid "create a mirror repository (implies bare)" msgstr "" "създаване на хранилище-огледало (включва опцията „--bare“ за голо хранилище)" -#: builtin/clone.c:101 +#: builtin/clone.c:105 msgid "to clone from a local repository" msgstr "клониране от локално хранилище" -#: builtin/clone.c:103 +#: builtin/clone.c:107 msgid "don't use local hardlinks, always copy" msgstr "без твърди връзки, файловете винаги да се копират" -#: builtin/clone.c:105 +#: builtin/clone.c:109 msgid "setup as shared repository" msgstr "настройване за споделено хранилище" -#: builtin/clone.c:107 +#: builtin/clone.c:111 msgid "pathspec" msgstr "път" -#: builtin/clone.c:107 +#: builtin/clone.c:111 msgid "initialize submodules in the clone" msgstr "инициализиране на подмодулите при това клониране" -#: builtin/clone.c:111 +#: builtin/clone.c:115 msgid "number of submodules cloned in parallel" msgstr "брой подмодули, клонирани паралелно" -#: builtin/clone.c:112 builtin/init-db.c:552 +#: builtin/clone.c:116 builtin/init-db.c:538 msgid "template-directory" msgstr "директория с шаблони" -#: builtin/clone.c:113 builtin/init-db.c:553 +#: builtin/clone.c:117 builtin/init-db.c:539 msgid "directory from which templates will be used" msgstr "директория, която съдържа шаблоните, които да се ползват" -#: builtin/clone.c:115 builtin/clone.c:117 builtin/submodule--helper.c:1831 -#: builtin/submodule--helper.c:2336 +#: builtin/clone.c:119 builtin/clone.c:121 builtin/submodule--helper.c:1832 +#: builtin/submodule--helper.c:2337 msgid "reference repository" msgstr "еталонно хранилище" -#: builtin/clone.c:119 builtin/submodule--helper.c:1833 -#: builtin/submodule--helper.c:2338 +#: builtin/clone.c:123 builtin/submodule--helper.c:1834 +#: builtin/submodule--helper.c:2339 msgid "use --reference only while cloning" msgstr "опцията „--reference“ може да се използва само при клониране" -#: builtin/clone.c:120 builtin/column.c:27 builtin/init-db.c:563 -#: builtin/merge-file.c:46 builtin/pack-objects.c:3561 builtin/repack.c:357 +#: builtin/clone.c:124 builtin/column.c:27 builtin/init-db.c:549 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3815 builtin/repack.c:495 +#: t/helper/test-simple-ipc.c:696 t/helper/test-simple-ipc.c:698 msgid "name" msgstr "ИМЕ" -#: builtin/clone.c:121 +#: builtin/clone.c:125 msgid "use <name> instead of 'origin' to track upstream" msgstr "използване на това ИМЕ вместо „origin“ при проследяване на клони" -#: builtin/clone.c:123 +#: builtin/clone.c:127 msgid "checkout <branch> instead of the remote's HEAD" msgstr "изтегляне на този КЛОН, а не соченият от отдалечения указател „HEAD“" -#: builtin/clone.c:125 +#: builtin/clone.c:129 msgid "path to git-upload-pack on the remote" msgstr "път към командата „git-upload-pack“ на отдалеченото хранилище" -#: builtin/clone.c:126 builtin/fetch.c:176 builtin/grep.c:861 +#: builtin/clone.c:130 builtin/fetch.c:180 builtin/grep.c:863 #: builtin/pull.c:208 msgid "depth" msgstr "ДЪЛБОЧИНА" -#: builtin/clone.c:127 +#: builtin/clone.c:131 msgid "create a shallow clone of that depth" msgstr "плитко клониране до тази ДЪЛБОЧИНА" -#: builtin/clone.c:128 builtin/fetch.c:178 builtin/pack-objects.c:3550 +#: builtin/clone.c:132 builtin/fetch.c:182 builtin/pack-objects.c:3804 #: builtin/pull.c:211 msgid "time" msgstr "ВРЕМЕ" -#: builtin/clone.c:129 +#: builtin/clone.c:133 msgid "create a shallow clone since a specific time" msgstr "плитко клониране до момент във времето" -#: builtin/clone.c:130 builtin/fetch.c:180 builtin/fetch.c:203 -#: builtin/pull.c:214 builtin/pull.c:239 builtin/rebase.c:1323 +#: builtin/clone.c:134 builtin/fetch.c:184 builtin/fetch.c:207 +#: builtin/pull.c:214 builtin/pull.c:239 builtin/rebase.c:1318 msgid "revision" msgstr "ВЕРСИЯ" -#: builtin/clone.c:131 builtin/fetch.c:181 builtin/pull.c:215 +#: builtin/clone.c:135 builtin/fetch.c:185 builtin/pull.c:215 msgid "deepen history of shallow clone, excluding rev" msgstr "задълбочаване на историята на плитко хранилище до изключващ указател" -#: builtin/clone.c:133 builtin/submodule--helper.c:1843 -#: builtin/submodule--helper.c:2352 +#: builtin/clone.c:137 builtin/submodule--helper.c:1844 +#: builtin/submodule--helper.c:2353 msgid "clone only one branch, HEAD or --branch" msgstr "" "клониране само на един клон — или сочения от отдалечения „HEAD“, или изрично " "зададения с „--branch“" -#: builtin/clone.c:135 +#: builtin/clone.c:139 msgid "don't clone any tags, and make later fetches not to follow them" msgstr "" "без клониране на етикети, като последващите доставяния няма да ги следят" -#: builtin/clone.c:137 +#: builtin/clone.c:141 msgid "any cloned submodules will be shallow" msgstr "всички клонирани подмодули ще са плитки" -#: builtin/clone.c:138 builtin/init-db.c:561 +#: builtin/clone.c:142 builtin/init-db.c:547 msgid "gitdir" msgstr "СЛУЖЕБНА_ДИРЕКТОРИЯ" -#: builtin/clone.c:139 builtin/init-db.c:562 +#: builtin/clone.c:143 builtin/init-db.c:548 msgid "separate git dir from working tree" msgstr "отделна СЛУЖЕБНА_ДИРЕКТОРИЯ за git извън работното дърво" -#: builtin/clone.c:140 +#: builtin/clone.c:144 msgid "key=value" msgstr "КЛЮЧ=СТОЙНОСТ" -#: builtin/clone.c:141 +#: builtin/clone.c:145 msgid "set config inside the new repository" msgstr "задаване на настройките на новото хранилище" -#: builtin/clone.c:143 builtin/fetch.c:198 builtin/ls-remote.c:77 +#: builtin/clone.c:147 builtin/fetch.c:202 builtin/ls-remote.c:77 #: builtin/pull.c:230 builtin/push.c:584 builtin/send-pack.c:196 msgid "server-specific" msgstr "специфични за сървъра" -#: builtin/clone.c:143 builtin/fetch.c:198 builtin/ls-remote.c:77 +#: builtin/clone.c:147 builtin/fetch.c:202 builtin/ls-remote.c:77 #: builtin/pull.c:231 builtin/push.c:584 builtin/send-pack.c:197 msgid "option to transmit" msgstr "опция за пренос" -#: builtin/clone.c:144 builtin/fetch.c:199 builtin/pull.c:234 +#: builtin/clone.c:148 builtin/fetch.c:203 builtin/pull.c:234 #: builtin/push.c:585 msgid "use IPv4 addresses only" msgstr "само адреси IPv4" -#: builtin/clone.c:146 builtin/fetch.c:201 builtin/pull.c:237 +#: builtin/clone.c:150 builtin/fetch.c:205 builtin/pull.c:237 #: builtin/push.c:587 msgid "use IPv6 addresses only" msgstr "само адреси IPv6" -#: builtin/clone.c:150 +#: builtin/clone.c:154 msgid "any cloned submodules will use their remote-tracking branch" msgstr "всички клонирани подмодули ще ползват следящите си клони" -#: builtin/clone.c:152 +#: builtin/clone.c:156 msgid "initialize sparse-checkout file to include only files at root" msgstr "" "инициализиране на файла за частично изтегляне („.git/info/sparse-checkout“) " "да съдържа само файловете в основната директория" -#: builtin/clone.c:288 +#: builtin/clone.c:292 msgid "" "No directory name could be guessed.\n" "Please specify a directory on the command line" @@ -13223,207 +13390,207 @@ msgstr "" "Името на директорията не може да бъде отгатнато.\n" "Задайте директорията изрично на командния ред" -#: builtin/clone.c:341 +#: builtin/clone.c:345 #, c-format msgid "info: Could not add alternate for '%s': %s\n" msgstr "" "ПРЕДУПРЕЖДЕНИЕ: не може да се добави алтернативен източник на „%s“: %s\n" -#: builtin/clone.c:414 +#: builtin/clone.c:418 #, c-format msgid "%s exists and is not a directory" msgstr "„%s“ съществува и не е директория" -#: builtin/clone.c:432 +#: builtin/clone.c:436 #, c-format msgid "failed to start iterator over '%s'" msgstr "неуспешно итериране по „%s“" -#: builtin/clone.c:463 +#: builtin/clone.c:467 #, c-format msgid "failed to create link '%s'" msgstr "връзката „%s“ не може да бъде създадена" -#: builtin/clone.c:467 +#: builtin/clone.c:471 #, c-format msgid "failed to copy file to '%s'" msgstr "файлът не може да бъде копиран като „%s“" -#: builtin/clone.c:472 +#: builtin/clone.c:476 #, c-format msgid "failed to iterate over '%s'" msgstr "неуспешно итериране по „%s“" -#: builtin/clone.c:499 +#: builtin/clone.c:503 #, c-format msgid "done.\n" msgstr "действието завърши.\n" -#: builtin/clone.c:513 +#: builtin/clone.c:517 msgid "" "Clone succeeded, but checkout failed.\n" "You can inspect what was checked out with 'git status'\n" "and retry with 'git restore --source=HEAD :/'\n" msgstr "" "Клонирането бе успешно за разлика от подготовката на работното дърво\n" -"за определен клон. Все пак можете да проверите кои файлове и от кой\n" -"клон в момента са изтеглени с командата „git status“. Можете да\n" +"за определен клон. Все пак може да проверите кои файлове и от кой\n" +"клон в момента са изтеглени с командата „git status“. Може да\n" "завършите изтеглянето на клона с командата:\n" "\n" " git restore --source=HEAD :/\n" -#: builtin/clone.c:590 +#: builtin/clone.c:594 #, c-format msgid "Could not find remote branch %s to clone." msgstr "" "Клонът „%s“ от отдалеченото хранилище, което клонирате,\n" "и който следва да бъде изтеглен, не съществува." -#: builtin/clone.c:709 +#: builtin/clone.c:713 #, c-format msgid "unable to update %s" msgstr "обектът „%s“ не може да бъде обновен" -#: builtin/clone.c:757 +#: builtin/clone.c:761 msgid "failed to initialize sparse-checkout" msgstr "частичното изтегляне не може да се инициализира" -#: builtin/clone.c:780 +#: builtin/clone.c:784 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "" "указателят „HEAD“ от отдалеченото хранилище сочи към нещо,\n" "което не съществува. Не може да се изтегли определен клон.\n" -#: builtin/clone.c:812 +#: builtin/clone.c:816 msgid "unable to checkout working tree" msgstr "работното дърво не може да бъде подготвено" -#: builtin/clone.c:887 +#: builtin/clone.c:894 msgid "unable to write parameters to config file" -msgstr "настройките не могат да бъдат записани в конфигурационния файл" +msgstr "настройките не може да бъдат записани в конфигурационния файл" -#: builtin/clone.c:950 +#: builtin/clone.c:957 msgid "cannot repack to clean up" msgstr "не може да се извърши пакетиране за изчистване на файловете" -#: builtin/clone.c:952 +#: builtin/clone.c:959 msgid "cannot unlink temporary alternates file" msgstr "временният файл за алтернативни обекти не може да бъде изтрит" -#: builtin/clone.c:993 builtin/receive-pack.c:2493 +#: builtin/clone.c:1001 builtin/receive-pack.c:2491 msgid "Too many arguments." msgstr "Прекалено много аргументи." -#: builtin/clone.c:997 +#: builtin/clone.c:1005 msgid "You must specify a repository to clone." msgstr "Трябва да укажете кое хранилище искате да клонирате." -#: builtin/clone.c:1010 +#: builtin/clone.c:1018 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "опциите „--bare“ и „--origin %s“ са несъвместими." -#: builtin/clone.c:1013 +#: builtin/clone.c:1021 msgid "--bare and --separate-git-dir are incompatible." msgstr "опциите „--bare“ и „--separate-git-dir“ са несъвместими." -#: builtin/clone.c:1026 +#: builtin/clone.c:1035 #, c-format msgid "repository '%s' does not exist" msgstr "не съществува хранилище „%s“" -#: builtin/clone.c:1030 builtin/fetch.c:1951 +#: builtin/clone.c:1039 builtin/fetch.c:2011 #, c-format msgid "depth %s is not a positive number" msgstr "дълбочината трябва да е положително цяло число, а не „%s“" -#: builtin/clone.c:1040 +#: builtin/clone.c:1049 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "целевият път „%s“ съществува и не е празна директория." -#: builtin/clone.c:1046 +#: builtin/clone.c:1055 #, c-format msgid "repository path '%s' already exists and is not an empty directory." msgstr "пътят в хранилището „%s“ съществува и не е празна директория." -#: builtin/clone.c:1060 +#: builtin/clone.c:1069 #, c-format msgid "working tree '%s' already exists." msgstr "в „%s“ вече съществува работно дърво." -#: builtin/clone.c:1075 builtin/clone.c:1096 builtin/difftool.c:271 -#: builtin/log.c:1986 builtin/worktree.c:282 builtin/worktree.c:314 +#: builtin/clone.c:1084 builtin/clone.c:1105 builtin/difftool.c:272 +#: builtin/log.c:1995 builtin/worktree.c:282 builtin/worktree.c:314 #, c-format msgid "could not create leading directories of '%s'" -msgstr "родителските директории на „%s“ не могат да бъдат създадени" +msgstr "родителските директории на „%s“ не може да бъдат създадени" -#: builtin/clone.c:1080 +#: builtin/clone.c:1089 #, c-format msgid "could not create work tree dir '%s'" msgstr "работното дърво в „%s“ не може да бъде създадено." -#: builtin/clone.c:1100 +#: builtin/clone.c:1109 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Клониране и създаване на голо хранилище в „%s“…\n" -#: builtin/clone.c:1102 +#: builtin/clone.c:1111 #, c-format msgid "Cloning into '%s'...\n" msgstr "Клониране и създаване на хранилище в „%s“…\n" -#: builtin/clone.c:1126 +#: builtin/clone.c:1135 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" msgstr "" -"Опцията „--recursive“ е несъвместима с опциите „--reference“ и „--reference-" +"опцията „--recursive“ е несъвместима с опциите „--reference“ и „--reference-" "if-able“" -#: builtin/clone.c:1170 builtin/remote.c:200 builtin/remote.c:705 +#: builtin/clone.c:1188 builtin/remote.c:200 builtin/remote.c:705 #, c-format msgid "'%s' is not a valid remote name" msgstr "„%s“ е неправилно име за отдалечено хранилище" -#: builtin/clone.c:1211 +#: builtin/clone.c:1229 msgid "--depth is ignored in local clones; use file:// instead." msgstr "" "При локално клониране опцията „--depth“ се прескача. Ползвайте схемата " "„file://“." -#: builtin/clone.c:1213 +#: builtin/clone.c:1231 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "" "При локално клониране опцията „--shallow-since“ се прескача. Ползвайте " "схемата „file://“." -#: builtin/clone.c:1215 +#: builtin/clone.c:1233 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" "При локално клониране опцията „--shallow-exclude“ се прескача. Ползвайте " "схемата „file://“." -#: builtin/clone.c:1217 +#: builtin/clone.c:1235 msgid "--filter is ignored in local clones; use file:// instead." msgstr "" "При локално клониране опцията „--filter“ се прескача. Ползвайте схемата " "„file://“." -#: builtin/clone.c:1220 +#: builtin/clone.c:1240 msgid "source repository is shallow, ignoring --local" msgstr "клонираното хранилище е плитко, затова опцията „--local“ се прескача" -#: builtin/clone.c:1225 +#: builtin/clone.c:1245 msgid "--local is ignored" msgstr "опцията „--local“ се прескача" -#: builtin/clone.c:1315 builtin/clone.c:1323 +#: builtin/clone.c:1337 builtin/clone.c:1345 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Отдалеченият клон „%s“ липсва в клонираното хранилище „%s“" -#: builtin/clone.c:1326 +#: builtin/clone.c:1348 msgid "You appear to have cloned an empty repository." msgstr "Изглежда клонирахте празно хранилище." @@ -13440,20 +13607,20 @@ msgid "layout to use" msgstr "как да се подреди резултата" #: builtin/column.c:30 -msgid "Maximum width" -msgstr "Максимална широчина" +msgid "maximum width" +msgstr "максимална широчина" #: builtin/column.c:31 -msgid "Padding space on left border" -msgstr "Поле в знаци отляво" +msgid "padding space on left border" +msgstr "поле в знаци отляво" #: builtin/column.c:32 -msgid "Padding space on right border" -msgstr "Поле в знаци отдясно" +msgid "padding space on right border" +msgstr "поле в знаци отдясно" #: builtin/column.c:33 -msgid "Padding space between columns" -msgstr "Поле в знаци между колоните" +msgid "padding space between columns" +msgstr "поле в знаци между колоните" #: builtin/column.c:51 msgid "--command must be the first argument" @@ -13482,7 +13649,7 @@ msgid "could not find object directory matching %s" msgstr "директорията с обекти, която отговаря на „%s“, не може да бъде открита" #: builtin/commit-graph.c:80 builtin/commit-graph.c:210 -#: builtin/commit-graph.c:316 builtin/fetch.c:187 builtin/log.c:1768 +#: builtin/commit-graph.c:316 builtin/fetch.c:191 builtin/log.c:1776 msgid "dir" msgstr "директория" @@ -13582,7 +13749,7 @@ msgstr "" msgid "duplicate parent %s ignored" msgstr "прескачане на повтарящ се родител: „%s“" -#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:557 +#: builtin/commit-tree.c:56 builtin/commit-tree.c:136 builtin/log.c:559 #, c-format msgid "not a valid object name %s" msgstr "неправилно име на обект: „%s“" @@ -13610,13 +13777,13 @@ msgstr "родител" msgid "id of a parent commit object" msgstr "ИДЕНТИФИКАТОР на обекта за подаването-родител" -#: builtin/commit-tree.c:114 builtin/commit.c:1504 builtin/merge.c:282 -#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1537 -#: builtin/tag.c:445 +#: builtin/commit-tree.c:114 builtin/commit.c:1614 builtin/merge.c:282 +#: builtin/notes.c:409 builtin/notes.c:575 builtin/stash.c:1605 +#: builtin/tag.c:456 msgid "message" msgstr "СЪОБЩЕНИЕ" -#: builtin/commit-tree.c:115 builtin/commit.c:1504 +#: builtin/commit-tree.c:115 builtin/commit.c:1614 msgid "commit message" msgstr "СЪОБЩЕНИЕ при подаване" @@ -13624,7 +13791,7 @@ msgstr "СЪОБЩЕНИЕ при подаване" msgid "read commit log message from file" msgstr "изчитане на съобщението за подаване от ФАЙЛ" -#: builtin/commit-tree.c:121 builtin/commit.c:1516 builtin/merge.c:299 +#: builtin/commit-tree.c:121 builtin/commit.c:1631 builtin/merge.c:299 #: builtin/pull.c:176 builtin/revert.c:118 msgid "GPG sign commit" msgstr "подписване на подаването с GPG" @@ -13652,7 +13819,7 @@ msgid "" "remove the commit entirely with \"git reset HEAD^\".\n" msgstr "" "Поискахте да поправите последното си подаване. Това действие ще превърне\n" -"подаването в празно. Можете или да го повторите като разрешите такива " +"подаването в празно. Може или да го повторите като разрешите такива " "подавания\n" "с опцията „--allow-empty“, или да го изтриете от историята с командата:\n" "„git reset HEAD^“.\n" @@ -13708,73 +13875,73 @@ msgstr "" " git cherry-pick --skip\n" "\n" -#: builtin/commit.c:312 +#: builtin/commit.c:324 msgid "failed to unpack HEAD tree object" msgstr "върховото дърво (HEAD tree object) не може да бъде извадено от пакет" -#: builtin/commit.c:348 +#: builtin/commit.c:360 msgid "--pathspec-from-file with -a does not make sense" msgstr "опциите „-a“ и „--pathspec-from-file“ са несъвместими" -#: builtin/commit.c:361 +#: builtin/commit.c:374 msgid "No paths with --include/--only does not make sense." -msgstr "Опциите „--include“ и „--only“ изискват аргументи." +msgstr "опциите „--include“ и „--only“ изискват аргументи." -#: builtin/commit.c:373 +#: builtin/commit.c:386 msgid "unable to create temporary index" msgstr "временният индекс не може да бъде създаден" -#: builtin/commit.c:382 +#: builtin/commit.c:395 msgid "interactive add failed" msgstr "неуспешно интерактивно добавяне" -#: builtin/commit.c:397 +#: builtin/commit.c:410 msgid "unable to update temporary index" msgstr "временният индекс не може да бъде обновен" -#: builtin/commit.c:399 +#: builtin/commit.c:412 msgid "Failed to update main cache tree" msgstr "Дървото на основния кеш не може да бъде обновено" -#: builtin/commit.c:424 builtin/commit.c:447 builtin/commit.c:495 +#: builtin/commit.c:437 builtin/commit.c:460 builtin/commit.c:508 msgid "unable to write new_index file" msgstr "новият индекс не може да бъде записан" -#: builtin/commit.c:476 +#: builtin/commit.c:489 msgid "cannot do a partial commit during a merge." msgstr "по време на сливане не може да се извърши частично подаване." -#: builtin/commit.c:478 +#: builtin/commit.c:491 msgid "cannot do a partial commit during a cherry-pick." msgstr "по време на отбиране не може да се извърши частично подаване." -#: builtin/commit.c:480 +#: builtin/commit.c:493 msgid "cannot do a partial commit during a rebase." msgstr "по време на пребазиране не може да се извърши частично подаване." -#: builtin/commit.c:488 +#: builtin/commit.c:501 msgid "cannot read the index" msgstr "индексът не може да бъде прочетен" -#: builtin/commit.c:507 +#: builtin/commit.c:520 msgid "unable to write temporary index file" msgstr "временният индекс не може да бъде записан" -#: builtin/commit.c:605 +#: builtin/commit.c:618 #, c-format msgid "commit '%s' lacks author header" msgstr "заглавната част за автор в подаването „%s“ липсва" -#: builtin/commit.c:607 +#: builtin/commit.c:620 #, c-format msgid "commit '%s' has malformed author line" msgstr "заглавната част за автор в подаването „%s“ е неправилна" -#: builtin/commit.c:626 +#: builtin/commit.c:639 msgid "malformed --author parameter" msgstr "неправилен параметър към опцията „--author“" -#: builtin/commit.c:679 +#: builtin/commit.c:692 msgid "" "unable to select a comment character that is not used\n" "in the current commit message" @@ -13782,38 +13949,43 @@ msgstr "" "не може да се избере знак за коментар — в текущото съобщение за подаване са " "използвани всички подобни знаци" -#: builtin/commit.c:717 builtin/commit.c:750 builtin/commit.c:1097 +#: builtin/commit.c:746 builtin/commit.c:780 builtin/commit.c:1158 #, c-format msgid "could not lookup commit %s" msgstr "следното подаване не може да бъде открито: %s" -#: builtin/commit.c:729 builtin/shortlog.c:413 +#: builtin/commit.c:758 builtin/shortlog.c:413 #, c-format msgid "(reading log message from standard input)\n" msgstr "(изчитане на съобщението за подаване от стандартния вход)\n" -#: builtin/commit.c:731 +#: builtin/commit.c:760 msgid "could not read log from standard input" msgstr "съобщението за подаване не бе прочетено стандартния вход" -#: builtin/commit.c:735 +#: builtin/commit.c:764 #, c-format msgid "could not read log file '%s'" msgstr "файлът със съобщението за подаване „%s“ не може да бъде прочетен" -#: builtin/commit.c:766 builtin/commit.c:782 +#: builtin/commit.c:801 +#, c-format +msgid "cannot combine -m with --fixup:%s" +msgstr "опциите „-m“ и „--fixup“ са несъвместими:%s" + +#: builtin/commit.c:813 builtin/commit.c:829 msgid "could not read SQUASH_MSG" msgstr "съобщението за вкарване SQUASH_MSG не може да бъде прочетено" -#: builtin/commit.c:773 +#: builtin/commit.c:820 msgid "could not read MERGE_MSG" msgstr "съобщението за сливане MERGE_MSG не може да бъде прочетено" -#: builtin/commit.c:833 +#: builtin/commit.c:880 msgid "could not write commit template" msgstr "шаблонът за подаване не може да бъде запазен" -#: builtin/commit.c:853 +#: builtin/commit.c:900 msgid "" "\n" "It looks like you may be committing a merge.\n" @@ -13828,7 +14000,7 @@ msgstr "" " git update-ref -d MERGE_HEAD\n" "и опитайте отново.\n" -#: builtin/commit.c:858 +#: builtin/commit.c:905 msgid "" "\n" "It looks like you may be committing a cherry-pick.\n" @@ -13843,7 +14015,7 @@ msgstr "" " git update-ref -d CHERRY_PICK_HEAD\n" "и опитайте отново.\n" -#: builtin/commit.c:868 +#: builtin/commit.c:915 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -13852,7 +14024,7 @@ msgstr "" "Въведете съобщението за подаване на промените. Редовете, които започват\n" "с „%c“, ще бъдат пропуснати, а празно съобщение преустановява подаването.\n" -#: builtin/commit.c:876 +#: builtin/commit.c:923 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -13863,151 +14035,186 @@ msgstr "" "с „%c“, също ще бъдат включени — може да ги изтриете вие. Празно \n" "съобщение преустановява подаването.\n" -#: builtin/commit.c:893 +#: builtin/commit.c:940 #, c-format msgid "%sAuthor: %.*s <%.*s>" msgstr "%sАвтор: %.*s <%.*s>" -#: builtin/commit.c:901 +#: builtin/commit.c:948 #, c-format msgid "%sDate: %s" msgstr "%sДата: %s" -#: builtin/commit.c:908 +#: builtin/commit.c:955 #, c-format msgid "%sCommitter: %.*s <%.*s>" msgstr "%sПодаващ: %.*s <%.*s>" -#: builtin/commit.c:926 +#: builtin/commit.c:973 msgid "Cannot read index" msgstr "Индексът не може да бъде прочетен" -#: builtin/commit.c:997 +#: builtin/commit.c:1018 +msgid "unable to pass trailers to --trailers" +msgstr "епилогът не може да се подаде на „--trailers“" + +#: builtin/commit.c:1058 msgid "Error building trees" msgstr "Грешка при изграждане на дърветата" -#: builtin/commit.c:1011 builtin/tag.c:308 +#: builtin/commit.c:1072 builtin/tag.c:319 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Подайте съобщението с някоя от опциите „-m“ или „-F“.\n" -#: builtin/commit.c:1055 +#: builtin/commit.c:1116 #, c-format msgid "--author '%s' is not 'Name <email>' and matches no existing author" msgstr "" -"Опцията „--author '%s'“ не отговаря на форма̀та „Име <е-поща>“ и не съвпада с " +"опцията „--author '%s'“ не отговаря на форма̀та „Име <е-поща>“ и не съвпада с " "никой автор" -#: builtin/commit.c:1069 +#: builtin/commit.c:1130 #, c-format msgid "Invalid ignored mode '%s'" msgstr "Неправилен режим за игнорираните файлове: „%s“" -#: builtin/commit.c:1087 builtin/commit.c:1331 +#: builtin/commit.c:1148 builtin/commit.c:1441 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Неправилен режим за неследените файлове: „%s“" -#: builtin/commit.c:1127 +#: builtin/commit.c:1188 msgid "--long and -z are incompatible" -msgstr "Опциите „--long“ и „-z“ са несъвместими." +msgstr "опциите „--long“ и „-z“ са несъвместими." + +#: builtin/commit.c:1219 +msgid "You are in the middle of a merge -- cannot reword." +msgstr "" +"В момента се извършва сливане, не може да промените съобщение при подаване." -#: builtin/commit.c:1171 +#: builtin/commit.c:1221 +msgid "You are in the middle of a cherry-pick -- cannot reword." +msgstr "" +"В момента се извършва отбиране на подаване, не може да промените съобщение " +"при подаване." + +#: builtin/commit.c:1224 +#, c-format +msgid "cannot combine reword option of --fixup with path '%s'" +msgstr "" +"опцията за промяна на съобщението на „--fixup“ и указването на път „%s“ са " +"несъвместими" + +#: builtin/commit.c:1226 +msgid "" +"reword option of --fixup is mutually exclusive with --patch/--interactive/--" +"all/--include/--only" +msgstr "" +"опцията за промяна на съобщението на „--fixup“ и „--patch“/„--interactive“/" +"„--all“/„--include“/„--only“ са несъвместими" + +#: builtin/commit.c:1245 msgid "Using both --reset-author and --author does not make sense" -msgstr "Опциите „--reset-author“ и „--author“ са несъвместими." +msgstr "опциите „--reset-author“ и „--author“ са несъвместими." -#: builtin/commit.c:1180 +#: builtin/commit.c:1254 msgid "You have nothing to amend." msgstr "Няма какво да бъде поправено." -#: builtin/commit.c:1183 +#: builtin/commit.c:1257 msgid "You are in the middle of a merge -- cannot amend." -msgstr "В момента се извършва сливане, не можете да поправяте." +msgstr "В момента се извършва сливане, не може да поправяте." -#: builtin/commit.c:1185 +#: builtin/commit.c:1259 msgid "You are in the middle of a cherry-pick -- cannot amend." -msgstr "В момента се извършва отбиране на подаване, не можете да поправяте." +msgstr "В момента се извършва отбиране на подаване, не може да поправяте." -#: builtin/commit.c:1187 +#: builtin/commit.c:1261 msgid "You are in the middle of a rebase -- cannot amend." -msgstr "В момента се извършва пребазиране, не можете да поправяте." +msgstr "В момента се извършва пребазиране, не може да поправяте." -#: builtin/commit.c:1190 +#: builtin/commit.c:1264 msgid "Options --squash and --fixup cannot be used together" -msgstr "Опциите „--squash“ и „--fixup“ са несъвместими." +msgstr "опциите „--squash“ и „--fixup“ са несъвместими." -#: builtin/commit.c:1200 +#: builtin/commit.c:1274 msgid "Only one of -c/-C/-F/--fixup can be used." -msgstr "Опциите „-c“, „-C“, „-F“ и „--fixup““ са несъвместими." +msgstr "опциите „-c“, „-C“, „-F“ и „--fixup““ са несъвместими." -#: builtin/commit.c:1202 +#: builtin/commit.c:1276 msgid "Option -m cannot be combined with -c/-C/-F." -msgstr "Опцията „-m“ е несъвместима с „-c“, „-C“ и „-F“." +msgstr "опцията „-m“ е несъвместима с „-c“, „-C“ и „-F“." -#: builtin/commit.c:1211 +#: builtin/commit.c:1285 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" -"Опцията „--reset-author“ може да се използва само заедно с „-C“, „-c“ или\n" +"опцията „--reset-author“ може да се използва само заедно с „-C“, „-c“ или\n" "„--amend“." -#: builtin/commit.c:1229 +#: builtin/commit.c:1303 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" -"Опциите „--include“, „--only“, „--all“, „--interactive“ и „--patch“ са\n" +"опциите „--include“, „--only“, „--all“, „--interactive“ и „--patch“ са\n" "несъвместими." -#: builtin/commit.c:1235 +#: builtin/commit.c:1331 +#, c-format +msgid "unknown option: --fixup=%s:%s" +msgstr "непозната опция: --fixup=%s:%s" + +#: builtin/commit.c:1345 #, c-format msgid "paths '%s ...' with -a does not make sense" msgstr "опцията „-a“ е несъвместима със задаването на пътища: „%s…“" -#: builtin/commit.c:1366 builtin/commit.c:1527 +#: builtin/commit.c:1476 builtin/commit.c:1642 msgid "show status concisely" msgstr "кратка информация за състоянието" -#: builtin/commit.c:1368 builtin/commit.c:1529 +#: builtin/commit.c:1478 builtin/commit.c:1644 msgid "show branch information" msgstr "информация за клоните" -#: builtin/commit.c:1370 +#: builtin/commit.c:1480 msgid "show stash information" msgstr "информация за скатаното" -#: builtin/commit.c:1372 builtin/commit.c:1531 +#: builtin/commit.c:1482 builtin/commit.c:1646 msgid "compute full ahead/behind values" msgstr "изчисляване на точните стойности напред/назад" -#: builtin/commit.c:1374 +#: builtin/commit.c:1484 msgid "version" msgstr "версия" -#: builtin/commit.c:1374 builtin/commit.c:1533 builtin/push.c:560 -#: builtin/worktree.c:679 +#: builtin/commit.c:1484 builtin/commit.c:1648 builtin/push.c:560 +#: builtin/worktree.c:681 msgid "machine-readable output" msgstr "формат на изхода за четене от програма" -#: builtin/commit.c:1377 builtin/commit.c:1535 +#: builtin/commit.c:1487 builtin/commit.c:1650 msgid "show status in long format (default)" msgstr "подробна информация за състоянието (стандартно)" -#: builtin/commit.c:1380 builtin/commit.c:1538 +#: builtin/commit.c:1490 builtin/commit.c:1653 msgid "terminate entries with NUL" msgstr "разделяне на елементите с нулевия знак „NUL“" -#: builtin/commit.c:1382 builtin/commit.c:1386 builtin/commit.c:1541 +#: builtin/commit.c:1492 builtin/commit.c:1496 builtin/commit.c:1656 #: builtin/fast-export.c:1198 builtin/fast-export.c:1201 -#: builtin/fast-export.c:1204 builtin/rebase.c:1412 parse-options.h:336 +#: builtin/fast-export.c:1204 builtin/rebase.c:1407 parse-options.h:337 msgid "mode" msgstr "РЕЖИМ" -#: builtin/commit.c:1383 builtin/commit.c:1541 +#: builtin/commit.c:1493 builtin/commit.c:1656 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "извеждане на неследените файлове. Възможните РЕЖИМи са „all“ (подробна " "информация), „normal“ (кратка информация), „no“ (без неследените файлове). " "Стандартният РЕЖИМ е: „all“." -#: builtin/commit.c:1387 +#: builtin/commit.c:1497 msgid "" "show ignored files, optional modes: traditional, matching, no. (Default: " "traditional)" @@ -14016,11 +14223,11 @@ msgstr "" "„traditional“ (традиционен), „matching“ (напасващи), „no“ (без игнорираните " "файлове). Стандартният РЕЖИМ е: „traditional“." -#: builtin/commit.c:1389 parse-options.h:192 +#: builtin/commit.c:1499 parse-options.h:193 msgid "when" msgstr "КОГА" -#: builtin/commit.c:1390 +#: builtin/commit.c:1500 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -14029,176 +14236,197 @@ msgstr "" "една от „all“ (всички), „dirty“ (тези с неподадени промени), " "„untracked“ (неследени)" -#: builtin/commit.c:1392 +#: builtin/commit.c:1502 msgid "list untracked files in columns" msgstr "извеждане на неследените файлове в колони" -#: builtin/commit.c:1393 +#: builtin/commit.c:1503 msgid "do not detect renames" msgstr "без засичане на преименуванията" -#: builtin/commit.c:1395 +#: builtin/commit.c:1505 msgid "detect renames, optionally set similarity index" msgstr "засичане на преименуванията, може да се зададе коефициент на прилика" -#: builtin/commit.c:1415 +#: builtin/commit.c:1525 msgid "Unsupported combination of ignored and untracked-files arguments" msgstr "Неподдържана комбинация от аргументи за игнорирани и неследени файлове" -#: builtin/commit.c:1497 +#: builtin/commit.c:1607 msgid "suppress summary after successful commit" msgstr "без информация след успешно подаване" -#: builtin/commit.c:1498 +#: builtin/commit.c:1608 msgid "show diff in commit message template" msgstr "добавяне на разликата към шаблона за съобщението при подаване" -#: builtin/commit.c:1500 +#: builtin/commit.c:1610 msgid "Commit message options" msgstr "Опции за съобщението при подаване" -#: builtin/commit.c:1501 builtin/merge.c:286 builtin/tag.c:447 +#: builtin/commit.c:1611 builtin/merge.c:286 builtin/tag.c:458 msgid "read message from file" msgstr "взимане на съобщението от ФАЙЛ" -#: builtin/commit.c:1502 +#: builtin/commit.c:1612 msgid "author" msgstr "АВТОР" -#: builtin/commit.c:1502 +#: builtin/commit.c:1612 msgid "override author for commit" msgstr "задаване на АВТОР за подаването" -#: builtin/commit.c:1503 builtin/gc.c:550 +#: builtin/commit.c:1613 builtin/gc.c:550 msgid "date" msgstr "ДАТА" -#: builtin/commit.c:1503 +#: builtin/commit.c:1613 msgid "override date for commit" msgstr "задаване на ДАТА за подаването" -#: builtin/commit.c:1505 builtin/commit.c:1506 builtin/commit.c:1507 -#: builtin/commit.c:1508 parse-options.h:328 ref-filter.h:90 +#: builtin/commit.c:1615 builtin/commit.c:1616 builtin/commit.c:1622 +#: parse-options.h:329 ref-filter.h:90 msgid "commit" msgstr "ПОДАВАНЕ" -#: builtin/commit.c:1505 +#: builtin/commit.c:1615 msgid "reuse and edit message from specified commit" msgstr "преизползване и редактиране на съобщението от указаното ПОДАВАНЕ" -#: builtin/commit.c:1506 +#: builtin/commit.c:1616 msgid "reuse message from specified commit" msgstr "преизползване на съобщението от указаното ПОДАВАНЕ" -#: builtin/commit.c:1507 -msgid "use autosquash formatted message to fixup specified commit" +#. TRANSLATORS: Leave "[(amend|reword):]" as-is, +#. and only translate <commit>. +#. +#: builtin/commit.c:1621 +msgid "[(amend|reword):]commit" +msgstr "[(amend|reword):]подаване" + +#: builtin/commit.c:1621 +msgid "" +"use autosquash formatted message to fixup or amend/reword specified commit" msgstr "" "използване на автоматичното съобщение за вкарване на указаното ПОДАВАНЕ в " -"предходното без следа" +"предходното без следа или за промяна на подаването или съобщението" -#: builtin/commit.c:1508 +#: builtin/commit.c:1622 msgid "use autosquash formatted message to squash specified commit" msgstr "" "използване на автоматичното съобщение за вкарване на указаното ПОДАВАНЕ в " "предното" -#: builtin/commit.c:1509 +#: builtin/commit.c:1623 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "" "смяна на автора да съвпада с подаващия (използва се с „-C“/„-c“/„--amend“)" -#: builtin/commit.c:1510 builtin/log.c:1743 builtin/merge.c:302 +#: builtin/commit.c:1624 builtin/interpret-trailers.c:111 +msgid "trailer" +msgstr "епилог" + +#: builtin/commit.c:1624 +msgid "add custom trailer(s)" +msgstr "добовяне на друг епилог" + +#: builtin/commit.c:1625 builtin/log.c:1751 builtin/merge.c:302 #: builtin/pull.c:145 builtin/revert.c:110 msgid "add a Signed-off-by trailer" msgstr "добавяне на епилог за подпис „Signed-off-by“" -#: builtin/commit.c:1511 +#: builtin/commit.c:1626 msgid "use specified template file" msgstr "използване на указания шаблонен ФАЙЛ" -#: builtin/commit.c:1512 +#: builtin/commit.c:1627 msgid "force edit of commit" msgstr "редактиране на подаване" -#: builtin/commit.c:1514 +#: builtin/commit.c:1629 msgid "include status in commit message template" msgstr "вмъкване на състоянието в шаблона за съобщението при подаване" -#: builtin/commit.c:1519 +#: builtin/commit.c:1634 msgid "Commit contents options" msgstr "Опции за избор на файлове при подаване" -#: builtin/commit.c:1520 +#: builtin/commit.c:1635 msgid "commit all changed files" msgstr "подаване на всички променени файлове" -#: builtin/commit.c:1521 +#: builtin/commit.c:1636 msgid "add specified files to index for commit" msgstr "добавяне на указаните файлове към индекса за подаване" -#: builtin/commit.c:1522 +#: builtin/commit.c:1637 msgid "interactively add files" msgstr "интерактивно добавяне на файлове" -#: builtin/commit.c:1523 +#: builtin/commit.c:1638 msgid "interactively add changes" msgstr "интерактивно добавяне на промени" -#: builtin/commit.c:1524 +#: builtin/commit.c:1639 msgid "commit only specified files" msgstr "подаване само на указаните файлове" -#: builtin/commit.c:1525 +#: builtin/commit.c:1640 msgid "bypass pre-commit and commit-msg hooks" msgstr "" "без изпълнение на куките преди подаване и при промяна на съобщението за " "подаване (pre-commit и commit-msg)" -#: builtin/commit.c:1526 +#: builtin/commit.c:1641 msgid "show what would be committed" msgstr "отпечатване на това, което би било подадено" -#: builtin/commit.c:1539 +#: builtin/commit.c:1654 msgid "amend previous commit" msgstr "поправяне на предишното подаване" -#: builtin/commit.c:1540 +#: builtin/commit.c:1655 msgid "bypass post-rewrite hook" msgstr "без изпълнение на куката след презаписване (post-rewrite)" -#: builtin/commit.c:1547 +#: builtin/commit.c:1662 msgid "ok to record an empty change" msgstr "позволяване на празни подавания" -#: builtin/commit.c:1549 +#: builtin/commit.c:1664 msgid "ok to record a change with an empty message" msgstr "позволяване на подавания с празни съобщения" -#: builtin/commit.c:1622 +#: builtin/commit.c:1737 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Повреден файл за върха за сливането „MERGE_HEAD“ (%s)" -#: builtin/commit.c:1629 +#: builtin/commit.c:1744 msgid "could not read MERGE_MODE" msgstr "режимът на сливане „MERGE_MODE“ не може да бъде прочетен" -#: builtin/commit.c:1650 +#: builtin/commit.c:1765 #, c-format msgid "could not read commit message: %s" msgstr "съобщението за подаване не може да бъде прочетено: %s" -#: builtin/commit.c:1657 +#: builtin/commit.c:1772 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Неизвършване на подаване поради празно съобщение.\n" -#: builtin/commit.c:1662 +#: builtin/commit.c:1777 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Неизвършване на подаване поради нередактирано съобщение.\n" -#: builtin/commit.c:1696 +#: builtin/commit.c:1788 +#, c-format +msgid "Aborting commit due to empty commit message body.\n" +msgstr "Неизвършване на подаване поради празно съобщение.\n" + +#: builtin/commit.c:1824 msgid "" "repository has been updated, but unable to write\n" "new_index file. Check that disk is not full and quota is\n" @@ -14536,7 +14764,7 @@ msgid "" "cannot overwrite multiple values with a single value\n" " Use a regexp, --add or --replace-all to change %s." msgstr "" -"множество стойности не могат да се заменят с една.\n" +"множество стойности не може да се замени с една.\n" "За да промените „%s“, ползвайте регулярен израз или опциите „--add“ и „--" "replace-all“." @@ -14553,7 +14781,7 @@ msgstr "git count-objects [-v] [-H | --human-readable]" msgid "print sizes in human readable format" msgstr "извеждане на размерите на обектите във формат лесно четим от хора" -#: builtin/credential-cache--daemon.c:226 +#: builtin/credential-cache--daemon.c:227 #, c-format msgid "" "The permissions on your socket directory are too loose; other\n" @@ -14563,16 +14791,16 @@ msgid "" msgstr "" "Правата за достъп до директорията за програмните гнезда са прекалено " "свободни —\n" -"другите потребители могат да получат достъп до кешираните ви пароли. За да\n" +"другите потребители може да получат достъп до кешираните ви пароли. За да\n" "коригирате това, изпълнете:\n" "\n" " chmod 0700 %s" -#: builtin/credential-cache--daemon.c:275 +#: builtin/credential-cache--daemon.c:276 msgid "print debugging messages to stderr" msgstr "извеждане на съобщенията за трасиране на стандартната грешка" -#: builtin/credential-cache--daemon.c:315 +#: builtin/credential-cache--daemon.c:316 msgid "credential-cache--daemon unavailable; no unix socket support" msgstr "" "демонът за кеша с идентификациите е недостъпен — липсва поддръжка на гнезда " @@ -14743,7 +14971,7 @@ msgstr "" #: builtin/describe.c:593 msgid "--long is incompatible with --abbrev=0" -msgstr "Опциите „--long“ и „--abbrev=0“ са несъвместими" +msgstr "опциите „--long“ и „--abbrev=0“ са несъвместими" #: builtin/describe.c:622 msgid "No names found, cannot describe anything." @@ -14784,7 +15012,7 @@ msgstr "„%s..%s“: липсва база за сливане" msgid "Not a git repository" msgstr "Не е хранилище на Git" -#: builtin/diff.c:532 builtin/grep.c:682 +#: builtin/diff.c:532 builtin/grep.c:684 #, c-format msgid "invalid object '%s' given." msgstr "зададен е неправилен обект „%s“." @@ -14804,31 +15032,31 @@ msgstr "зададен е неподдържан обект „%s“." msgid "%s...%s: multiple merge bases, using %s" msgstr "%s...%s: много бази за сливане, ще се ползва „%s“" -#: builtin/difftool.c:30 +#: builtin/difftool.c:31 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [ОПЦИЯ…] [ПОДАВАНЕ [ПОДАВАНЕ]] [[--] ПЪТ…]" -#: builtin/difftool.c:260 +#: builtin/difftool.c:261 #, c-format msgid "failed: %d" msgstr "неуспешно действие с изходен код: %d" -#: builtin/difftool.c:302 +#: builtin/difftool.c:303 #, c-format msgid "could not read symlink %s" msgstr "символната връзка „%s“ не може да бъде прочетена" -#: builtin/difftool.c:304 +#: builtin/difftool.c:305 #, c-format msgid "could not read symlink file %s" msgstr "файлът, сочен от символната връзка „%s“, не може да бъде прочетен" -#: builtin/difftool.c:312 +#: builtin/difftool.c:313 #, c-format msgid "could not read object %s for symlink %s" msgstr "обектът „%s“ за символната връзка „%s“ не може да бъде прочетен" -#: builtin/difftool.c:412 +#: builtin/difftool.c:413 msgid "" "combined diff formats('-c' and '--cc') are not supported in\n" "directory diff mode('-d' and '--dir-diff')." @@ -14836,55 +15064,55 @@ msgstr "" "комбинираните формати на разликите („-c“ и „--cc“) не се поддържат\n" "в режима за разлики върху директории („-d“ и „--dir-diff“)." -#: builtin/difftool.c:633 +#: builtin/difftool.c:637 #, c-format msgid "both files modified: '%s' and '%s'." msgstr "и двата файла са променени: „%s“ и „%s“." -#: builtin/difftool.c:635 +#: builtin/difftool.c:639 msgid "working tree file has been left." msgstr "работното дърво е изоставено." -#: builtin/difftool.c:646 +#: builtin/difftool.c:650 #, c-format msgid "temporary files exist in '%s'." msgstr "в „%s“ има временни файлове." -#: builtin/difftool.c:647 +#: builtin/difftool.c:651 msgid "you may want to cleanup or recover these." msgstr "възможно е да ги изчистите или възстановите" -#: builtin/difftool.c:696 +#: builtin/difftool.c:700 msgid "use `diff.guitool` instead of `diff.tool`" msgstr "използвайте „diff.guitool“ вместо „diff.tool“" -#: builtin/difftool.c:698 +#: builtin/difftool.c:702 msgid "perform a full-directory diff" msgstr "разлика по директории" -#: builtin/difftool.c:700 +#: builtin/difftool.c:704 msgid "do not prompt before launching a diff tool" msgstr "стартиране на ПРОГРАМАта за разлики без предупреждение" -#: builtin/difftool.c:705 +#: builtin/difftool.c:709 msgid "use symlinks in dir-diff mode" msgstr "следване на символните връзки при разлика по директории" -#: builtin/difftool.c:706 +#: builtin/difftool.c:710 msgid "tool" msgstr "ПРОГРАМА" -#: builtin/difftool.c:707 +#: builtin/difftool.c:711 msgid "use the specified diff tool" msgstr "използване на указаната ПРОГРАМА" -#: builtin/difftool.c:709 +#: builtin/difftool.c:713 msgid "print a list of diff tools that may be used with `--tool`" msgstr "" "извеждане на списък с всички ПРОГРАМи, които може да се ползват с опцията „--" "tool“" -#: builtin/difftool.c:712 +#: builtin/difftool.c:716 msgid "" "make 'git-difftool' exit when an invoked diff tool returns a non - zero exit " "code" @@ -14892,31 +15120,31 @@ msgstr "" "„git-difftool“ да спре работа, когато стартираната ПРОГРАМА завърши с " "ненулев код" -#: builtin/difftool.c:715 +#: builtin/difftool.c:719 msgid "specify a custom command for viewing diffs" msgstr "команда за разглеждане на разлики" -#: builtin/difftool.c:716 +#: builtin/difftool.c:720 msgid "passed to `diff`" msgstr "подава се към „diff“" -#: builtin/difftool.c:731 +#: builtin/difftool.c:735 msgid "difftool requires worktree or --no-index" msgstr "„git-difftool“ изисква работно дърво или опцията „--no-index“" -#: builtin/difftool.c:738 +#: builtin/difftool.c:742 msgid "--dir-diff is incompatible with --no-index" msgstr "опциите „--dir-diff“ и „--no-index“ са несъвместими" -#: builtin/difftool.c:741 +#: builtin/difftool.c:745 msgid "--gui, --tool and --extcmd are mutually exclusive" msgstr "опциите „--gui“, „--tool“ и „--extcmd“ са несъвместими една с друга" -#: builtin/difftool.c:749 +#: builtin/difftool.c:753 msgid "no <tool> given for --tool=<tool>" msgstr "не е зададена програма за „--tool=ПРОГРАМА“" -#: builtin/difftool.c:756 +#: builtin/difftool.c:760 msgid "no <cmd> given for --extcmd=<cmd>" msgstr "не е зададена команда за „--extcmd=КОМАНДА“" @@ -14996,7 +15224,8 @@ msgstr "внасяне на маркерите от този ФАЙЛ, ако с #: builtin/fast-export.c:1216 msgid "fake a tagger when tags lack one" -msgstr "да се използва изкуствено име на човек при липса на създател на етикета" +msgstr "" +"да се използва изкуствено име на човек при липса на създател на етикета" #: builtin/fast-export.c:1218 msgid "output full tree for each commit" @@ -15010,7 +15239,7 @@ msgstr "използване на маркер за завършване на п msgid "skip output of blob data" msgstr "без извеждане на съдържанието на обектите-BLOB" -#: builtin/fast-export.c:1222 builtin/log.c:1815 +#: builtin/fast-export.c:1222 builtin/log.c:1823 msgid "refspec" msgstr "УКАЗАТЕЛ_НА_ВЕРСИЯ" @@ -15074,7 +15303,7 @@ msgstr "Очаква се команда „to“, а бе получена: „ #: builtin/fast-import.c:3322 msgid "Expected format name:filename for submodule rewrite option" -msgstr "Опцията за презапис на подмодул изисква формат: име:име_на_файл" +msgstr "опцията за презапис на подмодул изисква формат: име:име_на_файл" #: builtin/fast-import.c:3377 #, c-format @@ -15102,98 +15331,104 @@ msgstr "git fetch --multiple [ОПЦИЯ…] [(ХРАНИЛИЩЕ | ГРУПА) msgid "git fetch --all [<options>]" msgstr "git fetch --all [ОПЦИЯ…]" -#: builtin/fetch.c:120 +#: builtin/fetch.c:122 msgid "fetch.parallel cannot be negative" msgstr "опцията „fetch.parallel“ трябва да е неотрицателна" -#: builtin/fetch.c:143 builtin/pull.c:185 +#: builtin/fetch.c:145 builtin/pull.c:185 msgid "fetch from all remotes" msgstr "доставяне от всички отдалечени хранилища" -#: builtin/fetch.c:145 builtin/pull.c:245 +#: builtin/fetch.c:147 builtin/pull.c:245 msgid "set upstream for git pull/fetch" msgstr "задаване на клон за следене за издърпване/доставяне" -#: builtin/fetch.c:147 builtin/pull.c:188 +#: builtin/fetch.c:149 builtin/pull.c:188 msgid "append to .git/FETCH_HEAD instead of overwriting" msgstr "добавяне към „.git/FETCH_HEAD“ вместо замяна" -#: builtin/fetch.c:149 +#: builtin/fetch.c:151 msgid "use atomic transaction to update references" msgstr "изискване на атомарни операции за обновяване на указателите" -#: builtin/fetch.c:151 builtin/pull.c:191 +#: builtin/fetch.c:153 builtin/pull.c:191 msgid "path to upload pack on remote end" msgstr "отдалечен път, където да се качи пакетът" -#: builtin/fetch.c:152 +#: builtin/fetch.c:154 msgid "force overwrite of local reference" msgstr "принудително презаписване на локален указател" -#: builtin/fetch.c:154 +#: builtin/fetch.c:156 msgid "fetch from multiple remotes" msgstr "доставяне от множество отдалечени хранилища" -#: builtin/fetch.c:156 builtin/pull.c:195 +#: builtin/fetch.c:158 builtin/pull.c:195 msgid "fetch all tags and associated objects" msgstr "доставяне на всички етикети и принадлежащи обекти" -#: builtin/fetch.c:158 +#: builtin/fetch.c:160 msgid "do not fetch all tags (--no-tags)" msgstr "без доставянето на всички етикети „--no-tags“" -#: builtin/fetch.c:160 +#: builtin/fetch.c:162 msgid "number of submodules fetched in parallel" msgstr "брой подмодули доставени паралелно" -#: builtin/fetch.c:162 builtin/pull.c:198 +#: builtin/fetch.c:164 +msgid "modify the refspec to place all refs within refs/prefetch/" +msgstr "" +"промяна на указателя, така че и той, както останалите, да бъде в „refs/" +"prefetch/“" + +#: builtin/fetch.c:166 builtin/pull.c:198 msgid "prune remote-tracking branches no longer on remote" msgstr "окастряне на клоните следящи вече несъществуващи отдалечени клони" -#: builtin/fetch.c:164 +#: builtin/fetch.c:168 msgid "prune local tags no longer on remote and clobber changed tags" msgstr "" "окастряне на локалните етикети, които вече не съществуват в отдалеченото " "хранилище и презаписване на променените" -#: builtin/fetch.c:165 builtin/fetch.c:190 builtin/pull.c:122 +#: builtin/fetch.c:169 builtin/fetch.c:194 builtin/pull.c:122 msgid "on-demand" msgstr "ПРИ НУЖДА" -#: builtin/fetch.c:166 +#: builtin/fetch.c:170 msgid "control recursive fetching of submodules" msgstr "управление на рекурсивното доставяне на подмодулите" -#: builtin/fetch.c:171 +#: builtin/fetch.c:175 msgid "write fetched references to the FETCH_HEAD file" msgstr "запазване на доставените указатели във файла „FETCH_HEAD“" -#: builtin/fetch.c:172 builtin/pull.c:206 +#: builtin/fetch.c:176 builtin/pull.c:206 msgid "keep downloaded pack" msgstr "запазване на изтеглените пакети с обекти" -#: builtin/fetch.c:174 +#: builtin/fetch.c:178 msgid "allow updating of HEAD ref" msgstr "позволяване на обновяването на указателя „HEAD“" -#: builtin/fetch.c:177 builtin/fetch.c:183 builtin/pull.c:209 +#: builtin/fetch.c:181 builtin/fetch.c:187 builtin/pull.c:209 #: builtin/pull.c:218 msgid "deepen history of shallow clone" msgstr "задълбочаване на историята на плитко хранилище" -#: builtin/fetch.c:179 builtin/pull.c:212 +#: builtin/fetch.c:183 builtin/pull.c:212 msgid "deepen history of shallow repository based on time" msgstr "задълбочаване на историята на плитко хранилище до определено време" -#: builtin/fetch.c:185 builtin/pull.c:221 +#: builtin/fetch.c:189 builtin/pull.c:221 msgid "convert to a complete repository" msgstr "превръщане в пълно хранилище" -#: builtin/fetch.c:188 +#: builtin/fetch.c:192 msgid "prepend this to submodule path output" msgstr "добавяне на това пред пътя на подмодула" -#: builtin/fetch.c:191 +#: builtin/fetch.c:195 msgid "" "default for recursive fetching of submodules (lower priority than config " "files)" @@ -15201,98 +15436,104 @@ msgstr "" "стандартно рекурсивно изтегляне на подмодулите (файловете с настройки са с " "приоритет)" -#: builtin/fetch.c:195 builtin/pull.c:224 +#: builtin/fetch.c:199 builtin/pull.c:224 msgid "accept refs that update .git/shallow" msgstr "приемане на указатели, които обновяват „.git/shallow“" -#: builtin/fetch.c:196 builtin/pull.c:226 +#: builtin/fetch.c:200 builtin/pull.c:226 msgid "refmap" msgstr "КАРТА_С_УКАЗАТЕЛИ" -#: builtin/fetch.c:197 builtin/pull.c:227 +#: builtin/fetch.c:201 builtin/pull.c:227 msgid "specify fetch refmap" msgstr "указване на КАРТАта_С_УКАЗАТЕЛИ за доставяне" -#: builtin/fetch.c:204 builtin/pull.c:240 +#: builtin/fetch.c:208 builtin/pull.c:240 msgid "report that we have only objects reachable from this object" -msgstr "докладване, че всички обекти могат са достижими при започване от този" +msgstr "докладване, че всички обекти може са достижими при започване от този" + +#: builtin/fetch.c:210 +msgid "do not fetch a packfile; instead, print ancestors of negotiation tips" +msgstr "" +"без доставяне на пакетни файлове, вместо това да се извеждат предшественици " +"на договорните върхове" -#: builtin/fetch.c:207 builtin/fetch.c:209 +#: builtin/fetch.c:213 builtin/fetch.c:215 msgid "run 'maintenance --auto' after fetching" msgstr "изпълняване на „maintenance --auto“ след доставяне" -#: builtin/fetch.c:211 builtin/pull.c:243 +#: builtin/fetch.c:217 builtin/pull.c:243 msgid "check for forced-updates on all updated branches" msgstr "проверка за принудителни обновявания на всички клони" -#: builtin/fetch.c:213 +#: builtin/fetch.c:219 msgid "write the commit-graph after fetching" msgstr "запазване на гра̀фа с подаванията след доставяне" -#: builtin/fetch.c:215 +#: builtin/fetch.c:221 msgid "accept refspecs from stdin" msgstr "четене на указателите от стандартния вход" -#: builtin/fetch.c:526 +#: builtin/fetch.c:586 msgid "Couldn't find remote ref HEAD" msgstr "Указателят „HEAD“ в отдалеченото хранилище не може да бъде открит" -#: builtin/fetch.c:697 +#: builtin/fetch.c:757 #, c-format msgid "configuration fetch.output contains invalid value %s" msgstr "настройката „fetch.output“ е с неправилна стойност „%s“" -#: builtin/fetch.c:796 +#: builtin/fetch.c:856 #, c-format msgid "object %s not found" msgstr "обектът „%s“ липсва" -#: builtin/fetch.c:800 +#: builtin/fetch.c:860 msgid "[up to date]" msgstr "[актуален]" -#: builtin/fetch.c:813 builtin/fetch.c:829 builtin/fetch.c:901 +#: builtin/fetch.c:873 builtin/fetch.c:889 builtin/fetch.c:961 msgid "[rejected]" msgstr "[отхвърлен]" -#: builtin/fetch.c:814 +#: builtin/fetch.c:874 msgid "can't fetch in current branch" msgstr "в текущия клон не може да се доставя" -#: builtin/fetch.c:824 +#: builtin/fetch.c:884 msgid "[tag update]" msgstr "[обновяване на етикетите]" -#: builtin/fetch.c:825 builtin/fetch.c:862 builtin/fetch.c:884 -#: builtin/fetch.c:896 +#: builtin/fetch.c:885 builtin/fetch.c:922 builtin/fetch.c:944 +#: builtin/fetch.c:956 msgid "unable to update local ref" msgstr "локален указател не може да бъде обновен" -#: builtin/fetch.c:829 +#: builtin/fetch.c:889 msgid "would clobber existing tag" msgstr "съществуващ етикет ще бъде презаписан" -#: builtin/fetch.c:851 +#: builtin/fetch.c:911 msgid "[new tag]" msgstr "[нов етикет]" -#: builtin/fetch.c:854 +#: builtin/fetch.c:914 msgid "[new branch]" msgstr "[нов клон]" -#: builtin/fetch.c:857 +#: builtin/fetch.c:917 msgid "[new ref]" msgstr "[нов указател]" -#: builtin/fetch.c:896 +#: builtin/fetch.c:956 msgid "forced update" msgstr "принудително обновяване" -#: builtin/fetch.c:901 +#: builtin/fetch.c:961 msgid "non-fast-forward" msgstr "същинско сливане" -#: builtin/fetch.c:1005 +#: builtin/fetch.c:1065 msgid "" "Fetch normally indicates which branches had a forced update,\n" "but that check has been disabled. To re-enable, use '--show-forced-updates'\n" @@ -15303,7 +15544,7 @@ msgstr "" "\n" " git config fetch.showForcedUpdates true" -#: builtin/fetch.c:1009 +#: builtin/fetch.c:1069 #, c-format msgid "" "It took %.2f seconds to check forced updates. You can use\n" @@ -15317,84 +15558,84 @@ msgstr "" "\n" " git config fetch.showForcedUpdates false\n" -#: builtin/fetch.c:1041 +#: builtin/fetch.c:1101 #, c-format msgid "%s did not send all necessary objects\n" msgstr "хранилището „%s“ не изпрати всички необходими обекти\n" -#: builtin/fetch.c:1069 +#: builtin/fetch.c:1129 #, c-format msgid "reject %s because shallow roots are not allowed to be updated" msgstr "" -"отхвърляне на върха „%s“, защото плитките хранилища не могат да бъдат " +"отхвърляне на върха „%s“, защото плитките хранилища не може да бъдат " "обновявани" -#: builtin/fetch.c:1146 builtin/fetch.c:1297 +#: builtin/fetch.c:1206 builtin/fetch.c:1357 #, c-format msgid "From %.*s\n" msgstr "От %.*s\n" -#: builtin/fetch.c:1168 +#: builtin/fetch.c:1228 #, c-format msgid "" "some local refs could not be updated; try running\n" " 'git remote prune %s' to remove any old, conflicting branches" msgstr "" -"някои локални указатели не могат да бъдат обновени. Изпълнете командата\n" +"някои локални указатели не може да бъдат обновени. Изпълнете командата\n" "„git remote prune %s“, за да премахнете остарелите клони, които\n" "предизвикват конфликта" -#: builtin/fetch.c:1267 +#: builtin/fetch.c:1327 #, c-format msgid " (%s will become dangling)" msgstr " (обектът „%s“ ще се окаже извън клон)" -#: builtin/fetch.c:1268 +#: builtin/fetch.c:1328 #, c-format msgid " (%s has become dangling)" msgstr " (обектът „%s“ вече е извън клон)" -#: builtin/fetch.c:1300 +#: builtin/fetch.c:1360 msgid "[deleted]" msgstr "[изтрит]" -#: builtin/fetch.c:1301 builtin/remote.c:1118 +#: builtin/fetch.c:1361 builtin/remote.c:1118 msgid "(none)" msgstr "(нищо)" -#: builtin/fetch.c:1324 +#: builtin/fetch.c:1384 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" msgstr "Не може да доставите в текущия клон „%s“ на хранилище, което не е голо" -#: builtin/fetch.c:1343 +#: builtin/fetch.c:1403 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" msgstr "Стойността „%2$s“ за опцията „%1$s“ не е съвместима с „%3$s“" -#: builtin/fetch.c:1346 +#: builtin/fetch.c:1406 #, c-format msgid "Option \"%s\" is ignored for %s\n" -msgstr "Опцията „%s“ се прескача при „%s“\n" +msgstr "опцията „%s“ се прескача при „%s“\n" -#: builtin/fetch.c:1558 +#: builtin/fetch.c:1618 msgid "multiple branches detected, incompatible with --set-upstream" msgstr "" "засечени са множество клони, това е несъвместимо с опцията „--set-upstream“" -#: builtin/fetch.c:1573 +#: builtin/fetch.c:1633 msgid "not setting upstream for a remote remote-tracking branch" msgstr "не може да указвате клон за следене на отдалечен етикет" -#: builtin/fetch.c:1575 +#: builtin/fetch.c:1635 msgid "not setting upstream for a remote tag" msgstr "не може да указвате клон за следене на отдалечен етикет" -#: builtin/fetch.c:1577 +#: builtin/fetch.c:1637 msgid "unknown branch type" msgstr "непознат вид клон" -#: builtin/fetch.c:1579 +#: builtin/fetch.c:1639 msgid "" "no source branch found.\n" "you need to specify exactly one branch with the --set-upstream option." @@ -15402,22 +15643,22 @@ msgstr "" "не е открит клон за следене.\n" "Трябва изрично да зададете един клон с опцията „--set-upstream option“." -#: builtin/fetch.c:1708 builtin/fetch.c:1771 +#: builtin/fetch.c:1768 builtin/fetch.c:1831 #, c-format msgid "Fetching %s\n" msgstr "Доставяне на „%s“\n" -#: builtin/fetch.c:1718 builtin/fetch.c:1773 builtin/remote.c:101 +#: builtin/fetch.c:1778 builtin/fetch.c:1833 builtin/remote.c:101 #, c-format msgid "Could not fetch %s" msgstr "„%s“ не може да се достави" -#: builtin/fetch.c:1730 +#: builtin/fetch.c:1790 #, c-format msgid "could not fetch '%s' (exit code: %d)\n" msgstr "„%s“ не може да се достави (изходният код е: %d)\n" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1894 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -15425,45 +15666,52 @@ msgstr "" "Не сте указали отдалечено хранилище. Задайте или адрес, или име\n" "на отдалечено хранилище, откъдето да се доставят новите версии." -#: builtin/fetch.c:1870 +#: builtin/fetch.c:1930 msgid "You need to specify a tag name." msgstr "Трябва да укажете име на етикет." -#: builtin/fetch.c:1935 +#: builtin/fetch.c:1995 msgid "Negative depth in --deepen is not supported" msgstr "Отрицателна дълбочина като аргумент на „--deepen“ не се поддържа" -#: builtin/fetch.c:1937 +#: builtin/fetch.c:1997 msgid "--deepen and --depth are mutually exclusive" msgstr "опциите „--deepen“ и „--depth“ са несъвместими" -#: builtin/fetch.c:1942 +#: builtin/fetch.c:2002 msgid "--depth and --unshallow cannot be used together" msgstr "опциите „--depth“ и „--unshallow“ са несъвместими" -#: builtin/fetch.c:1944 +#: builtin/fetch.c:2004 msgid "--unshallow on a complete repository does not make sense" -msgstr "не можете да използвате опцията „--unshallow“ върху пълно хранилище" +msgstr "не може да използвате опцията „--unshallow“ върху пълно хранилище" -#: builtin/fetch.c:1961 +#: builtin/fetch.c:2021 msgid "fetch --all does not take a repository argument" -msgstr "към „git fetch --all“ не можете да добавите аргумент — хранилище" +msgstr "към „git fetch --all“ не може да добавите аргумент-хранилище" -#: builtin/fetch.c:1963 +#: builtin/fetch.c:2023 msgid "fetch --all does not make sense with refspecs" -msgstr "" -"към „git fetch --all“ не можете да добавите аргумент — указател на версия" +msgstr "към „git fetch --all“ не може да добавите аргумент-указател на версия" -#: builtin/fetch.c:1972 +#: builtin/fetch.c:2032 #, c-format msgid "No such remote or remote group: %s" msgstr "Няма нито отдалечено хранилище, нито група от хранилища на име „%s“" -#: builtin/fetch.c:1979 +#: builtin/fetch.c:2039 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Указването на група и указването на версия са несъвместими" -#: builtin/fetch.c:1997 +#: builtin/fetch.c:2055 +msgid "must supply remote when using --negotiate-only" +msgstr "опцията „--negotiate-only“ изисква хранилище" + +#: builtin/fetch.c:2060 +msgid "Protocol does not support --negotiate-only, exiting." +msgstr "Протоколът не поддържа опцията „--negotiate-only“, изход от прогамата." + +#: builtin/fetch.c:2079 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -15471,12 +15719,12 @@ msgstr "" "опцията „--filter“ може да се ползва само с отдалеченото хранилище указано в " "настройката „extensions.partialClone“" -#: builtin/fetch.c:2001 +#: builtin/fetch.c:2083 msgid "--atomic can only be used when fetching from one remote" msgstr "" "опцията „--atomic“ поддържа доставяне само от едно отдалечено хранилище" -#: builtin/fetch.c:2005 +#: builtin/fetch.c:2087 msgid "--stdin can only be used when fetching from one remote" msgstr "опцията „--stdin“ поддържа доставяне само от едно отдалечено хранилище" @@ -15524,47 +15772,47 @@ msgstr "git for-each-ref [--merged [ПОДАВАНЕ]] [--no-merged [ПОДАВ msgid "git for-each-ref [--contains [<commit>]] [--no-contains [<commit>]]" msgstr "git for-each-ref [--contains [ПОДАВАНЕ]] [--no-contains [ПОДАВАНЕ]]" -#: builtin/for-each-ref.c:28 +#: builtin/for-each-ref.c:30 msgid "quote placeholders suitably for shells" msgstr "цитиране подходящо за командни интерпретатори на обвивката" -#: builtin/for-each-ref.c:30 +#: builtin/for-each-ref.c:32 msgid "quote placeholders suitably for perl" msgstr "цитиране подходящо за perl" -#: builtin/for-each-ref.c:32 +#: builtin/for-each-ref.c:34 msgid "quote placeholders suitably for python" msgstr "цитиране подходящо за python" -#: builtin/for-each-ref.c:34 +#: builtin/for-each-ref.c:36 msgid "quote placeholders suitably for Tcl" msgstr "цитиране подходящо за tcl" -#: builtin/for-each-ref.c:37 +#: builtin/for-each-ref.c:39 msgid "show only <n> matched refs" msgstr "извеждане само на този БРОЙ напаснати указатели" -#: builtin/for-each-ref.c:39 builtin/tag.c:472 +#: builtin/for-each-ref.c:41 builtin/tag.c:483 msgid "respect format colors" msgstr "спазване на цветовете на форма̀та" -#: builtin/for-each-ref.c:42 +#: builtin/for-each-ref.c:44 msgid "print only refs which points at the given object" msgstr "извеждане само на указателите, сочещи към ОБЕКТА" -#: builtin/for-each-ref.c:44 +#: builtin/for-each-ref.c:46 msgid "print only refs that are merged" msgstr "извеждане само на слетите указатели" -#: builtin/for-each-ref.c:45 +#: builtin/for-each-ref.c:47 msgid "print only refs that are not merged" msgstr "извеждане само на неслетите указатели" -#: builtin/for-each-ref.c:46 +#: builtin/for-each-ref.c:48 msgid "print only refs which contain the commit" msgstr "извеждане само на указателите, които съдържат това ПОДАВАНЕ" -#: builtin/for-each-ref.c:47 +#: builtin/for-each-ref.c:49 msgid "print only refs which don't contain the commit" msgstr "извеждане само на указателите, които не съдържат това ПОДАВАНЕ" @@ -15584,32 +15832,32 @@ msgstr "настройка, която съдържа списък с пътищ msgid "missing --config=<config>" msgstr "липсва --config=НАСТРОЙКА" -#: builtin/fsck.c:69 builtin/fsck.c:130 builtin/fsck.c:131 +#: builtin/fsck.c:69 builtin/fsck.c:127 builtin/fsck.c:128 msgid "unknown" msgstr "непознат" #. TRANSLATORS: e.g. error in tree 01bfda: <more explanation> -#: builtin/fsck.c:83 builtin/fsck.c:103 +#: builtin/fsck.c:78 builtin/fsck.c:100 #, c-format msgid "error in %s %s: %s" msgstr "грешка в %s „%s“: %s" #. TRANSLATORS: e.g. warning in tree 01bfda: <more explanation> -#: builtin/fsck.c:97 +#: builtin/fsck.c:94 #, c-format msgid "warning in %s %s: %s" msgstr "предупреждение за %s „%s“: %s" -#: builtin/fsck.c:126 builtin/fsck.c:129 +#: builtin/fsck.c:123 builtin/fsck.c:126 #, c-format msgid "broken link from %7s %s" msgstr "скъсана връзка от %7s %s" -#: builtin/fsck.c:138 +#: builtin/fsck.c:135 msgid "wrong object type in link" msgstr "неправилен вид обект във връзката" -#: builtin/fsck.c:154 +#: builtin/fsck.c:151 #, c-format msgid "" "broken link from %7s %s\n" @@ -15618,212 +15866,212 @@ msgstr "" "скъсана връзка от %7s %s\n" " към %7s %s" -#: builtin/fsck.c:265 +#: builtin/fsck.c:263 #, c-format msgid "missing %s %s" msgstr "липсващ обект: %s „%s“" -#: builtin/fsck.c:292 +#: builtin/fsck.c:290 #, c-format msgid "unreachable %s %s" msgstr "недостижим обект: %s „%s“" -#: builtin/fsck.c:312 +#: builtin/fsck.c:310 #, c-format msgid "dangling %s %s" msgstr "извън клон: %s „%s“" -#: builtin/fsck.c:322 +#: builtin/fsck.c:320 msgid "could not create lost-found" msgstr "„lost-found“ не може да се създаде" -#: builtin/fsck.c:333 +#: builtin/fsck.c:331 #, c-format msgid "could not finish '%s'" msgstr "„%s“ не може да се завърши" -#: builtin/fsck.c:350 +#: builtin/fsck.c:348 #, c-format msgid "Checking %s" msgstr "Проверка на „%s“" -#: builtin/fsck.c:388 +#: builtin/fsck.c:386 #, c-format msgid "Checking connectivity (%d objects)" msgstr "Проверка на свързаността (%d обекта)" -#: builtin/fsck.c:407 +#: builtin/fsck.c:405 #, c-format msgid "Checking %s %s" msgstr "Проверяване на %s „%s“" -#: builtin/fsck.c:412 +#: builtin/fsck.c:410 msgid "broken links" msgstr "скъсани връзки" -#: builtin/fsck.c:421 +#: builtin/fsck.c:419 #, c-format msgid "root %s" msgstr "начална директория „%s“" -#: builtin/fsck.c:429 +#: builtin/fsck.c:427 #, c-format msgid "tagged %s %s (%s) in %s" msgstr "приложен етикет „%s“ върху „%s“ (%s) в „%s“" -#: builtin/fsck.c:458 +#: builtin/fsck.c:456 #, c-format msgid "%s: object corrupt or missing" msgstr "%s: липсващ или повреден обект" -#: builtin/fsck.c:483 +#: builtin/fsck.c:481 #, c-format msgid "%s: invalid reflog entry %s" msgstr "%s: неправилен запис в журнала за указатели „%s“" -#: builtin/fsck.c:497 +#: builtin/fsck.c:495 #, c-format msgid "Checking reflog %s->%s" msgstr "Проверка на журнала на указателите: „%s“ до „%s“" -#: builtin/fsck.c:531 +#: builtin/fsck.c:529 #, c-format msgid "%s: invalid sha1 pointer %s" msgstr "„%s“: неправилен указател за SHA1: „%s“" -#: builtin/fsck.c:538 +#: builtin/fsck.c:536 #, c-format msgid "%s: not a commit" msgstr "%s: не е подаване!" -#: builtin/fsck.c:592 +#: builtin/fsck.c:590 msgid "notice: No default references" msgstr "внимание: няма указатели по подразбиране" -#: builtin/fsck.c:607 +#: builtin/fsck.c:605 #, c-format msgid "%s: object corrupt or missing: %s" msgstr "„%s“: липсващ обект: „%s“" -#: builtin/fsck.c:620 +#: builtin/fsck.c:618 #, c-format msgid "%s: object could not be parsed: %s" msgstr "„%s“: не може да се анализира: „%s“" -#: builtin/fsck.c:640 +#: builtin/fsck.c:638 #, c-format msgid "bad sha1 file: %s" msgstr "неправилен ред с контролна сума по SHA1: „%s“" -#: builtin/fsck.c:655 +#: builtin/fsck.c:653 msgid "Checking object directory" msgstr "Проверка на директория с обекти" -#: builtin/fsck.c:658 +#: builtin/fsck.c:656 msgid "Checking object directories" msgstr "Проверка на директориите с обекти" -#: builtin/fsck.c:673 +#: builtin/fsck.c:671 #, c-format msgid "Checking %s link" msgstr "Проверка на връзките на „%s“" # -#: builtin/fsck.c:678 builtin/index-pack.c:865 +#: builtin/fsck.c:676 builtin/index-pack.c:866 #, c-format msgid "invalid %s" msgstr "неправилен указател „%s“" -#: builtin/fsck.c:685 +#: builtin/fsck.c:683 #, c-format msgid "%s points to something strange (%s)" msgstr "„%s“ сочи към нещо необичайно (%s)" -#: builtin/fsck.c:691 +#: builtin/fsck.c:689 #, c-format msgid "%s: detached HEAD points at nothing" msgstr "%s: несвързаният връх „HEAD“ не сочи към нищо" -#: builtin/fsck.c:695 +#: builtin/fsck.c:693 #, c-format msgid "notice: %s points to an unborn branch (%s)" msgstr "предупреждение: „%s“ сочи към все още несъществуващ клон (%s)" -#: builtin/fsck.c:707 +#: builtin/fsck.c:705 msgid "Checking cache tree" msgstr "Проверка на дървото на кеша" -#: builtin/fsck.c:712 +#: builtin/fsck.c:710 #, c-format msgid "%s: invalid sha1 pointer in cache-tree" msgstr "„%s“: неправилен указател за SHA1 в дървото на кеша" -#: builtin/fsck.c:721 +#: builtin/fsck.c:719 msgid "non-tree in cache-tree" msgstr "в дървото на кеша има нещо, което не е дърво" -#: builtin/fsck.c:752 +#: builtin/fsck.c:750 msgid "git fsck [<options>] [<object>...]" msgstr "git fsck [ОПЦИЯ…] [ОБЕКТ…]" -#: builtin/fsck.c:758 +#: builtin/fsck.c:756 msgid "show unreachable objects" msgstr "показване на недостижимите обекти" -#: builtin/fsck.c:759 +#: builtin/fsck.c:757 msgid "show dangling objects" msgstr "показване на обектите извън клоните" -#: builtin/fsck.c:760 +#: builtin/fsck.c:758 msgid "report tags" msgstr "показване на етикетите" -#: builtin/fsck.c:761 +#: builtin/fsck.c:759 msgid "report root nodes" msgstr "показване на кореновите възли" -#: builtin/fsck.c:762 +#: builtin/fsck.c:760 msgid "make index objects head nodes" msgstr "задаване на обекти от индекса да са коренови" -#: builtin/fsck.c:763 +#: builtin/fsck.c:761 msgid "make reflogs head nodes (default)" msgstr "проследяване и на указателите от журнала с указателите (стандартно)" -#: builtin/fsck.c:764 +#: builtin/fsck.c:762 msgid "also consider packs and alternate objects" msgstr "допълнително да се проверяват пакетите и алтернативните обекти" -#: builtin/fsck.c:765 +#: builtin/fsck.c:763 msgid "check only connectivity" msgstr "проверка само на връзката" -#: builtin/fsck.c:766 builtin/mktag.c:78 +#: builtin/fsck.c:764 builtin/mktag.c:75 msgid "enable more strict checking" msgstr "по-строги проверки" -#: builtin/fsck.c:768 +#: builtin/fsck.c:766 msgid "write dangling objects in .git/lost-found" msgstr "запазване на обектите извън клоните в директорията „.git/lost-found“" -#: builtin/fsck.c:769 builtin/prune.c:134 +#: builtin/fsck.c:767 builtin/prune.c:134 msgid "show progress" msgstr "показване на напредъка" -#: builtin/fsck.c:770 +#: builtin/fsck.c:768 msgid "show verbose names for reachable objects" msgstr "показване на подробни имена на достижимите обекти" -#: builtin/fsck.c:829 builtin/index-pack.c:261 +#: builtin/fsck.c:827 builtin/index-pack.c:262 msgid "Checking objects" msgstr "Проверка на обектите" -#: builtin/fsck.c:857 +#: builtin/fsck.c:855 #, c-format msgid "%s: object missing" msgstr "„%s“: липсващ обект" -#: builtin/fsck.c:868 +#: builtin/fsck.c:866 #, c-format msgid "invalid parameter: expected sha1, got '%s'" msgstr "неправилен параметър: очаква се SHA1, а бе получено: „%s“" @@ -15842,12 +16090,12 @@ msgstr "Неуспешно изпълнение на „fstat“ върху „% msgid "failed to parse '%s' value '%s'" msgstr "стойността на „%s“ — „%s“ не може да се анализира" -#: builtin/gc.c:487 builtin/init-db.c:58 +#: builtin/gc.c:487 builtin/init-db.c:57 #, c-format msgid "cannot stat '%s'" msgstr "не може да се получи информация чрез „stat“ за директорията „%s“" -#: builtin/gc.c:496 builtin/notes.c:240 builtin/tag.c:562 +#: builtin/gc.c:496 builtin/notes.c:240 builtin/tag.c:573 #, c-format msgid "cannot read '%s'" msgstr "файлът „%s“ не може да бъде прочетен" @@ -15955,149 +16203,149 @@ msgstr "непознат аргумент към „--schedule“: %s" msgid "failed to write commit-graph" msgstr "графът с подаванията не може да бъде записан" -#: builtin/gc.c:914 -msgid "failed to fill remotes" -msgstr "неуспешно попълване на следящите клони" +#: builtin/gc.c:905 +msgid "failed to prefetch remotes" +msgstr "неуспешно предварително доставяне на отдалечените клони" -#: builtin/gc.c:1037 +#: builtin/gc.c:1022 msgid "failed to start 'git pack-objects' process" msgstr "процесът за командата „git pack-objects“ не може да бъде стартиран" -#: builtin/gc.c:1054 +#: builtin/gc.c:1039 msgid "failed to finish 'git pack-objects' process" msgstr "процесът за командата „git pack-objects“ не може да завърши" -#: builtin/gc.c:1106 +#: builtin/gc.c:1091 msgid "failed to write multi-pack-index" msgstr "индексът за множество пакети не може да бъде записан" -#: builtin/gc.c:1124 +#: builtin/gc.c:1109 msgid "'git multi-pack-index expire' failed" msgstr "неуспешно изпълнение на „git multi-pack-index expire“" -#: builtin/gc.c:1185 +#: builtin/gc.c:1170 msgid "'git multi-pack-index repack' failed" msgstr "неуспешно изпълнение на „git multi-pack-index repack“" -#: builtin/gc.c:1194 +#: builtin/gc.c:1179 msgid "" "skipping incremental-repack task because core.multiPackIndex is disabled" msgstr "" "задачата „incremental-repack“ се прескача, защото настройката „core." "multiPackIndex“ е изключена" -#: builtin/gc.c:1298 +#: builtin/gc.c:1283 #, c-format msgid "lock file '%s' exists, skipping maintenance" msgstr "заключващият файл „%s“ съществува. Действието се прескача" -#: builtin/gc.c:1328 +#: builtin/gc.c:1313 #, c-format msgid "task '%s' failed" msgstr "неуспешно изпълнение на задачата „%s“" -#: builtin/gc.c:1410 +#: builtin/gc.c:1395 #, c-format msgid "'%s' is not a valid task" msgstr "„%s“ не е правилна задача" -#: builtin/gc.c:1415 +#: builtin/gc.c:1400 #, c-format msgid "task '%s' cannot be selected multiple times" msgstr "задачата „%s“ не може да се избере повече от веднъж" -#: builtin/gc.c:1430 +#: builtin/gc.c:1415 msgid "run tasks based on the state of the repository" msgstr "изпълняване на задачи според състоянието на хранилището" -#: builtin/gc.c:1431 +#: builtin/gc.c:1416 msgid "frequency" msgstr "честота" -#: builtin/gc.c:1432 +#: builtin/gc.c:1417 msgid "run tasks based on frequency" msgstr "изпълняване на задачи по график" -#: builtin/gc.c:1435 +#: builtin/gc.c:1420 msgid "do not report progress or other information over stderr" msgstr "без извеждане на напредъка и друга информация на стандартния изход" -#: builtin/gc.c:1436 +#: builtin/gc.c:1421 msgid "task" msgstr "задача" -#: builtin/gc.c:1437 +#: builtin/gc.c:1422 msgid "run a specific task" msgstr "изпълнение на определена задача" -#: builtin/gc.c:1454 +#: builtin/gc.c:1439 msgid "use at most one of --auto and --schedule=<frequency>" msgstr "" "може да се указва максимум една от опциите „--auto“ и „--schedule=ЧЕСТОТА“" -#: builtin/gc.c:1497 +#: builtin/gc.c:1482 msgid "failed to run 'git config'" msgstr "неуспешно изпълнение на „git config“" -#: builtin/gc.c:1562 +#: builtin/gc.c:1547 #, c-format msgid "failed to expand path '%s'" msgstr "грешка при заместването на пътя „%s“" -#: builtin/gc.c:1591 +#: builtin/gc.c:1576 msgid "failed to start launchctl" msgstr "неуспешно стартиране на „launchctl“." -#: builtin/gc.c:1628 +#: builtin/gc.c:1613 #, c-format msgid "failed to create directories for '%s'" msgstr "директориите за „%s“ не може да бъдат създадени" -#: builtin/gc.c:1689 +#: builtin/gc.c:1674 #, c-format msgid "failed to bootstrap service %s" msgstr "услугата „%s“ не може се настрои първоначално" -#: builtin/gc.c:1760 +#: builtin/gc.c:1745 msgid "failed to create temp xml file" msgstr "неуспешно създаване на временен файл за xml" -#: builtin/gc.c:1850 +#: builtin/gc.c:1835 msgid "failed to start schtasks" msgstr "задачите за периодично изпълнение не може да се стартират" -#: builtin/gc.c:1894 +#: builtin/gc.c:1879 msgid "failed to run 'crontab -l'; your system might not support 'cron'" msgstr "" "неуспешно изпълнение на „crontab -l“. Системата ви може да не поддържа " "„cron“" -#: builtin/gc.c:1911 +#: builtin/gc.c:1896 msgid "failed to run 'crontab'; your system might not support 'cron'" msgstr "" "неуспешно изпълнение на „crontab“. Системата ви може да не поддържа „cron“" -#: builtin/gc.c:1915 +#: builtin/gc.c:1900 msgid "failed to open stdin of 'crontab'" msgstr "стандартният вход на „crontab“ не може да се отвори" -#: builtin/gc.c:1956 +#: builtin/gc.c:1942 msgid "'crontab' died" msgstr "процесът на „crontab“ умря" -#: builtin/gc.c:1990 +#: builtin/gc.c:1976 msgid "another process is scheduling background maintenance" msgstr "друг процес задава поддръжката на заден фон" -#: builtin/gc.c:2009 +#: builtin/gc.c:2000 msgid "failed to add repo to global config" msgstr "неуспешно добавяне на хранилище към файла с глобални настройки" -#: builtin/gc.c:2019 +#: builtin/gc.c:2010 msgid "git maintenance <subcommand> [<options>]" msgstr "git maintenance ПОДКОМАНДА [ОПЦИЯ…]" -#: builtin/gc.c:2038 +#: builtin/gc.c:2029 #, c-format msgid "invalid subcommand: %s" msgstr "неправилна подкоманда: „%s“" @@ -16120,271 +16368,271 @@ msgstr "зададен е неправилен брой нишки (%d) за %s" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:285 builtin/index-pack.c:1589 builtin/index-pack.c:1808 -#: builtin/pack-objects.c:2944 +#: builtin/grep.c:285 builtin/index-pack.c:1590 builtin/index-pack.c:1793 +#: builtin/pack-objects.c:2969 #, c-format msgid "no threads support, ignoring %s" msgstr "липсва поддръжка за нишки. „%s“ ще се пренебрегне" -#: builtin/grep.c:473 builtin/grep.c:601 builtin/grep.c:641 +#: builtin/grep.c:473 builtin/grep.c:603 builtin/grep.c:643 #, c-format msgid "unable to read tree (%s)" msgstr "дървото не може да бъде прочетено (%s)" -#: builtin/grep.c:656 +#: builtin/grep.c:658 #, c-format msgid "unable to grep from object of type %s" msgstr "не може да се изпълни „grep“ от обект от вида %s" -#: builtin/grep.c:737 +#: builtin/grep.c:739 #, c-format msgid "switch `%c' expects a numerical value" msgstr "опцията „%c“ очаква число за аргумент" -#: builtin/grep.c:836 +#: builtin/grep.c:838 msgid "search in index instead of in the work tree" msgstr "търсене в индекса, а не в работното дърво" -#: builtin/grep.c:838 +#: builtin/grep.c:840 msgid "find in contents not managed by git" msgstr "търсене и във файловете, които не са под управлението на git" -#: builtin/grep.c:840 +#: builtin/grep.c:842 msgid "search in both tracked and untracked files" msgstr "търсене и в следените, и в неследените файлове" -#: builtin/grep.c:842 +#: builtin/grep.c:844 msgid "ignore files specified via '.gitignore'" msgstr "игнориране на файловете указани в „.gitignore“" -#: builtin/grep.c:844 +#: builtin/grep.c:846 msgid "recursively search in each submodule" msgstr "рекурсивно търсене във всички подмодули" -#: builtin/grep.c:847 +#: builtin/grep.c:849 msgid "show non-matching lines" msgstr "извеждане на редовете, които не съвпадат" -#: builtin/grep.c:849 +#: builtin/grep.c:851 msgid "case insensitive matching" msgstr "без значение на регистъра на буквите (главни/малки)" -#: builtin/grep.c:851 +#: builtin/grep.c:853 msgid "match patterns only at word boundaries" msgstr "напасване на шаблоните само по границите на думите" -#: builtin/grep.c:853 +#: builtin/grep.c:855 msgid "process binary files as text" msgstr "обработване на двоичните файлове като текстови" -#: builtin/grep.c:855 +#: builtin/grep.c:857 msgid "don't match patterns in binary files" msgstr "прескачане на двоичните файлове" -#: builtin/grep.c:858 +#: builtin/grep.c:860 msgid "process binary files with textconv filters" msgstr "" "обработване на двоичните файлове чрез филтри за преобразуване към текст" -#: builtin/grep.c:860 +#: builtin/grep.c:862 msgid "search in subdirectories (default)" msgstr "търсене в поддиректориите (стандартно)" -#: builtin/grep.c:862 +#: builtin/grep.c:864 msgid "descend at most <depth> levels" msgstr "навлизане максимално на тази ДЪЛБОЧИНА в дървото" -#: builtin/grep.c:866 +#: builtin/grep.c:868 msgid "use extended POSIX regular expressions" msgstr "разширени регулярни изрази по POSIX" -#: builtin/grep.c:869 +#: builtin/grep.c:871 msgid "use basic POSIX regular expressions (default)" msgstr "основни регулярни изрази по POSIX (стандартно)" -#: builtin/grep.c:872 +#: builtin/grep.c:874 msgid "interpret patterns as fixed strings" msgstr "шаблоните са дословни низове" -#: builtin/grep.c:875 +#: builtin/grep.c:877 msgid "use Perl-compatible regular expressions" msgstr "регулярни изрази на Perl" -#: builtin/grep.c:878 +#: builtin/grep.c:880 msgid "show line numbers" msgstr "извеждане на номерата на редовете" -#: builtin/grep.c:879 +#: builtin/grep.c:881 msgid "show column number of first match" msgstr "извеждане на номера на колоната на първото напасване" -#: builtin/grep.c:880 +#: builtin/grep.c:882 msgid "don't show filenames" msgstr "без извеждане на имената на файловете" -#: builtin/grep.c:881 +#: builtin/grep.c:883 msgid "show filenames" msgstr "извеждане на имената на файловете" -#: builtin/grep.c:883 +#: builtin/grep.c:885 msgid "show filenames relative to top directory" msgstr "" "извеждане на относителните имена на файловете спрямо основната директория на " "хранилището" -#: builtin/grep.c:885 +#: builtin/grep.c:887 msgid "show only filenames instead of matching lines" msgstr "извеждане само на имената на файловете без напасващите редове" -#: builtin/grep.c:887 +#: builtin/grep.c:889 msgid "synonym for --files-with-matches" msgstr "псевдоним на „--files-with-matches“" -#: builtin/grep.c:890 +#: builtin/grep.c:892 msgid "show only the names of files without match" msgstr "" "извеждане само на имената на файловете, които не съдържат ред, напасващ на " "шаблона" -#: builtin/grep.c:892 +#: builtin/grep.c:894 msgid "print NUL after filenames" msgstr "извеждане на нулевия знак „NUL“ след всяко име на файл" -#: builtin/grep.c:895 +#: builtin/grep.c:897 msgid "show only matching parts of a line" msgstr "извеждане само на частите на редовете, които съвпадат" -#: builtin/grep.c:897 +#: builtin/grep.c:899 msgid "show the number of matches instead of matching lines" msgstr "извеждане на броя на съвпаденията вместо напасващите редове" -#: builtin/grep.c:898 +#: builtin/grep.c:900 msgid "highlight matches" msgstr "оцветяване на напасванията" -#: builtin/grep.c:900 +#: builtin/grep.c:902 msgid "print empty line between matches from different files" msgstr "извеждане на празен ред между напасванията от различни файлове" -#: builtin/grep.c:902 +#: builtin/grep.c:904 msgid "show filename only once above matches from same file" msgstr "" "извеждане на името на файла само веднъж за всички напасвания от този файл" -#: builtin/grep.c:905 +#: builtin/grep.c:907 msgid "show <n> context lines before and after matches" msgstr "извеждане на такъв БРОЙ редове преди и след напасванията" -#: builtin/grep.c:908 +#: builtin/grep.c:910 msgid "show <n> context lines before matches" msgstr "извеждане на такъв БРОЙ редове преди напасванията" -#: builtin/grep.c:910 +#: builtin/grep.c:912 msgid "show <n> context lines after matches" msgstr "извеждане на такъв БРОЙ редове след напасванията" -#: builtin/grep.c:912 +#: builtin/grep.c:914 msgid "use <n> worker threads" msgstr "използване на такъв БРОЙ работещи нишки" -#: builtin/grep.c:913 +#: builtin/grep.c:915 msgid "shortcut for -C NUM" msgstr "псевдоним на „-C БРОЙ“" -#: builtin/grep.c:916 +#: builtin/grep.c:918 msgid "show a line with the function name before matches" msgstr "извеждане на ред с името на функцията, в която е напаснат шаблона" -#: builtin/grep.c:918 +#: builtin/grep.c:920 msgid "show the surrounding function" msgstr "извеждане на обхващащата функция" -#: builtin/grep.c:921 +#: builtin/grep.c:923 msgid "read patterns from file" msgstr "изчитане на шаблоните от ФАЙЛ" -#: builtin/grep.c:923 +#: builtin/grep.c:925 msgid "match <pattern>" msgstr "напасване на ШАБЛОН" -#: builtin/grep.c:925 +#: builtin/grep.c:927 msgid "combine patterns specified with -e" msgstr "комбиниране на шаблоните указани с опцията „-e“" -#: builtin/grep.c:937 +#: builtin/grep.c:939 msgid "indicate hit with exit status without output" msgstr "" "без извеждане на стандартния изход. Изходният код указва наличието на " "напасване" -#: builtin/grep.c:939 +#: builtin/grep.c:941 msgid "show only matches from files that match all patterns" msgstr "" "извеждане на редове само от файловете, които напасват на всички шаблони" -#: builtin/grep.c:942 +#: builtin/grep.c:944 msgid "pager" msgstr "програма за преглед по страници" -#: builtin/grep.c:942 +#: builtin/grep.c:944 msgid "show matching files in the pager" msgstr "извеждане на съвпадащите файлове в програма за преглед по страници" -#: builtin/grep.c:946 +#: builtin/grep.c:948 msgid "allow calling of grep(1) (ignored by this build)" msgstr "" "позволяване на стартирането на grep(1) (текущият компилат пренебрегва тази " "опция)" -#: builtin/grep.c:1012 +#: builtin/grep.c:1014 msgid "no pattern given" msgstr "не сте задали шаблон" -#: builtin/grep.c:1048 +#: builtin/grep.c:1050 msgid "--no-index or --untracked cannot be used with revs" msgstr "опциите „--cached“ и „--untracked“ са несъвместими с версии." -#: builtin/grep.c:1056 +#: builtin/grep.c:1058 #, c-format msgid "unable to resolve revision: %s" msgstr "версията „%s“ не може бъде открита" -#: builtin/grep.c:1086 +#: builtin/grep.c:1088 msgid "--untracked not supported with --recurse-submodules" msgstr "опциите „--untracked“ и „--recurse-submodules“ са несъвместими" -#: builtin/grep.c:1090 +#: builtin/grep.c:1092 msgid "invalid option combination, ignoring --threads" msgstr "неправилна комбинация от опции, „--threads“ ще се пренебрегне" -#: builtin/grep.c:1093 builtin/pack-objects.c:3672 +#: builtin/grep.c:1095 builtin/pack-objects.c:3930 msgid "no threads support, ignoring --threads" msgstr "липсва поддръжка за нишки. „--threads“ ще се пренебрегне" -#: builtin/grep.c:1096 builtin/index-pack.c:1586 builtin/pack-objects.c:2941 +#: builtin/grep.c:1098 builtin/index-pack.c:1587 builtin/pack-objects.c:2966 #, c-format msgid "invalid number of threads specified (%d)" msgstr "зададен е неправилен брой нишки: %d" -#: builtin/grep.c:1130 +#: builtin/grep.c:1132 msgid "--open-files-in-pager only works on the worktree" msgstr "опцията „--open-files-in-pager“ изисква търсене в работното дърво" -#: builtin/grep.c:1156 +#: builtin/grep.c:1158 msgid "--cached or --untracked cannot be used with --no-index" msgstr "опциите „--cached“ и „--untracked“ са несъвместими с „--no-index“" -#: builtin/grep.c:1159 +#: builtin/grep.c:1161 msgid "--untracked cannot be used with --cached" msgstr "опциите „--untracked“ и „--cached“ са несъвместими" -#: builtin/grep.c:1165 +#: builtin/grep.c:1167 msgid "--[no-]exclude-standard cannot be used for tracked contents" msgstr "" "опциите „--(no-)exclude-standard“ са несъвместими с търсене по следени " "файлове" -#: builtin/grep.c:1173 +#: builtin/grep.c:1175 msgid "both --cached and trees are given" msgstr "опцията „--cached“ е несъвместима със задаване на дърво" @@ -16519,12 +16767,12 @@ msgstr "" "никоя програма за преглед на информационните страници не успя да обработи " "заявката" -#: builtin/help.c:520 builtin/help.c:531 git.c:340 +#: builtin/help.c:520 builtin/help.c:531 git.c:348 #, c-format msgid "'%s' is aliased to '%s'" msgstr "„%s“ е псевдоним на „%s“" -#: builtin/help.c:534 git.c:372 +#: builtin/help.c:534 git.c:380 #, c-format msgid "bad alias.%s string: %s" msgstr "неправилен низ за настройката „alias.%s“: „%s“" @@ -16538,408 +16786,404 @@ msgstr "употреба: %s%s" msgid "'git help config' for more information" msgstr "За повече информация изпълнете „git help config“" -#: builtin/index-pack.c:221 +#: builtin/index-pack.c:222 #, c-format msgid "object type mismatch at %s" msgstr "неправилен вид на обекта „%s“" -#: builtin/index-pack.c:241 +#: builtin/index-pack.c:242 #, c-format msgid "did not receive expected object %s" msgstr "очакваният обект „%s“ не бе получен" -#: builtin/index-pack.c:244 +#: builtin/index-pack.c:245 #, c-format msgid "object %s: expected type %s, found %s" msgstr "неправилен вид на обекта „%s“: очакваше се „%s“, а бе получен „%s“" -#: builtin/index-pack.c:294 +#: builtin/index-pack.c:295 #, c-format msgid "cannot fill %d byte" msgid_plural "cannot fill %d bytes" msgstr[0] "не може да се запълни %d байт" msgstr[1] "не може да се запълнят %d байта" -#: builtin/index-pack.c:304 +#: builtin/index-pack.c:305 msgid "early EOF" msgstr "неочакван край на файл" -#: builtin/index-pack.c:305 +#: builtin/index-pack.c:306 msgid "read error on input" msgstr "грешка при четене на входните данни" -#: builtin/index-pack.c:317 +#: builtin/index-pack.c:318 msgid "used more bytes than were available" msgstr "използвани са повече от наличните байтове" -#: builtin/index-pack.c:324 builtin/pack-objects.c:624 +#: builtin/index-pack.c:325 builtin/pack-objects.c:624 msgid "pack too large for current definition of off_t" msgstr "пакетният файл е прекалено голям за текущата стойност на типа „off_t“" -#: builtin/index-pack.c:327 builtin/unpack-objects.c:95 +#: builtin/index-pack.c:328 builtin/unpack-objects.c:95 msgid "pack exceeds maximum allowed size" msgstr "пакетният файл надвишава максималния възможен размер" -#: builtin/index-pack.c:342 +#: builtin/index-pack.c:343 #, c-format msgid "unable to create '%s'" msgstr "пакетният файл „%s“ не може да бъде създаден" -#: builtin/index-pack.c:348 +#: builtin/index-pack.c:349 #, c-format msgid "cannot open packfile '%s'" msgstr "пакетният файл „%s“ не може да бъде отворен" -#: builtin/index-pack.c:362 +#: builtin/index-pack.c:363 msgid "pack signature mismatch" msgstr "несъответствие в подписа към пакетния файл" -#: builtin/index-pack.c:364 +#: builtin/index-pack.c:365 #, c-format msgid "pack version %<PRIu32> unsupported" msgstr "не се поддържа пакетиране вeрсия „%<PRIu32>“" -#: builtin/index-pack.c:382 +#: builtin/index-pack.c:383 #, c-format msgid "pack has bad object at offset %<PRIuMAX>: %s" msgstr "повреден обект в пакетния файл при отместване %<PRIuMAX>: %s" -#: builtin/index-pack.c:488 +#: builtin/index-pack.c:489 #, c-format msgid "inflate returned %d" msgstr "декомпресирането с „inflate“ върна %d" -#: builtin/index-pack.c:537 +#: builtin/index-pack.c:538 msgid "offset value overflow for delta base object" msgstr "стойността на отместването за обекта-разлика води до препълване" -#: builtin/index-pack.c:545 +#: builtin/index-pack.c:546 msgid "delta base offset is out of bound" msgstr "стойността на отместването за обекта-разлика е извън диапазона" -#: builtin/index-pack.c:553 +#: builtin/index-pack.c:554 #, c-format msgid "unknown object type %d" msgstr "непознат вид обект %d" -#: builtin/index-pack.c:584 +#: builtin/index-pack.c:585 msgid "cannot pread pack file" msgstr "пакетният файл не може да бъде прочетен" -#: builtin/index-pack.c:586 +#: builtin/index-pack.c:587 #, c-format msgid "premature end of pack file, %<PRIuMAX> byte missing" msgid_plural "premature end of pack file, %<PRIuMAX> bytes missing" msgstr[0] "неочакван край на файл, липсва %<PRIuMAX> байт" msgstr[1] "неочакван край на файл, липсват %<PRIuMAX> байта" -#: builtin/index-pack.c:612 +#: builtin/index-pack.c:613 msgid "serious inflate inconsistency" msgstr "сериозна грешка при декомпресиране с „inflate“" -#: builtin/index-pack.c:757 builtin/index-pack.c:763 builtin/index-pack.c:787 -#: builtin/index-pack.c:826 builtin/index-pack.c:835 +#: builtin/index-pack.c:758 builtin/index-pack.c:764 builtin/index-pack.c:788 +#: builtin/index-pack.c:827 builtin/index-pack.c:836 #, c-format msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "" "СЪВПАДЕНИЕ НА СТОЙНОСТИТЕ ЗА СУМИТЕ ЗА SHA1: „%s“ НА ДВА РАЗЛИЧНИ ОБЕКТА!" -#: builtin/index-pack.c:760 builtin/pack-objects.c:171 +#: builtin/index-pack.c:761 builtin/pack-objects.c:171 #: builtin/pack-objects.c:231 builtin/pack-objects.c:326 #, c-format msgid "unable to read %s" msgstr "обектът „%s“ не може да бъде прочетен" -#: builtin/index-pack.c:824 +#: builtin/index-pack.c:825 #, c-format msgid "cannot read existing object info %s" msgstr "съществуващият обект в „%s“ не може да бъде прочетен" -#: builtin/index-pack.c:832 +#: builtin/index-pack.c:833 #, c-format msgid "cannot read existing object %s" msgstr "съществуващият обект „%s“ не може да бъде прочетен" -#: builtin/index-pack.c:846 +#: builtin/index-pack.c:847 #, c-format msgid "invalid blob object %s" msgstr "неправилен обект-BLOB „%s“" -#: builtin/index-pack.c:849 builtin/index-pack.c:868 +#: builtin/index-pack.c:850 builtin/index-pack.c:869 msgid "fsck error in packed object" msgstr "грешка при проверката на пакетирани обекти" -#: builtin/index-pack.c:870 +#: builtin/index-pack.c:871 #, c-format msgid "Not all child objects of %s are reachable" msgstr "Някои обекти, наследници на „%s“, не може да бъдат достигнати" -#: builtin/index-pack.c:931 builtin/index-pack.c:978 +#: builtin/index-pack.c:932 builtin/index-pack.c:979 msgid "failed to apply delta" msgstr "разликата не може да бъде приложена" -#: builtin/index-pack.c:1161 +#: builtin/index-pack.c:1162 msgid "Receiving objects" msgstr "Получаване на обекти" -#: builtin/index-pack.c:1161 +#: builtin/index-pack.c:1162 msgid "Indexing objects" msgstr "Индексиране на обекти" -#: builtin/index-pack.c:1195 +#: builtin/index-pack.c:1196 msgid "pack is corrupted (SHA1 mismatch)" msgstr "пакетният файл е повреден (нееднакви суми по SHA1)" -#: builtin/index-pack.c:1200 +#: builtin/index-pack.c:1201 msgid "cannot fstat packfile" msgstr "не може да се получи информация за пакетния файл с „fstat“" -#: builtin/index-pack.c:1203 +#: builtin/index-pack.c:1204 msgid "pack has junk at the end" msgstr "в края на пакетния файл има повредени данни" -#: builtin/index-pack.c:1215 +#: builtin/index-pack.c:1216 msgid "confusion beyond insanity in parse_pack_objects()" msgstr "" "фатална грешка във функцията „parse_pack_objects“. Това е грешка в Git, " "докладвайте я на разработчиците, като пратите е-писмо на адрес: „git@vger." "kernel.org“." -#: builtin/index-pack.c:1238 +#: builtin/index-pack.c:1239 msgid "Resolving deltas" msgstr "Откриване на съответните разлики" -#: builtin/index-pack.c:1249 builtin/pack-objects.c:2707 +#: builtin/index-pack.c:1250 builtin/pack-objects.c:2732 #, c-format msgid "unable to create thread: %s" msgstr "не може да се създаде нишка: %s" -#: builtin/index-pack.c:1282 +#: builtin/index-pack.c:1283 msgid "confusion beyond insanity" msgstr "" "фатална грешка във функцията „conclude_pack“. Това е грешка в Git, " "докладвайте я на разработчиците, като пратите е-писмо на адрес: „git@vger." "kernel.org“." -#: builtin/index-pack.c:1288 +#: builtin/index-pack.c:1289 #, c-format msgid "completed with %d local object" msgid_plural "completed with %d local objects" msgstr[0] "действието завърши с %d локален обект" msgstr[1] "действието завърши с %d локални обекта" -#: builtin/index-pack.c:1300 +#: builtin/index-pack.c:1301 #, c-format msgid "Unexpected tail checksum for %s (disk corruption?)" msgstr "" "Неочаквана последваща сума за грешки за „%s“ (причината може да е грешка в " "диска)" -#: builtin/index-pack.c:1304 +#: builtin/index-pack.c:1305 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "в пакета има %d ненапасваща разлика" msgstr[1] "в пакета има %d ненапасващи разлики" -#: builtin/index-pack.c:1328 +#: builtin/index-pack.c:1329 #, c-format msgid "unable to deflate appended object (%d)" msgstr "добавеният обект не може да се компресира с „deflate“: %d" -#: builtin/index-pack.c:1424 +#: builtin/index-pack.c:1425 #, c-format msgid "local object %s is corrupt" msgstr "локалният обект „%s“ е повреден" -#: builtin/index-pack.c:1445 +#: builtin/index-pack.c:1446 #, c-format msgid "packfile name '%s' does not end with '.%s'" msgstr "името на пакетния файл „%s“ не завършва с „%s“" -#: builtin/index-pack.c:1469 +#: builtin/index-pack.c:1470 #, c-format msgid "cannot write %s file '%s'" msgstr "грешка при запис на файла „%s“ „%s“" -#: builtin/index-pack.c:1477 +#: builtin/index-pack.c:1478 #, c-format msgid "cannot close written %s file '%s'" msgstr "грешка при затварянето на записания файл „%s“ „%s“" -#: builtin/index-pack.c:1503 +#: builtin/index-pack.c:1504 msgid "error while closing pack file" msgstr "грешка при затварянето на пакетния файл" -#: builtin/index-pack.c:1517 +#: builtin/index-pack.c:1518 msgid "cannot store pack file" msgstr "пакетният файл не може да бъде запазен" -#: builtin/index-pack.c:1525 +#: builtin/index-pack.c:1526 msgid "cannot store index file" msgstr "файлът за индекса не може да бъде съхранен" -#: builtin/index-pack.c:1534 -msgid "cannot store reverse index file" -msgstr "файлът за индекса не може да бъде съхранен" - -#: builtin/index-pack.c:1580 builtin/pack-objects.c:2952 +#: builtin/index-pack.c:1581 builtin/pack-objects.c:2977 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "зададена е неправилна версия пакетиране: „pack.indexversion=%<PRIu32>“" -#: builtin/index-pack.c:1650 +#: builtin/index-pack.c:1651 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Съществуващият пакетен файл „%s“ не може да бъде отворен" -#: builtin/index-pack.c:1652 +#: builtin/index-pack.c:1653 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Съществуващият индекс за пакетния файл „%s“ не може да бъде отворен" -#: builtin/index-pack.c:1700 +#: builtin/index-pack.c:1701 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "%d обект не е разлика" msgstr[1] "%d обекта не са разлика" -#: builtin/index-pack.c:1707 +#: builtin/index-pack.c:1708 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "дължината на веригата е %d: %lu обект" msgstr[1] "дължината на веригата е %d: %lu обекта" -#: builtin/index-pack.c:1765 +#: builtin/index-pack.c:1750 msgid "Cannot come back to cwd" msgstr "Процесът не може да се върне към предишната работна директория" -#: builtin/index-pack.c:1819 builtin/index-pack.c:1822 -#: builtin/index-pack.c:1838 builtin/index-pack.c:1842 +#: builtin/index-pack.c:1804 builtin/index-pack.c:1807 +#: builtin/index-pack.c:1823 builtin/index-pack.c:1827 #, c-format msgid "bad %s" msgstr "неправилна стойност „%s“" -#: builtin/index-pack.c:1848 builtin/init-db.c:392 builtin/init-db.c:625 +#: builtin/index-pack.c:1833 builtin/init-db.c:378 builtin/init-db.c:613 #, c-format msgid "unknown hash algorithm '%s'" msgstr "непознат алгоритъм за контролни суми „%s“" -#: builtin/index-pack.c:1867 +#: builtin/index-pack.c:1852 msgid "--fix-thin cannot be used without --stdin" msgstr "опцията „--fix-thin“ изисква „--stdin“" -#: builtin/index-pack.c:1869 +#: builtin/index-pack.c:1854 msgid "--stdin requires a git repository" msgstr "„--stdin“ изисква хранилище на git" -#: builtin/index-pack.c:1871 +#: builtin/index-pack.c:1856 msgid "--object-format cannot be used with --stdin" msgstr "опцията „--object-format“ и „--stdin“ са несъвместими" -#: builtin/index-pack.c:1886 +#: builtin/index-pack.c:1871 msgid "--verify with no packfile name given" msgstr "опцията „--verify“ изисква име на пакетен файл" -#: builtin/index-pack.c:1956 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1937 builtin/unpack-objects.c:584 msgid "fsck error in pack objects" msgstr "грешка при проверка с „fsck“ на пакетните обекти" -#: builtin/init-db.c:64 +#: builtin/init-db.c:63 #, c-format msgid "cannot stat template '%s'" msgstr "не може да се получи информация чрез „stat“ за шаблона „%s“" -#: builtin/init-db.c:69 +#: builtin/init-db.c:68 #, c-format msgid "cannot opendir '%s'" msgstr "директорията „%s“ не може да бъде отворена" -#: builtin/init-db.c:81 +#: builtin/init-db.c:80 #, c-format msgid "cannot readlink '%s'" msgstr "връзката „%s“ не може да бъде прочетена" -#: builtin/init-db.c:83 +#: builtin/init-db.c:82 #, c-format msgid "cannot symlink '%s' '%s'" msgstr "не може да се създаде символна връзка „%s“ в „%s“" -#: builtin/init-db.c:89 +#: builtin/init-db.c:88 #, c-format msgid "cannot copy '%s' to '%s'" msgstr "„%s“ не може да се копира в „%s“" -#: builtin/init-db.c:93 +#: builtin/init-db.c:92 #, c-format msgid "ignoring template %s" msgstr "игнориране на шаблона „%s“" -#: builtin/init-db.c:124 +#: builtin/init-db.c:123 #, c-format msgid "templates not found in %s" msgstr "няма шаблони в „%s“" -#: builtin/init-db.c:139 +#: builtin/init-db.c:138 #, c-format msgid "not copying templates from '%s': %s" msgstr "шаблоните няма да бъдат копирани от „%s“: „%s“" -#: builtin/init-db.c:275 +#: builtin/init-db.c:262 #, c-format msgid "invalid initial branch name: '%s'" msgstr "неправилно име на първоначалния клон: „%s“" -#: builtin/init-db.c:367 +#: builtin/init-db.c:353 #, c-format msgid "unable to handle file type %d" msgstr "файлове от вид %d не се поддържат" -#: builtin/init-db.c:370 +#: builtin/init-db.c:356 #, c-format msgid "unable to move %s to %s" msgstr "„%s“ не може да се премести в „%s“" -#: builtin/init-db.c:386 +#: builtin/init-db.c:372 msgid "attempt to reinitialize repository with different hash" msgstr "" "опит за повторно задаване на първото подаване в хранилището с различна " "контролна сума" -#: builtin/init-db.c:410 builtin/init-db.c:413 +#: builtin/init-db.c:396 builtin/init-db.c:399 #, c-format msgid "%s already exists" msgstr "Директорията „%s“ вече съществува" -#: builtin/init-db.c:445 +#: builtin/init-db.c:431 #, c-format msgid "re-init: ignored --initial-branch=%s" msgstr "re-init: „--initial-branch=%s“ се пропуска" -#: builtin/init-db.c:476 +#: builtin/init-db.c:462 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "" "Инициализиране наново на съществуващо, споделено хранилище на Git в „%s%s“\n" -#: builtin/init-db.c:477 +#: builtin/init-db.c:463 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Инициализиране наново на съществуващо хранилище на Git в „%s%s“\n" -#: builtin/init-db.c:481 +#: builtin/init-db.c:467 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Инициализиране на празно, споделено хранилище на Git в „%s%s“\n" -#: builtin/init-db.c:482 +#: builtin/init-db.c:468 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Инициализиране на празно хранилище на Git в „%s%s“\n" -#: builtin/init-db.c:531 +#: builtin/init-db.c:517 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -16947,43 +17191,43 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=ДИРЕКТОРИЯ_С_ШАБЛОНИ] [--" "shared[=ПРАВА]] [ДИРЕКТОРИЯ]" -#: builtin/init-db.c:557 +#: builtin/init-db.c:543 msgid "permissions" msgstr "права" -#: builtin/init-db.c:558 +#: builtin/init-db.c:544 msgid "specify that the git repository is to be shared amongst several users" msgstr "" "указване, че хранилището на Git ще бъде споделено от повече от един " "потребител" -#: builtin/init-db.c:564 +#: builtin/init-db.c:550 msgid "override the name of the initial branch" msgstr "задаване на името на първоначалния клон" -#: builtin/init-db.c:565 builtin/verify-pack.c:74 +#: builtin/init-db.c:551 builtin/verify-pack.c:74 msgid "hash" msgstr "алгоритъм" -#: builtin/init-db.c:566 builtin/show-index.c:22 builtin/verify-pack.c:75 +#: builtin/init-db.c:552 builtin/show-index.c:22 builtin/verify-pack.c:75 msgid "specify the hash algorithm to use" msgstr "указване на алгоритъм за контролна сума" -#: builtin/init-db.c:573 +#: builtin/init-db.c:559 msgid "--separate-git-dir and --bare are mutually exclusive" msgstr "опциите „--separate-git-dir“ и „--bare“ са несъвместими" -#: builtin/init-db.c:602 builtin/init-db.c:607 +#: builtin/init-db.c:590 builtin/init-db.c:595 #, c-format msgid "cannot mkdir %s" msgstr "директорията „%s“ не може да бъде създадена" -#: builtin/init-db.c:611 builtin/init-db.c:666 +#: builtin/init-db.c:599 builtin/init-db.c:654 #, c-format msgid "cannot chdir to %s" msgstr "не може да се влезе в директорията „%s“" -#: builtin/init-db.c:638 +#: builtin/init-db.c:626 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -16992,12 +17236,12 @@ msgstr "" "%s (или --work-tree=ДИРЕКТОРИЯ) изисква указването на %s (или --git-" "dir=ДИРЕКТОРИЯ)" -#: builtin/init-db.c:690 +#: builtin/init-db.c:678 #, c-format msgid "Cannot access work tree '%s'" msgstr "Работното дърво в „%s“ е недостъпно" -#: builtin/init-db.c:695 +#: builtin/init-db.c:683 msgid "--separate-git-dir incompatible with bare repository" msgstr "опцията „--separate-git-dir“ е несъвместима с голо хранилище" @@ -17049,10 +17293,6 @@ msgstr "опции при анализ" msgid "do not treat --- specially" msgstr "„---“ няма специално значение" -#: builtin/interpret-trailers.c:111 -msgid "trailer" -msgstr "епилог" - #: builtin/interpret-trailers.c:112 msgid "trailer(s) to add" msgstr "епилози за добавяне" @@ -17117,80 +17357,80 @@ msgstr "опцията „-LДИАПАЗОН:ФАЙЛ“ не може да се msgid "Final output: %d %s\n" msgstr "Резултат: %d %s\n" -#: builtin/log.c:566 +#: builtin/log.c:568 #, c-format msgid "git show %s: bad file" msgstr "git show %s: повреден файл" -#: builtin/log.c:581 builtin/log.c:671 +#: builtin/log.c:583 builtin/log.c:673 #, c-format msgid "could not read object %s" msgstr "обектът не може да бъде прочетен: %s" -#: builtin/log.c:696 +#: builtin/log.c:698 #, c-format msgid "unknown type: %d" msgstr "неизвестен вид: %d" -#: builtin/log.c:841 +#: builtin/log.c:843 #, c-format msgid "%s: invalid cover from description mode" msgstr "%s: неправилно придружаващо писмо от режима на описание" -#: builtin/log.c:848 +#: builtin/log.c:850 msgid "format.headers without value" msgstr "не е зададена стойност на „format.headers“" -#: builtin/log.c:977 +#: builtin/log.c:979 #, c-format msgid "cannot open patch file %s" msgstr "файлът-кръпка „%s“ не може да бъде отворен" -#: builtin/log.c:994 +#: builtin/log.c:996 msgid "need exactly one range" msgstr "трябва да зададете точно един диапазон" -#: builtin/log.c:1004 +#: builtin/log.c:1006 msgid "not a range" msgstr "не е диапазон" -#: builtin/log.c:1168 +#: builtin/log.c:1170 msgid "cover letter needs email format" msgstr "придружаващото писмо трябва да е форматирано като е-писмо" -#: builtin/log.c:1174 +#: builtin/log.c:1176 msgid "failed to create cover-letter file" msgstr "неуспешно създаване на придружаващо писмо" -#: builtin/log.c:1261 +#: builtin/log.c:1263 #, c-format msgid "insane in-reply-to: %s" msgstr "неправилен формат на заглавната част за отговор „in-reply-to“: %s" -#: builtin/log.c:1288 +#: builtin/log.c:1290 msgid "git format-patch [<options>] [<since> | <revision-range>]" msgstr "git format-patch [ОПЦИЯ…] [ОТ | ДИАПАЗОН_НА_ВЕРСИИТЕ]" -#: builtin/log.c:1346 +#: builtin/log.c:1348 msgid "two output directories?" msgstr "може да укажете максимум една директория за изход" -#: builtin/log.c:1497 builtin/log.c:2317 builtin/log.c:2319 builtin/log.c:2331 +#: builtin/log.c:1499 builtin/log.c:2326 builtin/log.c:2328 builtin/log.c:2340 #, c-format msgid "unknown commit %s" msgstr "непознато подаване: „%s“" -#: builtin/log.c:1508 builtin/replace.c:58 builtin/replace.c:207 +#: builtin/log.c:1510 builtin/replace.c:58 builtin/replace.c:207 #: builtin/replace.c:210 #, c-format msgid "failed to resolve '%s' as a valid ref" msgstr "„%s“ не е указател или не сочи към нищо" -#: builtin/log.c:1517 +#: builtin/log.c:1519 msgid "could not find exact merge base" msgstr "точната база за сливане не може да бъде открита" -#: builtin/log.c:1527 +#: builtin/log.c:1529 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" @@ -17198,305 +17438,310 @@ msgid "" msgstr "" "следеният клон не може да бъде установен. Ако искате ръчно да го\n" "зададете, използвайте „git branch --set-upstream-to“.\n" -"Можете ръчно да зададете базово подаване чрез „--base=<base-commit-id>“." +"Може ръчно да зададете базово подаване чрез „--" +"base=<ИДЕНТИФИКАТОР_НА_БАЗОВО_ПОДАВАНЕ>“." -#: builtin/log.c:1550 +#: builtin/log.c:1552 msgid "failed to find exact merge base" msgstr "точната база при сливане не може да бъде открита" -#: builtin/log.c:1567 +#: builtin/log.c:1569 msgid "base commit should be the ancestor of revision list" msgstr "базовото подаване трябва да е предшественикът на списъка с версиите" -#: builtin/log.c:1577 +#: builtin/log.c:1579 msgid "base commit shouldn't be in revision list" msgstr "базовото подаване не може да е в списъка с версиите" -#: builtin/log.c:1635 +#: builtin/log.c:1637 msgid "cannot get patch id" msgstr "идентификаторът на кръпката не може да бъде получен" -#: builtin/log.c:1692 +#: builtin/log.c:1700 msgid "failed to infer range-diff origin of current series" msgstr "" "неуспешно определяне на началото на диапазонната разлика на текущата поредица" -#: builtin/log.c:1694 +#: builtin/log.c:1702 #, c-format msgid "using '%s' as range-diff origin of current series" msgstr "" "„%s“ се ползва като началото на диапазонната разлика на текущата поредица" -#: builtin/log.c:1738 +#: builtin/log.c:1746 msgid "use [PATCH n/m] even with a single patch" msgstr "номерация „[PATCH n/m]“ дори и при единствена кръпка" -#: builtin/log.c:1741 +#: builtin/log.c:1749 msgid "use [PATCH] even with multiple patches" msgstr "номерация „[PATCH]“ дори и при множество кръпки" -#: builtin/log.c:1745 +#: builtin/log.c:1753 msgid "print patches to standard out" msgstr "извеждане на кръпките на стандартния изход" -#: builtin/log.c:1747 +#: builtin/log.c:1755 msgid "generate a cover letter" msgstr "създаване на придружаващо писмо" -#: builtin/log.c:1749 +#: builtin/log.c:1757 msgid "use simple number sequence for output file names" msgstr "проста числова последователност за имената на файловете- |