diff options
307 files changed, 21346 insertions, 13407 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index e7b4e2f3c2..c8755e38de 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -16,4 +16,7 @@ If you prefer video, then [this talk](https://www.youtube.com/watch?v=Q7i_qQW__q might be useful to you as the presenter walks you through the contribution process by example. +Or, you can follow the ["My First Contribution"](https://git-scm.com/docs/MyFirstContribution) +tutorial for another example of the contribution process. + Your friendly Git community! diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index 227f46ae40..45465bc0c9 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -489,16 +489,11 @@ For Python scripts: - We follow PEP-8 (http://www.python.org/dev/peps/pep-0008/). - - As a minimum, we aim to be compatible with Python 2.6 and 2.7. + - As a minimum, we aim to be compatible with Python 2.7. - Where required libraries do not restrict us to Python 2, we try to also be compatible with Python 3.1 and later. - - When you must differentiate between Unicode literals and byte string - literals, it is OK to use the 'b' prefix. Even though the Python - documentation for version 2.6 does not mention this prefix, it has - been supported since version 2.6.0. - Error Messages - Do not end error messages with a full stop. diff --git a/Documentation/Makefile b/Documentation/Makefile index 15d9d04f31..ecd0b340b1 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -93,6 +93,7 @@ TECH_DOCS += technical/protocol-capabilities TECH_DOCS += technical/protocol-common TECH_DOCS += technical/protocol-v2 TECH_DOCS += technical/racy-git +TECH_DOCS += technical/reftable TECH_DOCS += technical/send-pack-pipeline TECH_DOCS += technical/shallow TECH_DOCS += technical/signature-format diff --git a/Documentation/MyFirstContribution.txt b/Documentation/MyFirstContribution.txt index 427274df4d..d85c9b5143 100644 --- a/Documentation/MyFirstContribution.txt +++ b/Documentation/MyFirstContribution.txt @@ -1179,8 +1179,8 @@ look at the section below this one for some context.) [[after-approval]] === After Review Approval -The Git project has four integration branches: `pu`, `next`, `master`, and -`maint`. Your change will be placed into `pu` fairly early on by the maintainer +The Git project has four integration branches: `seen`, `next`, `master`, and +`maint`. Your change will be placed into `seen` fairly early on by the maintainer while it is still in the review process; from there, when it is ready for wider testing, it will be merged into `next`. Plenty of early testers use `next` and may report issues. Eventually, changes in `next` will make it to `master`, diff --git a/Documentation/RelNotes/2.28.0.txt b/Documentation/RelNotes/2.28.0.txt new file mode 100644 index 0000000000..c664771e81 --- /dev/null +++ b/Documentation/RelNotes/2.28.0.txt @@ -0,0 +1,227 @@ +Git 2.28 Release Notes +====================== + +Updates since v2.27 +------------------- + +Backward compatibility notes + + * "fetch.writeCommitGraph" is deemed to be still a bit too risky and + is no longer part of the "feature.experimental" set. + + * It used to be that setting extensions.* configuration variables + alone, while leaving core.repositoryFormatVersion=0, made these + settings effective, which was a wrong thing to do. In version 0, + there was no special meaning in extensions.* configuration + variables. This has been corrected. If you need these repository + extensions to be effective, the core.repositoryFormatVersion + variable needs to be updated to 1 after vetting these extensions.* + variables are set correctly. + + +UI, Workflows & Features + + * The commands in the "diff" family learned to honor "diff.relative" + configuration variable. + + * The check in "git fsck" to ensure that the tree objects are sorted + still had corner cases it missed unsorted entries. + + * The interface to redact sensitive information in the trace output + has been simplified. + + * The command line completion (in contrib/) learned to complete + options that the "git switch" command takes. + + * "git diff" used to take arguments in random and nonsense range + notation, e.g. "git diff A..B C", "git diff A..B C...D", etc., + which has been cleaned up. + + * "git diff-files" has been taught to say paths that are marked as + intent-to-add are new files, not modified from an empty blob. + + * "git status" learned to report the status of sparse checkout. + + * "git difftool" has trouble dealing with paths added to the index + with the intent-to-add bit. + + * "git fast-export --anonymize" learned to take customized mapping to + allow its users to tweak its output more usable for debugging. + + * The command line completion support (in contrib/) used to be + prepared to work with "set -u" but recent changes got a bit more + sloppy. This has been corrected. + + +Performance, Internal Implementation, Development Support etc. + + * Code optimization for a common case. + (merge 8777616e4d an/merge-single-strategy-optim later to maint). + + * We've adopted a convention that any on-stack structure can be + initialized to have zero values in all fields with "= { 0 }", + even when the first field happens to be a pointer, but sparse + complained that a null pointer should be spelled NULL for a long + time. Start using -Wno-universal-initializer option to squelch + it (the latest sparse has it on by default). + + * "git log -L..." now takes advantage of the "which paths are touched + by this commit?" info stored in the commit-graph system. + + * As FreeBSD is not the only platform whose regexp library reports + a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that + automatically and skip the affected tests. + + * "git bugreport" learns to report what shell is in use. + + * Support for GIT_CURL_VERBOSE has been rewritten in terms of + GIT_TRACE_CURL. + + * Preliminary clean-ups around refs API, plus file format + specification documentation for the reftable backend. + + * Workaround breakage in MSVC build, where "curl-config --cflags" + gives settings appropriate for GCC build. + + * Code clean-up of "git clean" resulted in a fix of recent + performance regression. + + * Code clean-up in the codepath that serves "git fetch" continues. + + * "git merge-base --is-ancestor" is taught to take advantage of the + commit graph. + + * Rewrite of parts of the scripted "git submodule" Porcelain command + continues; this time it is "git submodule set-branch" subcommand's + turn. + + * The "fetch/clone" protocol has been updated to allow the server to + instruct the clients to grab pre-packaged packfile(s) in addition + to the packed object data coming over the wire. + + * A misdesigned strbuf_write_fd() function has been retired. + + * SHA-256 migration work continues, including CVS/SVN interface. + + * A few fields in "struct commit" that do not have to always be + present have been moved to commit slabs. + + * API cleanup for get_worktrees() + + * By renumbering object flag bits, "struct object" managed to lose + bloated inter-field padding. + + * The name of the primary branch in existing repositories, and the + default name used for the first branch in newly created + repositories, is made configurable, so that we can eventually wean + ourselves off of the hardcoded 'master'. + + * The effort to avoid using test_must_fail on non-git command continues. + + +Fixes since v2.27 +----------------- + + * The "--prepare-p4-only" option of "git p4" is supposed to stop + after replaying one changeset, but kept going (by mistake?) + + * The error message from "git checkout -b foo -t bar baz" was + confusing. + + * Some repositories in the wild have commits that record nonsense + committer timezone (e.g. rails.git); "git fast-import" learned an + option to pass these nonsense timestamps intact to allow recreating + existing repositories as-is. + (merge d42a2fb72f en/fast-import-looser-date later to maint). + + * The command line completion script (in contrib/) tried to complete + "git stash -p" as if it were "git stash push -p", but it was too + aggressive and also affected "git stash show -p", which has been + corrected. + (merge fffd0cf520 vs/complete-stash-show-p-fix later to maint). + + * On-the-wire protocol v2 easily falls into a deadlock between the + remote-curl helper and the fetch-pack process when the server side + prematurely throws an error and disconnects. The communication has + been updated to make it more robust. + + * "git checkout -p" did not handle a newly added path at all. + (merge 2c8bd8471a js/checkout-p-new-file later to maint). + + * The code to parse "git bisect start" command line was lax in + validating the arguments. + (merge 4d9005ff5d cb/bisect-helper-parser-fix later to maint). + + * Reduce memory usage during "diff --quiet" in a worktree with too + many stat-unmatched paths. + (merge d2d7fbe129 jk/diff-memuse-optim-with-stat-unmatch later to maint). + + * The reflog entries for "git clone" and "git fetch" did not + anonymize the URL they operated on. + (merge 46da295a77 js/reflog-anonymize-for-clone-and-fetch later to maint). + + * The behaviour of "sparse-checkout" in the state "git clone + --no-checkout" left was changed accidentally in 2.27, which has + been corrected. + + * Use of negative pathspec, while collecting paths including + untracked ones in the working tree, was broken. + + * The same worktree directory must be registered only once, but + "git worktree move" allowed this invariant to be violated, which + has been corrected. + (merge 810382ed37 es/worktree-duplicate-paths later to maint). + + * The effect of sparse checkout settings on submodules is documented. + (merge e7d7c73249 en/sparse-with-submodule-doc later to maint). + + * Code clean-up around "git branch" with a minor bugfix. + (merge dc44639904 dl/branch-cleanup later to maint). + + * A branch name used in a test has been clarified to match what is + going on. + (merge 08dc26061f pb/t4014-unslave later to maint). + + * An in-code comment in "git diff" has been updated. + (merge c592fd4c83 dl/diff-usage-comment-update later to maint). + + * The documentation and some tests have been adjusted for the recent + renaming of "pu" branch to "seen". + (merge 6dca5dbf93 js/pu-to-seen later to maint). + + * The code to push changes over "dumb" HTTP had a bad interaction + with the commit reachability code due to incorrect allocation of + object flag bits, which has been corrected. + (merge 64472d15e9 bc/http-push-flagsfix later to maint). + + * "git send-email --in-reply-to=<msg>" did not use the In-Reply-To: + header with the value given from the command line, and let it be + overridden by the value on In-Reply-To: header in the messages + being sent out (if exists). + (merge f9f60d7066 ra/send-email-in-reply-to-from-command-line-wins later to maint). + + * "git log -Lx,y:path --before=date" lost track of where the range + should be because it didn't take the changes made by the youngest + commits that are omitted from the output into account. + + * When "fetch.writeCommitGraph" configuration is set in a shallow + repository and a fetch moves the shallow boundary, we wrote out + broken commit-graph files that do not match the reality, which has + been corrected. + + * "git checkout" failed to catch an error from fstat() after updating + a path in the working tree. + (merge 35e6e212fd mt/entry-fstat-fallback-fix later to maint). + + * Other code cleanup, docfix, build fix, etc. + (merge 2c31a7aa44 jx/pkt-line-doc-count-fix later to maint). + (merge d63ae31962 cb/t5608-cleanup later to maint). + (merge 788db145c7 dl/t-readme-spell-git-correctly later to maint). + (merge 45a87a83bb dl/python-2.7-is-the-floor-version later to maint). + (merge b75a219904 es/advertise-contribution-doc later to maint). + (merge 0c9a4f638a rs/pull-leakfix later to maint). + (merge d546fe2874 rs/commit-reach-leakfix later to maint). + (merge 087bf5409c mk/pb-pretty-email-without-domain-part-fix later to maint). + (merge 5f4ee57ad9 es/worktree-code-cleanup later to maint). + (merge 0172f7834a cc/cat-file-usage-update later to maint). + (merge 81de0c01cf ma/rebase-doc-typofix later to maint). diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index 4515cab519..291b61e262 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches @@ -3,8 +3,9 @@ Submitting Patches == Guidelines -Here are some guidelines for people who want to contribute their code -to this software. +Here are some guidelines for people who want to contribute their code to this +software. There is also a link:MyFirstContribution.html[step-by-step tutorial] +available which covers many of these same guidelines. [[base-branch]] === Decide what to base your work on. @@ -18,7 +19,7 @@ change is relevant to. base your work on the tip of the topic. * A new feature should be based on `master` in general. If the new - feature depends on a topic that is in `pu`, but not in `master`, + feature depends on a topic that is in `seen`, but not in `master`, base your work on the tip of that topic. * Corrections and enhancements to a topic not yet in `master` should @@ -27,7 +28,7 @@ change is relevant to. into the series. * In the exceptional case that a new feature depends on several topics - not in `master`, start working on `next` or `pu` privately and send + not in `master`, start working on `next` or `seen` privately and send out patches for discussion. Before the final merge, you may have to wait until some of the dependent topics graduate to `master`, and rebase your work. @@ -37,7 +38,7 @@ change is relevant to. these parts should be based on their trees. To find the tip of a topic branch, run `git log --first-parent -master..pu` and look for the merge commit. The second parent of this +master..seen` and look for the merge commit. The second parent of this commit is the tip of the topic branch. [[separate-commits]] @@ -423,7 +424,7 @@ help you find out who they are. and cooked further and eventually graduates to `master`. In any time between the (2)-(3) cycle, the maintainer may pick it up -from the list and queue it to `pu`, in order to make it easier for +from the list and queue it to `seen`, in order to make it easier for people play with it without having to pick up and apply the patch to their trees themselves. @@ -434,7 +435,7 @@ their trees themselves. master. `git pull --rebase` will automatically skip already-applied patches, and will let you know. This works only if you rebase on top of the branch in which your patch has been merged (i.e. it will not - tell you if your patch is merged in pu if you rebase on top of + tell you if your patch is merged in `seen` if you rebase on top of master). * Read the Git mailing list, the maintainer regularly posts messages diff --git a/Documentation/config/diff.txt b/Documentation/config/diff.txt index ff09f1cf73..c3ae136eba 100644 --- a/Documentation/config/diff.txt +++ b/Documentation/config/diff.txt @@ -105,6 +105,10 @@ diff.mnemonicPrefix:: diff.noprefix:: If set, 'git diff' does not show any source or destination prefix. +diff.relative:: + If set to 'true', 'git diff' does not show changes outside of the directory + and show pathnames relative to the current directory. + diff.orderFile:: File indicating how to order files within a diff. See the '-O' option to linkgit:git-diff[1] for details. diff --git a/Documentation/config/feature.txt b/Documentation/config/feature.txt index 4e3a5c0ceb..c0cbf2bb1c 100644 --- a/Documentation/config/feature.txt +++ b/Documentation/config/feature.txt @@ -15,13 +15,9 @@ feature.experimental:: * `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by skipping more commits at a time, reducing the number of round trips. + -* `fetch.writeCommitGraph=true` writes a commit-graph after every `git fetch` -command that downloads a pack-file from a remote. Using the `--split` option, -most executions will create a very small commit-graph file on top of the -existing commit-graph file(s). Occasionally, these files will merge and the -write may take longer. Having an updated commit-graph file helps performance -of many Git commands, including `git merge-base`, `git push -f`, and -`git log --graph`. +* `protocol.version=2` speeds up fetches from repositories with many refs by +allowing the client to specify which refs to list before the server lists +them. feature.manyFiles:: Enable config options that optimize for repos with many files in the diff --git a/Documentation/config/fetch.txt b/Documentation/config/fetch.txt index b1a9b1461d..b20394038d 100644 --- a/Documentation/config/fetch.txt +++ b/Documentation/config/fetch.txt @@ -90,5 +90,4 @@ fetch.writeCommitGraph:: the existing commit-graph file(s). Occasionally, these files will merge and the write may take longer. Having an updated commit-graph file helps performance of many Git commands, including `git merge-base`, - `git push -f`, and `git log --graph`. Defaults to false, unless - `feature.experimental` is true. + `git push -f`, and `git log --graph`. Defaults to false. diff --git a/Documentation/config/init.txt b/Documentation/config/init.txt index 46fa8c6a08..dc77f8c844 100644 --- a/Documentation/config/init.txt +++ b/Documentation/config/init.txt @@ -1,3 +1,7 @@ init.templateDir:: Specify the directory from which templates will be copied. (See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].) + +init.defaultBranch:: + Allows overriding the default branch name e.g. when initializing + a new repository or when cloning an empty repository. diff --git a/Documentation/config/protocol.txt b/Documentation/config/protocol.txt index 0b40141613..c46e9b3d00 100644 --- a/Documentation/config/protocol.txt +++ b/Documentation/config/protocol.txt @@ -48,7 +48,8 @@ protocol.version:: If set, clients will attempt to communicate with a server using the specified protocol version. If the server does not support it, communication falls back to version 0. - If unset, the default is `0`. + If unset, the default is `0`, unless `feature.experimental` + is enabled, in which case the default is `2`. Supported versions: + -- diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index bb31f0c42b..7987d72b02 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -643,15 +643,18 @@ ifndef::git-format-patch[] -R:: Swap two inputs; that is, show differences from index or on-disk file to tree contents. +endif::git-format-patch[] --relative[=<path>]:: +--no-relative:: When run from a subdirectory of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option. When you are not in a subdirectory (e.g. in a bare repository), you can name which subdirectory to make the output relative to by giving a <path> as an argument. -endif::git-format-patch[] + `--no-relative` can be used to countermand both `diff.relative` config + option and previous `--relative`. -a:: --text:: diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 135206ff4a..03c0824d52 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -12,7 +12,7 @@ SYNOPSIS [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [--sort=<key>] [(--merged | --no-merged) [<commit>]] - [--contains [<commit]] [--no-contains [<commit>]] + [--contains [<commit>]] [--no-contains [<commit>]] [--points-at <object>] [--format=<format>] [(-r | --remotes) | (-a | --all)] [--list] [<pattern>...] diff --git a/Documentation/git-bugreport.txt b/Documentation/git-bugreport.txt index 9edad66a63..66e88c2e31 100644 --- a/Documentation/git-bugreport.txt +++ b/Documentation/git-bugreport.txt @@ -29,6 +29,7 @@ The following information is captured automatically: - uname sysname, release, version, and machine strings - Compiler-specific info string - A list of enabled hooks + - $SHELL This tool is invoked via the typical Git setup process, which means that in some cases, it might not be able to launch - for example, if a relevant config file diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt index 8eca671b82..8e192d87db 100644 --- a/Documentation/git-cat-file.txt +++ b/Documentation/git-cat-file.txt @@ -10,7 +10,7 @@ SYNOPSIS -------- [verse] 'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--path=<path>] <object> -'git cat-file' (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks] +'git cat-file' (--batch[=<format>] | --batch-check[=<format>]) [ --textconv | --filters ] [--follow-symlinks] DESCRIPTION ----------- diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index 08d6045c4a..c898310099 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -259,7 +259,7 @@ maintain a branch with no references other than a single cloned branch. This is useful e.g. to maintain minimal clones of the default branch of some repository for search indexing. ---recurse-submodules[=<pathspec]:: +--recurse-submodules[=<pathspec>]:: After the clone is created, initialize and clone submodules within based on the provided pathspec. If no pathspec is provided, all submodules are initialized and cloned. diff --git a/Documentation/git-commit-graph.txt b/Documentation/git-commit-graph.txt index a3d996787b..8ca1764d3d 100644 --- a/Documentation/git-commit-graph.txt +++ b/Documentation/git-commit-graph.txt @@ -47,8 +47,10 @@ with `--stdin-commits` or `--reachable`.) + With the `--stdin-commits` option, generate the new commit graph by walking commits starting at the commits specified in stdin as a list -of OIDs in hex, one OID per line. (Cannot be combined with -`--stdin-packs` or `--reachable`.) +of OIDs in hex, one OID per line. OIDs that resolve to non-commits +(either directly, or by peeling tags) are silently ignored. OIDs that +are malformed, or do not exist generate an error. (Cannot be combined +with `--stdin-packs` or `--reachable`.) + With the `--reachable` option, generate the new commit graph by walking commits starting at all refs. (Cannot be combined with `--stdin-commits` diff --git a/Documentation/git-diff.txt b/Documentation/git-diff.txt index 37781cf175..1018110ddc 100644 --- a/Documentation/git-diff.txt +++ b/Documentation/git-diff.txt @@ -11,15 +11,17 @@ SYNOPSIS [verse] 'git diff' [<options>] [<commit>] [--] [<path>...] 'git diff' [<options>] --cached [<commit>] [--] [<path>...] -'git diff' [<options>] <commit> <commit> [--] [<path>...] +'git diff' [<options>] <commit> [<commit>...] <commit> [--] [<path>...] +'git diff' [<options>] <commit>...<commit> [--] [<path>...] 'git diff' [<options>] <blob> <blob> 'git diff' [<options>] --no-index [--] <path> <path> DESCRIPTION ----------- Show changes between the working tree and the index or a tree, changes -between the index and a tree, changes between two trees, changes between -two blob objects, or changes between two files on disk. +between the index and a tree, changes between two trees, changes resulting +from a merge, changes between two blob objects, or changes between two +files on disk. 'git diff' [<options>] [--] [<path>...]:: @@ -67,6 +69,15 @@ two blob objects, or changes between two files on disk. one side is omitted, it will have the same effect as using HEAD instead. +'git diff' [<options>] <commit> [<commit>...] <commit> [--] [<path>...]:: + + This form is to view the results of a merge commit. The first + listed <commit> must be the merge itself; the remaining two or + more commits should be its parents. A convenient way to produce + the desired set of revisions is to use the {caret}@ suffix. + For instance, if `master` names a merge commit, `git diff master + master^@` gives the same combined diff as `git show master`. + 'git diff' [<options>] <commit>\...<commit> [--] [<path>...]:: This form is to view the changes on the branch containing @@ -196,7 +207,8 @@ linkgit:git-difftool[1], linkgit:git-log[1], linkgit:gitdiffcore[7], linkgit:git-format-patch[1], -linkgit:git-apply[1] +linkgit:git-apply[1], +linkgit:git-show[1] GIT --- diff --git a/Documentation/git-fast-export.txt b/Documentation/git-fast-export.txt index e8950de3ba..1978dbdc6a 100644 --- a/Documentation/git-fast-export.txt +++ b/Documentation/git-fast-export.txt @@ -119,6 +119,11 @@ by keeping the marks the same across runs. the shape of the history and stored tree. See the section on `ANONYMIZING` below. +--anonymize-map=<from>[:<to>]:: + Convert token `<from>` to `<to>` in the anonymized output. If + `<to>` is omitted, map `<from>` to itself (i.e., do not + anonymize it). See the section on `ANONYMIZING` below. + --reference-excluded-parents:: By default, running a command such as `git fast-export master~5..master` will not include the commit master{tilde}5 @@ -238,6 +243,30 @@ collapse "User 0", "User 1", etc into "User X"). This produces a much smaller output, and it is usually easy to quickly confirm that there is no private data in the stream. +Reproducing some bugs may require referencing particular commits or +paths, which becomes challenging after refnames and paths have been +anonymized. You can ask for a particular token to be left as-is or +mapped to a new value. For example, if you have a bug which reproduces +with `git rev-list sensitive -- secret.c`, you can run: + +--------------------------------------------------- +$ git fast-export --anonymize --all \ + --anonymize-map=sensitive:foo \ + --anonymize-map=secret.c:bar.c \ + >stream +--------------------------------------------------- + +After importing the stream, you can then run `git rev-list foo -- bar.c` +in the anonymized repository. + +Note that paths and refnames are split into tokens at slash boundaries. +The command above would anonymize `subdir/secret.c` as something like +`path123/bar.c`; you could then search for `bar.c` in the anonymized +repository to determine the final pathname. + +To make referencing the final pathname simpler, you can map each path +component; so if you also anonymize `subdir` to `publicdir`, then the +final pathname would be `publicdir/bar.c`. LIMITATIONS ----------- diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt index 77c6b3d001..7d9aad2a7e 100644 --- a/Documentation/git-fast-import.txt +++ b/Documentation/git-fast-import.txt @@ -293,7 +293,14 @@ by users who are located in the same location and time zone. In this case a reasonable offset from UTC could be assumed. + Unlike the `rfc2822` format, this format is very strict. Any -variation in formatting will cause fast-import to reject the value. +variation in formatting will cause fast-import to reject the value, +and some sanity checks on the numeric values may also be performed. + +`raw-permissive`:: + This is the same as `raw` except that no sanity checks on + the numeric epoch and local offset are performed. This can + be useful when trying to filter or import an existing history + with e.g. bogus timezone values. `rfc2822`:: This is the standard email format as described by RFC 2822. diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt index 5b1909fdf4..45b6d8e633 100644 --- a/Documentation/git-fetch.txt +++ b/Documentation/git-fetch.txt @@ -255,14 +255,14 @@ refspec. * Using refspecs explicitly: + ------------------------------------------------ -$ git fetch origin +pu:pu maint:tmp +$ git fetch origin +seen:seen maint:tmp ------------------------------------------------ + -This updates (or creates, as necessary) branches `pu` and `tmp` in +This updates (or creates, as necessary) branches `seen` and `tmp` in the local repository by fetching from the branches (respectively) -`pu` and `maint` from the remote repository. +`seen` and `maint` from the remote repository. + -The `pu` branch will be updated even if it does not fast-forward, +The `seen` branch will be updated even if it does not fast-forward, because it is prefixed with a plus sign; `tmp` will not be. * Peek at a remote's branch, without configuring the remote in your local diff --git a/Documentation/git-http-fetch.txt b/Documentation/git-http-fetch.txt index 666b042679..4deb4893f5 100644 --- a/Documentation/git-http-fetch.txt +++ b/Documentation/git-http-fetch.txt @@ -9,7 +9,7 @@ git-http-fetch - Download from a remote Git repository via HTTP SYNOPSIS -------- [verse] -'git http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [--stdin] <commit> <url> +'git http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [--stdin | --packfile=<hash> | <commit>] <url> DESCRIPTION ----------- @@ -40,6 +40,13 @@ commit-id:: <commit-id>['\t'<filename-as-in--w>] +--packfile=<hash>:: + Instead of a commit id on the command line (which is not expected in + this case), 'git http-fetch' fetches the packfile directly at the given + URL and uses index-pack to generate corresponding .idx and .keep files. + The hash is used to determine the name of the temporary file and is + arbitrary. The output of index-pack is printed to stdout. + --recover:: Verify that everything reachable from target is fetched. Used after an earlier fetch is interrupted. diff --git a/Documentation/git-index-pack.txt b/Documentation/git-index-pack.txt index d5b7560bfe..9316d9a80b 100644 --- a/Documentation/git-index-pack.txt +++ b/Documentation/git-index-pack.txt @@ -93,6 +93,14 @@ OPTIONS --max-input-size=<size>:: Die, if the pack is larger than <size>. +--object-format=<hash-algorithm>:: + Specify the given object format (hash algorithm) for the pack. The valid + values are 'sha1' and (if enabled) 'sha256'. The default is the algorithm for + the current repository (set by `extensions.objectFormat`), or 'sha1' if no + value is set or outside a repository. ++ +This option cannot be used with --stdin. + NOTES ----- diff --git a/Documentation/git-init.txt b/Documentation/git-init.txt index adc6adfd38..ddfe265da5 100644 --- a/Documentation/git-init.txt +++ b/Documentation/git-init.txt @@ -10,7 +10,8 @@ SYNOPSIS -------- [verse] 'git init' [-q | --quiet] [--bare] [--template=<template_directory>] - [--separate-git-dir <git dir>] [--object-format=<format] + [--separate-git-dir <git dir>] [--object-format=<format>] + [-b <branch-name> | --initial-branch=<branch-name>] [--shared[=<permissions>]] [directory] @@ -67,6 +68,12 @@ repository. + If this is reinitialization, the repository will be moved to the specified path. +-b <branch-name:: +--initial-branch=<branch-name>:: + +Use the specified name for the initial branch in the newly created repository. +If not specified, fall back to the default name: `master`. + --shared[=(false|true|umask|group|all|world|everybody|0xxx)]:: Specify that the Git repository is to be shared amongst several users. This diff --git a/Documentation/git-ls-remote.txt b/Documentation/git-ls-remote.txt index 0a5c8b7d49..492e573856 100644 --- a/Documentation/git-ls-remote.txt +++ b/Documentation/git-ls-remote.txt @@ -101,9 +101,9 @@ f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1 7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3 c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2 0918385dbd9656cab0d1d81ba7453d49bbc16250 refs/tags/junio-gpg-pub -$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master pu rc +$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master seen rc 5fe978a5381f1fbad26a80e682ddd2a401966740 refs/heads/master -c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/pu +c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/seen $ git remote add korg http://www.kernel.org/pub/scm/git/git.git $ git ls-remote --tags korg v\* d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99 diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 4624cfd288..374d2486f7 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -259,7 +259,7 @@ See also INCOMPATIBLE OPTIONS below. unchanged as a result. If a temporary stash entry was created using --autostash, it will be saved to the stash list. ---apply: +--apply:: Use applying strategies to rebase (calling `git-am` internally). This option may become a no-op in the future once the merge backend handles everything the apply one does. diff --git a/Documentation/git-show-index.txt b/Documentation/git-show-index.txt index 424e4ba84c..39b1d8eaa1 100644 --- a/Documentation/git-show-index.txt +++ b/Documentation/git-show-index.txt @@ -9,7 +9,7 @@ git-show-index - Show packed archive index SYNOPSIS -------- [verse] -'git show-index' +'git show-index' [--object-format=<hash-algorithm>] DESCRIPTION @@ -36,6 +36,15 @@ Note that you can get more information on a packfile by calling linkgit:git-verify-pack[1]. However, as this command considers only the index file itself, it's both faster and more flexible. +OPTIONS +------- + +--object-format=<hash-algorithm>:: + Specify the given object format (hash algorithm) for the index file. The + valid values are 'sha1' and (if enabled) 'sha256'. The default is the + algorithm for the current repository (set by `extensions.objectFormat`), or + 'sha1' if no value is set or outside a repository.. + GIT --- Part of the linkgit:git[1] suite diff --git a/Documentation/git-sparse-checkout.txt b/Documentation/git-sparse-checkout.txt index 7c8943af7a..a0eeaeb02e 100644 --- a/Documentation/git-sparse-checkout.txt +++ b/Documentation/git-sparse-checkout.txt @@ -200,10 +200,32 @@ directory. SUBMODULES ---------- -If your repository contains one or more submodules, then those submodules will -appear based on which you initialized with the `git submodule` command. If -your sparse-checkout patterns exclude an initialized submodule, then that -submodule will still appear in your working directory. +If your repository contains one or more submodules, then submodules +are populated based on interactions with the `git submodule` command. +Specifically, `git submodule init -- <path>` will ensure the submodule +at `<path>` is present, while `git submodule deinit [-f] -- <path>` +will remove the files for the submodule at `<path>` (including any +untracked files, uncommitted changes, and unpushed history). Similar +to how sparse-checkout removes files from the working tree but still +leaves entries in the index, deinitialized submodules are removed from +the working directory but still have an entry in the index. + +Since submodules may have unpushed changes or untracked files, +removing them could result in data loss. Thus, changing sparse +inclusion/exclusion rules will not cause an already checked out +submodule to be removed from the working copy. Said another way, just +as `checkout` will not cause submodules to be automatically removed or +initialized even when switching between branches that remove or add +submodules, using `sparse-checkout` to reduce or expand the scope of +"interesting" files will not cause submodules to be automatically +deinitialized or initialized either. + +Further, the above facts mean that there are multiple reasons that +"tracked" files might not be present in the working copy: sparsity +pattern application from sparse-checkout, and submodule initialization +state. Thus, commands like `git grep` that work on tracked files in +the working copy may return results that are limited by either or both +of these restrictions. SEE ALSO diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt index c9ed2bf3d5..7e5f995f77 100644 --- a/Documentation/git-submodule.txt +++ b/Documentation/git-submodule.txt @@ -183,7 +183,7 @@ set-branch (-d|--default) [--] <path>:: Sets the default remote tracking branch for the submodule. The `--branch` option allows the remote branch to be specified. The `--default` option removes the submodule.<name>.branch configuration - key, which causes the tracking branch to default to 'master'. + key, which causes the tracking branch to default to the remote 'HEAD'. set-url [--] <path> <newurl>:: Sets the URL of the specified submodule to <newurl>. Then, it will @@ -284,7 +284,7 @@ OPTIONS `.gitmodules` for `update --remote`. A special value of `.` is used to indicate that the name of the branch in the submodule should be the same name as the current branch in the current repository. If the - option is not specified, it defaults to 'master'. + option is not specified, it defaults to the remote 'HEAD'. -f:: --force:: @@ -322,10 +322,10 @@ OPTIONS the superproject's recorded SHA-1 to update the submodule, use the status of the submodule's remote-tracking branch. The remote used is branch's remote (`branch.<name>.remote`), defaulting to `origin`. - The remote branch used defaults to `master`, but the branch name may - be overridden by setting the `submodule.<name>.branch` option in - either `.gitmodules` or `.git/config` (with `.git/config` taking - precedence). + The remote branch used defaults to the remote `HEAD`, but the branch + name may be overridden by setting the `submodule.<name>.branch` + option in either `.gitmodules` or `.git/config` (with `.git/config` + taking precedence). + This works for any of the supported update procedures (`--checkout`, `--rebase`, etc.). The only change is the source of the target SHA-1. diff --git a/Documentation/git-worktree.txt b/Documentation/git-worktree.txt index 85d92c9761..4796c3c05e 100644 --- a/Documentation/git-worktree.txt +++ b/Documentation/git-worktree.txt @@ -126,7 +126,9 @@ OPTIONS locked working tree path, specify `--force` twice. + `move` refuses to move a locked working tree unless `--force` is specified -twice. +twice. If the destination is already assigned to some other working tree but is +missing (for instance, if `<new-path>` was deleted manually), then `--force` +allows the move to proceed; use --force twice if the destination is locked. + `remove` refuses to remove an unclean working tree unless `--force` is used. To remove a locked working tree, specify `--force` twice. diff --git a/Documentation/git.txt b/Documentation/git.txt index 9d6769e95a..3e50065198 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -493,7 +493,7 @@ double-quotes and respecting backslash escapes. E.g., the value details. This variable has lower precedence than other path variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY... -`GIT_DEFAULT_HASH_ALGORITHM`:: +`GIT_DEFAULT_HASH`:: If this variable is set, the default hash algorithm for new repositories will be set to this value. This value is currently ignored when cloning; the setting of the remote repository @@ -721,8 +721,6 @@ of clones and fetches. Enables a curl full trace dump of all incoming and outgoing data, including descriptive information, of the git transport protocol. This is similar to doing curl `--trace-ascii` on the command line. - This option overrides setting the `GIT_CURL_VERBOSE` environment - variable. See `GIT_TRACE` for available trace output options. `GIT_TRACE_CURL_NO_DATA`:: @@ -777,11 +775,10 @@ for full details. See `GIT_TRACE2` for available trace output options and link:technical/api-trace2.html[Trace2 documentation] for full details. -`GIT_REDACT_COOKIES`:: - This can be set to a comma-separated list of strings. When a curl trace - is enabled (see `GIT_TRACE_CURL` above), whenever a "Cookies:" header - sent by the client is dumped, values of cookies whose key is in that - list (case-sensitive) are redacted. +`GIT_TRACE_REDACT`:: + By default, when tracing is activated, Git redacts the values of + cookies, the "Authorization:" header, and the "Proxy-Authorization:" + header. Set this variable to `0` to prevent this redaction. `GIT_LITERAL_PATHSPECS`:: Setting this variable to `1` will cause Git to treat all diff --git a/Documentation/giteveryday.txt b/Documentation/giteveryday.txt index 1bd919f92b..faba2ef088 100644 --- a/Documentation/giteveryday.txt +++ b/Documentation/giteveryday.txt @@ -278,13 +278,13 @@ $ git am -3 -i -s ./+to-apply <4> $ compile/test $ git switch -c hold/linus && git am -3 -i -s ./+hold-linus <5> $ git switch topic/one && git rebase master <6> -$ git switch -C pu next <7> +$ git switch -C seen next <7> $ git merge topic/one topic/two && git merge hold/linus <8> $ git switch maint $ git cherry-pick master~4 <9> $ compile/test $ git tag -s -m "GIT 0.99.9x" v0.99.9x <10> -$ git fetch ko && for branch in master maint next pu <11> +$ git fetch ko && for branch in master maint next seen <11> do git show-branch ko/$branch $branch <12> done @@ -294,14 +294,14 @@ $ git push --follow-tags ko <13> <1> see what you were in the middle of doing, if anything. <2> see which branches haven't been merged into `master` yet. Likewise for any other integration branches e.g. `maint`, `next` -and `pu` (potential updates). +and `seen`. <3> read mails, save ones that are applicable, and save others that are not quite ready (other mail readers are available). <4> apply them, interactively, with your sign-offs. <5> create topic branch as needed and apply, again with sign-offs. <6> rebase internal topic branch that has not been merged to the master or exposed as a part of a stable branch. -<7> restart `pu` every time from the next. +<7> restart `seen` every time from the next. <8> and bundle topic branches still cooking. <9> backport a critical fix. <10> create a signed tag. @@ -323,7 +323,7 @@ repository at kernel.org, and looks like this: fetch = refs/heads/*:refs/remotes/ko/* push = refs/heads/master push = refs/heads/next - push = +refs/heads/pu + push = +refs/heads/seen push = refs/heads/maint ------------ diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt index 81f2a87e88..642471109f 100644 --- a/Documentation/githooks.txt +++ b/Documentation/githooks.txt @@ -404,6 +404,35 @@ Both standard output and standard error output are forwarded to `git send-pack` on the other end, so you can simply `echo` messages for the user. +ref-transaction +~~~~~~~~~~~~~~~ + +This hook is invoked by any Git command that performs reference +updates. It executes whenever a reference transaction is prepared, +committed or aborted and may thus get called multiple times. + +The hook takes exactly one argument, which is the current state the +given reference transaction is in: + + - "prepared": All reference updates have been queued to the + transaction and references were locked on disk. + + - "committed": The reference transaction was committed and all + references now have their respective new value. + + - "aborted": The reference transaction was aborted, no changes + were performed and the locks have been released. + +For each reference update that was added to the transaction, the hook +receives on standard input a line of the format: + + <old-value> SP <new-value> SP <ref-name> LF + +The exit status of the hook is ignored for any state except for the +"prepared" state. In the "prepared" state, a non-zero exit status will +cause the transaction to be aborted. The hook will not be called with +"aborted" state in that case. + push-to-checkout ~~~~~~~~~~~~~~~~ diff --git a/Documentation/gitmodules.txt b/Documentation/gitmodules.txt index 67275fd187..539b4e1997 100644 --- a/Documentation/gitmodules.txt +++ b/Documentation/gitmodules.txt @@ -49,9 +49,9 @@ submodule.<name>.update:: submodule.<name>.branch:: A remote branch name for tracking updates in the upstream submodule. - If the option is not specified, it defaults to 'master'. A special - value of `.` is used to indicate that the name of the branch in the - submodule should be the same name as the current branch in the + If the option is not specified, it defaults to the remote 'HEAD'. + A special value of `.` is used to indicate that the name of the branch + in the submodule should be the same name as the current branch in the current repository. See the `--remote` documentation in linkgit:git-submodule[1] for details. diff --git a/Documentation/gitremote-helpers.txt b/Documentation/gitremote-helpers.txt index f48a031dc3..6f1e269ae4 100644 --- a/Documentation/gitremote-helpers.txt +++ b/Documentation/gitremote-helpers.txt @@ -238,6 +238,9 @@ the remote repository. `--signed-tags=verbatim` to linkgit:git-fast-export[1]. In the absence of this capability, Git will use `--signed-tags=warn-strip`. +'object-format':: + This indicates that the helper is able to interact with the remote + side using an explicit hash algorithm extension. COMMANDS @@ -257,12 +260,14 @@ Support for this command is mandatory. 'list':: Lists the refs, one per line, in the format "<value> <name> [<attr> ...]". The value may be a hex sha1 hash, "@<dest>" for - a symref, or "?" to indicate that the helper could not get the - value of the ref. A space-separated list of attributes follows - the name; unrecognized attributes are ignored. The list ends - with a blank line. + a symref, ":<keyword> <value>" for a key-value pair, or + "?" to indicate that the helper could not get the value of the + ref. A space-separated list of attributes follows the name; + unrecognized attributes are ignored. The list ends with a + blank line. + See REF LIST ATTRIBUTES for a list of currently defined attributes. +See REF LIST KEYWORDS for a list of currently defined keywords. + Supported if the helper has the "fetch" or "import" capability. @@ -405,7 +410,9 @@ Supported if the helper has the "connect" capability. trying to fall back). After line feed terminating the positive (empty) response, the output of the service starts. Messages (both request and response) must consist of zero or more - PKT-LINEs, terminating in a flush packet. The client must not + PKT-LINEs, terminating in a flush packet. Response messages will + then have a response end packet after the flush packet to + indicate the end of a response. The client must not expect the server to store any state in between request-response pairs. After the connection ends, the remote helper exits. + @@ -430,6 +437,18 @@ attributes are defined. This ref is unchanged since the last import or fetch, although the helper cannot necessarily determine what value that produced. +REF LIST KEYWORDS +----------------- + +The 'list' command may produce a list of key-value pairs. +The following keys are defined. + +'object-format':: + The refs are using the given hash algorithm. This keyword is only + used if the server and client both support the object-format + extension. + + OPTIONS ------- @@ -514,6 +533,14 @@ set by Git if the remote helper has the 'option' capability. transaction. If successful, all refs will be updated, or none will. If the remote side does not support this capability, the push will fail. +'option object-format' {'true'|algorithm}:: + If 'true', indicate that the caller wants hash algorithm information + to be passed back from the remote. This mode is used when fetching + refs. ++ +If set to an algorithm, indicate that the caller wants to interact with +the remote side using that algorithm. + SEE ALSO -------- linkgit:git-remote[1] diff --git a/Documentation/gitworkflows.txt b/Documentation/gitworkflows.txt index abc0dc6bc7..2db7ba7842 100644 --- a/Documentation/gitworkflows.txt +++ b/Documentation/gitworkflows.txt @@ -85,15 +85,15 @@ As a given feature goes from experimental to stable, it also There is a fourth official branch that is used slightly differently: -* 'pu' (proposed updates) is an integration branch for things that are - not quite ready for inclusion yet (see "Integration Branches" - below). +* 'seen' (patches seen by the maintainer) is an integration branch for + things that are not quite ready for inclusion yet (see "Integration + Branches" below). Each of the four branches is usually a direct descendant of the one above it. Conceptually, the feature enters at an unstable branch (usually 'next' -or 'pu'), and "graduates" to 'master' for the next release once it is +or 'seen'), and "graduates" to 'master' for the next release once it is considered stable enough. @@ -207,7 +207,7 @@ If you make it (very) clear that this branch is going to be deleted right after the testing, you can even publish this branch, for example to give the testers a chance to work with it, or other developers a chance to see if their in-progress work will be compatible. `git.git` -has such an official throw-away integration branch called 'pu'. +has such an official throw-away integration branch called 'seen'. Branch management for a release @@ -291,7 +291,7 @@ This will not happen if the content of the branches was verified as described in the previous section. -Branch management for next and pu after a feature release +Branch management for next and seen after a feature release ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After a feature release, the integration branch 'next' may optionally be @@ -319,8 +319,8 @@ so. If you do this, then you should make a public announcement indicating that 'next' was rewound and rebuilt. -The same rewind and rebuild process may be followed for 'pu'. A public -announcement is not necessary since 'pu' is a throw-away branch, as +The same rewind and rebuild process may be followed for 'seen'. A public +announcement is not necessary since 'seen' is a throw-away branch, as described above. diff --git a/Documentation/howto/maintain-git.txt b/Documentation/howto/maintain-git.txt index 73be8b49f8..a67130debb 100644 --- a/Documentation/howto/maintain-git.txt +++ b/Documentation/howto/maintain-git.txt @@ -66,7 +66,7 @@ this mailing list after each feature release is made. demonstrated to be regression free. New changes are tested in 'next' before merged to 'master'. - - 'pu' branch is used to publish other proposed changes that do + - 'seen' branch is used to publish other proposed changes that do not yet pass the criteria set for 'next'. - The tips of 'master' and 'maint' branches will not be rewound to @@ -76,7 +76,7 @@ this mailing list after each feature release is made. of the cycle. - Usually 'master' contains all of 'maint' and 'next' contains all - of 'master'. 'pu' contains all the topics merged to 'next', but + of 'master'. 'seen' contains all the topics merged to 'next', but is rebuilt directly on 'master'. - The tip of 'master' is meant to be more stable than any @@ -229,12 +229,12 @@ by doing the following: series?) - Prepare 'jch' branch, which is used to represent somewhere - between 'master' and 'pu' and often is slightly ahead of 'next'. + between 'master' and 'seen' and often is slightly ahead of 'next'. - $ Meta/Reintegrate master..pu >Meta/redo-jch.sh + $ Meta/Reintegrate master..seen >Meta/redo-jch.sh The result is a script that lists topics to be merged in order to - rebuild 'pu' as the input to Meta/Reintegrate script. Remove + rebuild 'seen' as the input to Meta/Reintegrate script. Remove later topics that should not be in 'jch' yet. Add a line that consists of '### match next' before the name of the first topic in the output that should be in 'jch' but not in 'next' yet. @@ -291,29 +291,29 @@ by doing the following: merged to 'master'. This may lose '### match next' marker; add it again to the appropriate place when it happens. - - Rebuild 'pu'. + - Rebuild 'seen'. - $ Meta/Reintegrate master..pu >Meta/redo-pu.sh + $ Meta/Reintegrate master..seen >Meta/redo-seen.sh - Edit the result by adding new topics that are not still in 'pu' + Edit the result by adding new topics that are not still in 'seen' in the script. Then - $ git checkout -B pu jch - $ sh Meta/redo-pu.sh + $ git checkout -B seen jch + $ sh Meta/redo-seen.sh - When all is well, clean up the redo-pu.sh script with + When all is well, clean up the redo-seen.sh script with - $ sh Meta/redo-pu.sh -u + $ sh Meta/redo-seen.sh -u Double check by running - $ git branch --no-merged pu + $ git branch --no-merged seen to see there is no unexpected leftover topics. At this point, build-test the result for semantic conflicts, and if there are, prepare an appropriate merge-fix first (see - appendix), and rebuild the 'pu' branch from scratch, starting at + appendix), and rebuild the 'seen' branch from scratch, starting at the tip of 'jch'. - Update "What's cooking" message to review the updates to @@ -323,14 +323,14 @@ by doing the following: $ Meta/cook - This script inspects the history between master..pu, finds tips + This script inspects the history between master..seen, finds tips of topic branches, compares what it found with the current contents in Meta/whats-cooking.txt, and updates that file. - Topics not listed in the file but are found in master..pu are + Topics not listed in the file but are found in master..seen are added to the "New topics" section, topics listed in the file that - are no longer found in master..pu are moved to the "Graduated to + are no longer found in master..seen are moved to the "Graduated to master" section, and topics whose commits changed their states - (e.g. used to be only in 'pu', now merged to 'next') are updated + (e.g. used to be only in 'seen', now merged to 'next') are updated with change markers "<<" and ">>". Look for lines enclosed in "<<" and ">>"; they hold contents from @@ -360,7 +360,7 @@ Observations Some observations to be made. * Each topic is tested individually, and also together with other - topics cooking first in 'pu', then in 'jch' and then in 'next'. + topics cooking first in 'seen', then in 'jch' and then in 'next'. Until it matures, no part of it is merged to 'master'. * A topic already in 'next' can get fixes while still in @@ -411,7 +411,7 @@ new use of the variable under its old name. When these two topics are merged together, the reference to the variable newly added by the latter topic will still use the old name in the result. -The Meta/Reintegrate script that is used by redo-jch and redo-pu +The Meta/Reintegrate script that is used by redo-jch and redo-seen scripts implements a crude but usable way to work this issue around. When the script merges branch $X, it checks if "refs/merge-fix/$X" exists, and if so, the effect of it is squashed into the result of @@ -431,14 +431,14 @@ commit that can be squashed into a result of mechanical merge to correct semantic conflicts. After finding that the result of merging branch "ai/topic" to an -integration branch had such a semantic conflict, say pu~4, check the +integration branch had such a semantic conflict, say seen~4, check the problematic merge out on a detached HEAD, edit the working tree to fix the semantic conflict, and make a separate commit to record the fix-up: - $ git checkout pu~4 + $ git checkout seen~4 $ git show -s --pretty=%s ;# double check - Merge branch 'ai/topic' to pu + Merge branch 'ai/topic' to seen $ edit $ git commit -m 'merge-fix/ai/topic' -a @@ -450,9 +450,9 @@ result: Then double check the result by asking Meta/Reintegrate to redo the merge: - $ git checkout pu~5 ;# the parent of the problem merge + $ git checkout seen~5 ;# the parent of the problem merge $ echo ai/topic | Meta/Reintegrate - $ git diff pu~4 + $ git diff seen~4 This time, because you prepared refs/merge-fix/ai/topic, the resulting merge should have been tweaked to include the fix for the @@ -464,7 +464,7 @@ branch needs this merge-fix is because another branch merged earlier to the integration branch changed the underlying assumption ai/topic branch made (e.g. ai/topic branch added a site to refer to a variable, while the other branch renamed that variable and adjusted -existing use sites), and if you changed redo-jch (or redo-pu) script +existing use sites), and if you changed redo-jch (or redo-seen) script to merge ai/topic branch before the other branch, then the above merge-fix should not be applied while merging ai/topic, but should instead be applied while merging the other branch. You would need diff --git a/Documentation/howto/rebase-from-internal-branch.txt b/Documentation/howto/rebase-from-internal-branch.txt index 02cb5f758d..f2e10a7ec8 100644 --- a/Documentation/howto/rebase-from-internal-branch.txt +++ b/Documentation/howto/rebase-from-internal-branch.txt @@ -4,7 +4,7 @@ Cc: Petr Baudis <pasky@suse.cz>, Linus Torvalds <torvalds@osdl.org> Subject: Re: sending changesets from the middle of a git tree Date: Sun, 14 Aug 2005 18:37:39 -0700 Abstract: In this article, JC talks about how he rebases the - public "pu" branch using the core Git tools when he updates + public "seen" branch using the core Git tools when he updates the "master" branch, and how "rebase" works. Also discussed is how this applies to individual developers who sends patches upstream. @@ -20,8 +20,8 @@ Petr Baudis <pasky@suse.cz> writes: > where Junio C Hamano <junkio@cox.net> told me that... >> Linus Torvalds <torvalds@osdl.org> writes: >> ->> > Junio, maybe you want to talk about how you move patches from your "pu" ->> > branch to the real branches. +>> > Junio, maybe you want to talk about how you move patches from your +>> > "seen" branch to the real branches. >> > Actually, wouldn't this be also precisely for what StGIT is intended to? -------------------------------------- @@ -33,12 +33,12 @@ the kind of task StGIT is designed to do. I just have done a simpler one, this time using only the core Git tools. -I had a handful of commits that were ahead of master in pu, and I +I had a handful of commits that were ahead of master in 'seen', and I wanted to add some documentation bypassing my usual habit of -placing new things in pu first. At the beginning, the commit +placing new things in 'seen' first. At the beginning, the commit ancestry graph looked like this: - *"pu" head + *"seen" head master --> #1 --> #2 --> #3 So I started from master, made a bunch of edits, and committed: @@ -50,7 +50,7 @@ So I started from master, made a bunch of edits, and committed: After the commit, the ancestry graph would look like this: - *"pu" head + *"seen" head master^ --> #1 --> #2 --> #3 \ \---> master @@ -58,31 +58,31 @@ After the commit, the ancestry graph would look like this: The old master is now master^ (the first parent of the master). The new master commit holds my documentation updates. -Now I have to deal with "pu" branch. +Now I have to deal with "seen" branch. This is the kind of situation I used to have all the time when Linus was the maintainer and I was a contributor, when you look -at "master" branch being the "maintainer" branch, and "pu" +at "master" branch being the "maintainer" branch, and "seen" branch being the "contributor" branch. Your work started at the tip of the "maintainer" branch some time ago, you made a lot of progress in the meantime, and now the maintainer branch has some other commits you do not have yet. And "git rebase" was written with the explicit purpose of helping to maintain branches like -"pu". You _could_ merge master to pu and keep going, but if you +"seen". You _could_ merge master to 'seen' and keep going, but if you eventually want to cherrypick and merge some but not necessarily all changes back to the master branch, it often makes later operations for _you_ easier if you rebase (i.e. carry forward -your changes) "pu" rather than merge. So I ran "git rebase": +your changes) "seen" rather than merge. So I ran "git rebase": - $ git checkout pu - $ git rebase master pu + $ git checkout seen + $ git rebase master seen What this does is to pick all the commits since the current -branch (note that I now am on "pu" branch) forked from the +branch (note that I now am on "seen" branch) forked from the master branch, and forward port these changes. master^ --> #1 --> #2 --> #3 - \ *"pu" head + \ *"seen" head \---> master --> #1' --> #2' --> #3' The diff between master^ and #1 is applied to master and @@ -92,7 +92,7 @@ commits are made similarly out of #2 and #3 commits. Old #3 is not recorded in any of the .git/refs/heads/ file anymore, so after doing this you will have dangling commit if -you ran fsck-cache, which is normal. After testing "pu", you +you ran fsck-cache, which is normal. After testing "seen", you can run "git prune" to get rid of those original three commits. While I am talking about "git rebase", I should talk about how diff --git a/Documentation/howto/revert-branch-rebase.txt b/Documentation/howto/revert-branch-rebase.txt index 149508e13b..a3e5595a56 100644 --- a/Documentation/howto/revert-branch-rebase.txt +++ b/Documentation/howto/revert-branch-rebase.txt @@ -15,7 +15,7 @@ One of the changes I pulled into the 'master' branch turns out to break building Git with GCC 2.95. While they were well-intentioned portability fixes, keeping things working with gcc-2.95 was also important. Here is what I did to revert the change in the 'master' -branch and to adjust the 'pu' branch, using core Git tools and +branch and to adjust the 'seen' branch, using core Git tools and barebone Porcelain. First, prepare a throw-away branch in case I screw things up. @@ -104,11 +104,11 @@ $ git diff master..revert-c99 says nothing. -Then we rebase the 'pu' branch as usual. +Then we rebase the 'seen' branch as usual. ------------------------------------------------ -$ git checkout pu -$ git tag pu-anchor pu +$ git checkout seen +$ git tag seen-anchor seen $ git rebase master * Applying: Redo "revert" using three-way merge machinery. First trying simple merge strategy to cherry-pick. @@ -127,11 +127,11 @@ First trying simple merge strategy to cherry-pick. First trying simple merge strategy to cherry-pick. ------------------------------------------------ -The temporary tag 'pu-anchor' is me just being careful, in case 'git +The temporary tag 'seen-anchor' is me just being careful, in case 'git rebase' screws up. After this, I can do these for sanity check: ------------------------------------------------ -$ git diff pu-anchor..pu ;# make sure we got the master fix. +$ git diff seen-anchor..seen ;# make sure we got the master fix. $ make CC=gcc-2.95 clean test ;# make sure it fixed the breakage. $ make clean test ;# make sure it did not cause other breakage. ------------------------------------------------ @@ -140,7 +140,7 @@ Everything is in the good order. I do not need the temporary branch or tag anymore, so remove them: ------------------------------------------------ -$ rm -f .git/refs/tags/pu-anchor +$ rm -f .git/refs/tags/seen-anchor $ git branch -d revert-c99 ------------------------------------------------ @@ -168,18 +168,18 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f And the final repository status looks like this: ------------------------------------------------ -$ git show-branch --more=1 master pu rc +$ git show-branch --more=1 master seen rc ! [master] Revert "Replace zero-length array decls with []." - ! [pu] git-repack: Add option to repack all objects. + ! [seen] git-repack: Add option to repack all objects. * [rc] Merge refs/heads/master from . --- - + [pu] git-repack: Add option to repack all objects. - + [pu~1] More documentation updates. - + [pu~2] Show commits in topo order and name all commits. - + [pu~3] mailinfo and applymbox updates - + [pu~4] Document "git cherry-pick" and "git revert" - + [pu~5] Remove git-apply-patch-script. - + [pu~6] Redo "revert" using three-way merge machinery. + + [seen] git-repack: Add option to repack all objects. + + [seen~1] More documentation updates. + + [seen~2] Show commits in topo order and name all commits. + + [seen~3] mailinfo and applymbox updates + + [seen~4] Document "git cherry-pick" and "git revert" + + [seen~5] Remove git-apply-patch-script. + + [seen~6] Redo "revert" using three-way merge machinery. - [rc] Merge refs/heads/master from . ++* [master] Revert "Replace zero-length array decls with []." - [rc~1] Merge refs/heads/master from . diff --git a/Documentation/howto/update-hook-example.txt b/Documentation/howto/update-hook-example.txt index 89821ec74f..151ee84ceb 100644 --- a/Documentation/howto/update-hook-example.txt +++ b/Documentation/howto/update-hook-example.txt @@ -179,7 +179,7 @@ allowed-groups, to describe which heads can be pushed into by whom. The format of each file would look like this: refs/heads/master junio - +refs/heads/pu junio + +refs/heads/seen junio refs/heads/cogito$ pasky refs/heads/bw/.* linus refs/heads/tmp/.* .* @@ -187,6 +187,6 @@ whom. The format of each file would look like this: With this, Linus can push or create "bw/penguin" or "bw/zebra" or "bw/panda" branches, Pasky can do only "cogito", and JC can -do master and pu branches and make versioned tags. And anybody -can do tmp/blah branches. The '+' sign at the pu record means +do master and "seen" branches and make versioned tags. And anybody +can do tmp/blah branches. The '+' sign at the "seen" record means that JC can make non-fast-forward pushes on it. diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 547a552463..84bbc7439a 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -196,8 +196,8 @@ The placeholders are: '%ce':: committer email '%cE':: committer email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) -'%cl':: author email local-part (the part before the '@' sign) -'%cL':: author local-part (see '%cl') respecting .mailmap, see +'%cl':: committer email local-part (the part before the '@' sign) +'%cL':: committer local-part (see '%cl') respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) '%cd':: committer date (format respects --date= option) '%cD':: committer date, RFC2822 style diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 04ad7dd36e..b01b2b6773 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -581,12 +581,12 @@ option does. Applied to the 'D..M' range, it results in: Before discussing another option, `--show-pulls`, we need to create a new example history. -+ + A common problem users face when looking at simplified history is that a commit they know changed a file somehow does not appear in the file's simplified history. Let's demonstrate a new example and show how options such as `--full-history` and `--simplify-merges` works in that case: -+ + ----------------------------------------------------------------------- .-A---M-----C--N---O---P / / \ \ \/ / / @@ -595,7 +595,7 @@ such as `--full-history` and `--simplify-merges` works in that case: \ / /\ / `---X--' `---Y--' ----------------------------------------------------------------------- -+ + For this example, suppose `I` created `file.txt` which was modified by `A`, `B`, and `X` in different ways. The single-parent commits `C`, `Z`, and `Y` do not change `file.txt`. The merge commit `M` was created by @@ -607,19 +607,19 @@ the contents of `file.txt` at `X`. Hence, `R` is TREESAME to `X` but not contents of `file.txt` at `R`, so `N` is TREESAME to `R` but not `C`. The merge commits `O` and `P` are TREESAME to their first parents, but not to their second parents, `Z` and `Y` respectively. -+ + When using the default mode, `N` and `R` both have a TREESAME parent, so those edges are walked and the others are ignored. The resulting history graph is: -+ + ----------------------------------------------------------------------- I---X ----------------------------------------------------------------------- -+ + When using `--full-history`, Git walks every edge. This will discover the commits `A` and `B` and the merge `M`, but also will reveal the merge commits `O` and `P`. With parent rewriting, the resulting graph is: -+ + ----------------------------------------------------------------------- .-A---M--------N---O---P / / \ \ \/ / / @@ -628,21 +628,21 @@ merge commits `O` and `P`. With parent rewriting, the resulting graph is: \ / /\ / `---X--' `------' ----------------------------------------------------------------------- -+ + Here, the merge commits `O` and `P` contribute extra noise, as they did not actually contribute a change to `file.txt`. They only merged a topic that was based on an older version of `file.txt`. This is a common issue in repositories using a workflow where many contributors work in parallel and merge their topic branches along a single trunk: manu unrelated merges appear in the `--full-history` results. -+ + When using the `--simplify-merges` option, the commits `O` and `P` disappear from the results. This is because the rewritten second parents of `O` and `P` are reachable from their first parents. Those edges are removed and then the commits look like single-parent commits that are TREESAME to their parent. This also happens to the commit `N`, resulting in a history view as follows: -+ + ----------------------------------------------------------------------- .-A---M--. / / \ @@ -651,18 +651,18 @@ in a history view as follows: \ / / `---X--' ----------------------------------------------------------------------- -+ + In this view, we see all of the important single-parent changes from `A`, `B`, and `X`. We also see the carefully-resolved merge `M` and the not-so-carefully-resolved merge `R`. This is usually enough information to determine why the commits `A` and `B` "disappeared" from history in the default view. However, there are a few issues with this approach. -+ + The first issue is performance. Unlike any previous option, the `--simplify-merges` option requires walking the entire commit history before returning a single result. This can make the option difficult to use for very large repositories. -+ + The second issue is one of auditing. When many contributors are working on the same repository, it is important which merge commits introduced a change into an important branch. The problematic merge `R` above is @@ -671,10 +671,13 @@ important branch. Instead, the merge `N` was used to merge `R` and `X` into the important branch. This commit may have information about why the change `X` came to override the changes from `A` and `B` in its commit message. + +--show-pulls:: + In addition to the commits shown in the default history, show + each merge commit that is not TREESAME to its first parent but + is TREESAME to a later parent. + -The `--show-pulls` option helps with both of these issues by adding more -merge commits to the history results. If a merge is not TREESAME to its -first parent but is TREESAME to a later parent, then that merge is +When a merge commit is included by `--show-pulls`, the merge is treated as if it "pulled" the change from another branch. When using `--show-pulls` on this example (and no other options) the resulting graph is: diff --git a/Documentation/technical/http-protocol.txt b/Documentation/technical/http-protocol.txt index 9c5b6f0fac..51a79e63de 100644 --- a/Documentation/technical/http-protocol.txt +++ b/Documentation/technical/http-protocol.txt @@ -216,7 +216,7 @@ smart server reply: S: 001e# service=git-upload-pack\n S: 0000 S: 004895dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0multi_ack\n - S: 0042d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master\n + S: 003fd049f6c27a2244e12041955e262a404c7faba355 refs/heads/master\n S: 003c2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0\n S: 003fa3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}\n S: 0000 diff --git a/Documentation/technical/pack-protocol.txt b/Documentation/technical/pack-protocol.txt index d5ce4eea8a..a4573d12ce 100644 --- a/Documentation/technical/pack-protocol.txt +++ b/Documentation/technical/pack-protocol.txt @@ -96,7 +96,7 @@ Basically what the Git client is doing to connect to an 'upload-pack' process on the server side over the Git protocol is this: $ echo -e -n \ - "0039git-upload-pack /schacon/gitbook.git\0host=example.com\0" | + "003agit-upload-pack /schacon/gitbook.git\0host=example.com\0" | nc -v example.com 9418 @@ -171,9 +171,9 @@ with a version number (if "version=1" is sent as an Extra Parameter), and a listing of each reference it has (all branches and tags) along with the object name that each reference currently points to. - $ echo -e -n "0044git-upload-pack /schacon/gitbook.git\0host=example.com\0\0version=1\0" | + $ echo -e -n "0045git-upload-pack /schacon/gitbook.git\0host=example.com\0\0version=1\0" | nc -v example.com 9418 - 000aversion 1 + 000eversion 1 00887217a7c7e582c46cec22a130adf4b9d7d950fba0 HEAD\0multi_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag 00441d3fcd5ced445d1abc402225c0b8a1299641f497 refs/heads/integration diff --git a/Documentation/technical/packfile-uri.txt b/Documentation/technical/packfile-uri.txt new file mode 100644 index 0000000000..318713abc3 --- /dev/null +++ b/Documentation/technical/packfile-uri.txt @@ -0,0 +1,78 @@ +Packfile URIs +============= + +This feature allows servers to serve part of their packfile response as URIs. +This allows server designs that improve scalability in bandwidth and CPU usage +(for example, by serving some data through a CDN), and (in the future) provides +some measure of resumability to clients. + +This feature is available only in protocol version 2. + +Protocol +-------- + +The server advertises the `packfile-uris` capability. + +If the client then communicates which protocols (HTTPS, etc.) it supports with +a `packfile-uris` argument, the server MAY send a `packfile-uris` section +directly before the `packfile` section (right after `wanted-refs` if it is +sent) containing URIs of any of the given protocols. The URIs point to +packfiles that use only features that the client has declared that it supports +(e.g. ofs-delta and thin-pack). See protocol-v2.txt for the documentation of +this section. + +Clients should then download and index all the given URIs (in addition to +downloading and indexing the packfile given in the `packfile` section of the +response) before performing the connectivity check. + +Server design +------------- + +The server can be trivially made compatible with the proposed protocol by +having it advertise `packfile-uris`, tolerating the client sending +`packfile-uris`, and never sending any `packfile-uris` section. But we should +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. The client will download those URIs, +expecting them to each point to packfiles containing single blobs. + +Client design +------------- + +The client has a config variable `fetch.uriprotocols` that determines which +protocols the end user is willing to use. By default, this is empty. + +When the client downloads the given URIs, it should store them with "keep" +files, just like it does with the packfile in the `packfile` section. These +additional "keep" files can only be removed after the refs have been updated - +just like the "keep" file for the packfile in the `packfile` section. + +The division of work (initial fetch + additional URIs) introduces convenient +points for resumption of an interrupted clone - such resumption can be done +after the Minimum Viable Product (see "Future work"). + +Future work +----------- + +The protocol design allows some evolution of the server and client without any +need for protocol changes, so only a small-scoped design is included here to +form the MVP. For example, the following can be done: + + * On the server, more sophisticated means of excluding objects (e.g. by + specifying a commit to represent that commit and all objects that it + references). + * On the client, resumption of clone. If a clone is interrupted, information + could be recorded in the repository's config and a "clone-resume" command + can resume the clone in progress. (Resumption of subsequent fetches is more + difficult because that must deal with the user wanting to use the repository + even after the fetch was interrupted.) + +There are some possible features that will require a change in protocol: + + * Additional HTTP headers (e.g. authentication) + * Byte range support + * Different file formats referenced by URIs (e.g. raw object) diff --git a/Documentation/technical/protocol-capabilities.txt b/Documentation/technical/protocol-capabilities.txt index 2b267c0da6..36ccd14f97 100644 --- a/Documentation/technical/protocol-capabilities.txt +++ b/Documentation/technical/protocol-capabilities.txt @@ -176,6 +176,21 @@ agent strings are purely informative for statistics and debugging purposes, and MUST NOT be used to programmatically assume the presence or absence of particular features. +object-format +------------- + +This capability, which takes a hash algorithm as an argument, indicates +that the server supports the given hash algorithms. It may be sent +multiple times; if so, the first one given is the one used in the ref +advertisement. + +When provided by the client, this indicates that it intends to use the +given hash algorithm to communicate. The algorithm provided must be one +that the server supports. + +If this capability is not provided, it is assumed that the only +supported algorithm is SHA-1. + symref ------ diff --git a/Documentation/technical/protocol-v2.txt b/Documentation/technical/protocol-v2.txt index 7e3766cafb..e597b74da3 100644 --- a/Documentation/technical/protocol-v2.txt +++ b/Documentation/technical/protocol-v2.txt @@ -33,6 +33,8 @@ In protocol v2 these special packets will have the following semantics: * '0000' Flush Packet (flush-pkt) - indicates the end of a message * '0001' Delimiter Packet (delim-pkt) - separates sections of a message + * '0002' Message Packet (response-end-pkt) - indicates the end of a response + for stateless connections Initial Client Request ---------------------- @@ -323,13 +325,26 @@ included in the client's request: indicating its sideband (1, 2, or 3), and the server may send "0005\2" (a PKT-LINE of sideband 2 with no payload) as a keepalive packet. +If the 'packfile-uris' feature is advertised, the following argument +can be included in the client's request as well as the potential +addition of the 'packfile-uris' section in the server's response as +explained below. + + packfile-uris <comma-separated list of protocols> + Indicates to the server that the client is willing to receive + URIs of any of the given protocols in place of objects in the + sent packfile. Before performing the connectivity check, the + client should download from all given URIs. Currently, the + protocols supported are "http" and "https". + The response of `fetch` is broken into a number of sections separated by delimiter packets (0001), with each section beginning with its section -header. +header. Most sections are sent only when the packfile is sent. - output = *section - section = (acknowledgments | shallow-info | wanted-refs | packfile) - (flush-pkt | delim-pkt) + output = acknowledgements flush-pkt | + [acknowledgments delim-pkt] [shallow-info delim-pkt] + [wanted-refs delim-pkt] [packfile-uris delim-pkt] + packfile flush-pkt acknowledgments = PKT-LINE("acknowledgments" LF) (nak | *ack) @@ -347,13 +362,17 @@ header. *PKT-LINE(wanted-ref LF) wanted-ref = obj-id SP refname + packfile-uris = PKT-LINE("packfile-uris" LF) *packfile-uri + packfile-uri = PKT-LINE(40*(HEXDIGIT) SP *%x20-ff LF) + packfile = PKT-LINE("packfile" LF) *PKT-LINE(%x01-03 *%x00-ff) acknowledgments section - * If the client determines that it is finished with negotiations - by sending a "done" line, the acknowledgments sections MUST be - omitted from the server's response. + * If the client determines that it is finished with negotiations by + sending a "done" line (thus requiring the server to send a packfile), + the acknowledgments sections MUST be omitted from the server's + response. * Always begins with the section header "acknowledgments" @@ -404,9 +423,6 @@ header. which the client has not indicated was shallow as a part of its request. - * This section is only included if a packfile section is also - included in the response. - wanted-refs section * This section is only included if the client has requested a ref using a 'want-ref' line and if a packfile section is also @@ -420,6 +436,20 @@ header. * The server MUST NOT send any refs which were not requested using 'want-ref' lines. + packfile-uris section + * This section is only included if the client sent + 'packfile-uris' and the server has at least one such URI to + send. + + * Always begins with the section header "packfile-uris". + + * For each URI the server sends, it sends a hash of the pack's + contents (as output by git index-pack) followed by the URI. + + * The hashes are 40 hex characters long. When Git upgrades to a new + hash algorithm, this might need to be updated. (It should match + whatever index-pack outputs after "pack\t" or "keep\t". + packfile section * This section is only included if the client has sent 'want' lines in its request and either requested that no more @@ -453,3 +483,12 @@ included in a request. This is done by sending each option as a a request. The provided options must not contain a NUL or LF character. + + object-format +~~~~~~~~~~~~~~~ + +The server can advertise the `object-format` capability with a value `X` (in the +form `object-format=X`) to notify the client that the server is able to deal +with objects using hash algorithm X. If not specified, the server is assumed to +only handle SHA-1. If the client would like to use a hash algorithm other than +SHA-1, it should specify its object-format string. diff --git a/Documentation/technical/reftable.txt b/Documentation/technical/reftable.txt new file mode 100644 index 0000000000..2951840e9c --- /dev/null +++ b/Documentation/technical/reftable.txt @@ -0,0 +1,1083 @@ +reftable +-------- + +Overview +~~~~~~~~ + +Problem statement +^^^^^^^^^^^^^^^^^ + +Some repositories contain a lot of references (e.g. android at 866k, +rails at 31k). The existing packed-refs format takes up a lot of space +(e.g. 62M), and does not scale with additional references. Lookup of a +single reference requires linearly scanning the file. + +Atomic pushes modifying multiple references require copying the entire +packed-refs file, which can be a considerable amount of data moved +(e.g. 62M in, 62M out) for even small transactions (2 refs modified). + +Repositories with many loose references occupy a large number of disk +blocks from the local file system, as each reference is its own file +storing 41 bytes (and another file for the corresponding reflog). This +negatively affects the number of inodes available when a large number of +repositories are stored on the same filesystem. Readers can be penalized +due to the larger number of syscalls required to traverse and read the +`$GIT_DIR/refs` directory. + + +Objectives +^^^^^^^^^^ + +* Near constant time lookup for any single reference, even when the +repository is cold and not in process or kernel cache. +* Near constant time verification if an object name is referred to by at least +one reference (for allow-tip-sha1-in-want). +* Efficient enumeration of an entire namespace, such as `refs/tags/`. +* Support atomic push with `O(size_of_update)` operations. +* Combine reflog storage with ref storage for small transactions. +* Separate reflog storage for base refs and historical logs. + +Description +^^^^^^^^^^^ + +A reftable file is a portable binary file format customized for +reference storage. References are sorted, enabling linear scans, binary +search lookup, and range scans. + +Storage in the file is organized into variable sized blocks. Prefix +compression is used within a single block to reduce disk space. Block +size and alignment is tunable by the writer. + +Performance +^^^^^^^^^^^ + +Space used, packed-refs vs. reftable: + +[cols=",>,>,>,>,>",options="header",] +|=============================================================== +|repository |packed-refs |reftable |% original |avg ref |avg obj +|android |62.2 M |36.1 M |58.0% |33 bytes |5 bytes +|rails |1.8 M |1.1 M |57.7% |29 bytes |4 bytes +|git |78.7 K |48.1 K |61.0% |50 bytes |4 bytes +|git (heads) |332 b |269 b |81.0% |33 bytes |0 bytes +|=============================================================== + +Scan (read 866k refs), by reference name lookup (single ref from 866k +refs), and by SHA-1 lookup (refs with that SHA-1, from 866k refs): + +[cols=",>,>,>,>",options="header",] +|========================================================= +|format |cache |scan |by name |by SHA-1 +|packed-refs |cold |402 ms |409,660.1 usec |412,535.8 usec +|packed-refs |hot | |6,844.6 usec |20,110.1 usec +|reftable |cold |112 ms |33.9 usec |323.2 usec +|reftable |hot | |20.2 usec |320.8 usec +|========================================================= + +Space used for 149,932 log entries for 43,061 refs, reflog vs. reftable: + +[cols=",>,>",options="header",] +|================================ +|format |size |avg entry +|$GIT_DIR/logs |173 M |1209 bytes +|reftable |5 M |37 bytes +|================================ + +Details +~~~~~~~ + +Peeling +^^^^^^^ + +References stored in a reftable are peeled, a record for an annotated +(or signed) tag records both the tag object, and the object it refers +to. This is analogous to storage in the packed-refs format. + +Reference name encoding +^^^^^^^^^^^^^^^^^^^^^^^ + +Reference names are an uninterpreted sequence of bytes that must pass +linkgit:git-check-ref-format[1] as a valid reference name. + +Key unicity +^^^^^^^^^^^ + +Each entry must have a unique key; repeated keys are disallowed. + +Network byte order +^^^^^^^^^^^^^^^^^^ + +All multi-byte, fixed width fields are in network byte order. + +Varint encoding +^^^^^^^^^^^^^^^ + +Varint encoding is identical to the ofs-delta encoding method used +within pack files. + +Decoder works such as: + +.... +val = buf[ptr] & 0x7f +while (buf[ptr] & 0x80) { + ptr++ + val = ((val + 1) << 7) | (buf[ptr] & 0x7f) +} +.... + +Ordering +^^^^^^^^ + +Blocks are lexicographically ordered by their first reference. + +Directory/file conflicts +^^^^^^^^^^^^^^^^^^^^^^^^ + +The reftable format accepts both `refs/heads/foo` and +`refs/heads/foo/bar` as distinct references. + +This property is useful for retaining log records in reftable, but may +confuse versions of Git using `$GIT_DIR/refs` directory tree to maintain +references. Users of reftable may choose to continue to reject `foo` and +`foo/bar` type conflicts to prevent problems for peers. + +File format +~~~~~~~~~~~ + +Structure +^^^^^^^^^ + +A reftable file has the following high-level structure: + +.... +first_block { + header + first_ref_block +} +ref_block* +ref_index* +obj_block* +obj_index* +log_block* +log_index* +footer +.... + +A log-only file omits the `ref_block`, `ref_index`, `obj_block` and +`obj_index` sections, containing only the file header and log block: + +.... +first_block { + header +} +log_block* +log_index* +footer +.... + +in a log-only file the first log block immediately follows the file +header, without padding to block alignment. + +Block size +^^^^^^^^^^ + +The file's block size is arbitrarily determined by the writer, and does +not have to be a power of 2. The block size must be larger than the +longest reference name or log entry used in the repository, as +references cannot span blocks. + +Powers of two that are friendly to the virtual memory system or +filesystem (such as 4k or 8k) are recommended. Larger sizes (64k) can +yield better compression, with a possible increased cost incurred by +readers during access. + +The largest block size is `16777215` bytes (15.99 MiB). + +Block alignment +^^^^^^^^^^^^^^^ + +Writers may choose to align blocks at multiples of the block size by +including `padding` filled with NUL bytes at the end of a block to round +out to the chosen alignment. When alignment is used, writers must +specify the alignment with the file header's `block_size` field. + +Block alignment is not required by the file format. Unaligned files must +set `block_size = 0` in the file header, and omit `padding`. Unaligned +files with more than one ref block must include the link:#Ref-index[ref +index] to support fast lookup. Readers must be able to read both aligned +and non-aligned files. + +Very small files (e.g. a single ref block) may omit `padding` and the ref +index to reduce total file size. + +Header (version 1) +^^^^^^^^^^^^^^^^^^ + +A 24-byte header appears at the beginning of the file: + +.... +'REFT' +uint8( version_number = 1 ) +uint24( block_size ) +uint64( min_update_index ) +uint64( max_update_index ) +.... + +Aligned files must specify `block_size` to configure readers with the +expected block alignment. Unaligned files must set `block_size = 0`. + +The `min_update_index` and `max_update_index` describe bounds for the +`update_index` field of all log records in this file. When reftables are +used in a stack for link:#Update-transactions[transactions], these +fields can order the files such that the prior file's +`max_update_index + 1` is the next file's `min_update_index`. + +Header (version 2) +^^^^^^^^^^^^^^^^^^ + +A 28-byte header appears at the beginning of the file: + +.... +'REFT' +uint8( version_number = 2 ) +uint24( block_size ) +uint64( min_update_index ) +uint64( max_update_index ) +uint32( hash_id ) +.... + +The header is identical to `version_number=1`, with the 4-byte hash ID +("sha1" for SHA1 and "s256" for SHA-256) append to the header. + +For maximum backward compatibility, it is recommended to use version 1 when +writing SHA1 reftables. + +First ref block +^^^^^^^^^^^^^^^ + +The first ref block shares the same block as the file header, and is 24 +bytes smaller than all other blocks in the file. The first block +immediately begins after the file header, at position 24. + +If the first block is a log block (a log-only file), its block header +begins immediately at position 24. + +Ref block format +^^^^^^^^^^^^^^^^ + +A ref block is written as: + +.... +'r' +uint24( block_len ) +ref_record+ +uint24( restart_offset )+ +uint16( restart_count ) + +padding? +.... + +Blocks begin with `block_type = 'r'` and a 3-byte `block_len` which +encodes the number of bytes in the block up to, but not including the +optional `padding`. This is always less than or equal to the file's +block size. In the first ref block, `block_len` includes 24 bytes for +the file header. + +The 2-byte `restart_count` stores the number of entries in the +`restart_offset` list, which must not be empty. Readers can use +`restart_count` to binary search between restarts before starting a +linear scan. + +Exactly `restart_count` 3-byte `restart_offset` values precedes the +`restart_count`. Offsets are relative to the start of the block and +refer to the first byte of any `ref_record` whose name has not been +prefix compressed. Entries in the `restart_offset` list must be sorted, +ascending. Readers can start linear scans from any of these records. + +A variable number of `ref_record` fill the middle of the block, +describing reference names and values. The format is described below. + +As the first ref block shares the first file block with the file header, +all `restart_offset` in the first block are relative to the start of the +file (position 0), and include the file header. This forces the first +`restart_offset` to be `28`. + +ref record +++++++++++ + +A `ref_record` describes a single reference, storing both the name and +its value(s). Records are formatted as: + +.... +varint( prefix_length ) +varint( (suffix_length << 3) | value_type ) +suffix +varint( update_index_delta ) +value? +.... + +The `prefix_length` field specifies how many leading bytes of the prior +reference record's name should be copied to obtain this reference's +name. This must be 0 for the first reference in any block, and also must +be 0 for any `ref_record` whose offset is listed in the `restart_offset` +table at the end of the block. + +Recovering a reference name from any `ref_record` is a simple concat: + +.... +this_name = prior_name[0..prefix_length] + suffix +.... + +The `suffix_length` value provides the number of bytes available in +`suffix` to copy from `suffix` to complete the reference name. + +The `update_index` that last modified the reference can be obtained by +adding `update_index_delta` to the `min_update_index` from the file +header: `min_update_index + update_index_delta`. + +The `value` follows. Its format is determined by `value_type`, one of +the following: + +* `0x0`: deletion; no value data (see transactions, below) +* `0x1`: one object name; value of the ref +* `0x2`: two object names; value of the ref, peeled target +* `0x3`: symbolic reference: `varint( target_len ) target` + +Symbolic references use `0x3`, followed by the complete name of the +reference target. No compression is applied to the target name. + +Types `0x4..0x7` are reserved for future use. + +Ref index +^^^^^^^^^ + +The ref index stores the name of the last reference from every ref block +in the file, enabling reduced disk seeks for lookups. Any reference can +be found by searching the index, identifying the containing block, and +searching within that block. + +The index may be organized into a multi-level index, where the 1st level +index block points to additional ref index blocks (2nd level), which may +in turn point to either additional index blocks (e.g. 3rd level) or ref +blocks (leaf level). Disk reads required to access a ref go up with +higher index levels. Multi-level indexes may be required to ensure no +single index block exceeds the file format's max block size of +`16777215` bytes (15.99 MiB). To achieve constant O(1) disk seeks for +lookups the index must be a single level, which is permitted to exceed +the file's configured block size, but not the format's max block size of +15.99 MiB. + +If present, the ref index block(s) appears after the last ref block. + +If there are at least 4 ref blocks, a ref index block should be written +to improve lookup times. Cold reads using the index require 2 disk reads +(read index, read block), and binary searching < 4 blocks also requires +<= 2 reads. Omitting the index block from smaller files saves space. + +If the file is unaligned and contains more than one ref block, the ref +index must be written. + +Index block format: + +.... +'i' +uint24( block_len ) +index_record+ +uint24( restart_offset )+ +uint16( restart_count ) + +padding? +.... + +The index blocks begin with `block_type = 'i'` and a 3-byte `block_len` +which encodes the number of bytes in the block, up to but not including +the optional `padding`. + +The `restart_offset` and `restart_count` fields are identical in format, +meaning and usage as in ref blocks. + +To reduce the number of reads required for random access in very large +files the index block may be larger than other blocks. However, readers +must hold the entire index in memory to benefit from this, so it's a +time-space tradeoff in both file size and reader memory. + +Increasing the file's block size decreases the index size. Alternatively +a multi-level index may be used, keeping index blocks within the file's +block size, but increasing the number of blocks that need to be +accessed. + +index record +++++++++++++ + +An index record describes the last entry in another block. Index records +are written as: + +.... +varint( prefix_length ) +varint( (suffix_length << 3) | 0 ) +suffix +varint( block_position ) +.... + +Index records use prefix compression exactly like `ref_record`. + +Index records store `block_position` after the suffix, specifying the +absolute position in bytes (from the start of the file) of the block +that ends with this reference. Readers can seek to `block_position` to +begin reading the block header. + +Readers must examine the block header at `block_position` to determine +if the next block is another level index block, or the leaf-level ref +block. + +Reading the index ++++++++++++++++++ + +Readers loading the ref index must first read the footer (below) to +obtain `ref_index_position`. If not present, the position will be 0. The +`ref_index_position` is for the 1st level root of the ref index. + +Obj block format +^^^^^^^^^^^^^^^^ + +Object blocks are optional. Writers may choose to omit object blocks, +especially if readers will not use the object name to ref mapping. + +Object blocks use unique, abbreviated 2-32 object name keys, mapping to +ref blocks containing references pointing to that object directly, or as +the peeled value of an annotated tag. Like ref blocks, object blocks use +the file's standard block size. The abbrevation length is available in +the footer as `obj_id_len`. + +To save space in small files, object blocks may be omitted if the ref +index is not present, as brute force search will only need to read a few +ref blocks. When missing, readers should brute force a linear search of +all references to lookup by object name. + +An object block is written as: + +.... +'o' +uint24( block_len ) +obj_record+ +uint24( restart_offset )+ +uint16( restart_count ) + +padding? +.... + +Fields are identical to ref block. Binary search using the restart table +works the same as in reference blocks. + +Because object names are abbreviated by writers to the shortest unique +abbreviation within the reftable, obj key lengths have a variable length. Their +length must be at least 2 bytes. Readers must compare only for common prefix +match within an obj block or obj index. + +obj record +++++++++++ + +An `obj_record` describes a single object abbreviation, and the blocks +containing references using that unique abbreviation: + +.... +varint( prefix_length ) +varint( (suffix_length << 3) | cnt_3 ) +suffix +varint( cnt_large )? +varint( position_delta )* +.... + +Like in reference blocks, abbreviations are prefix compressed within an +obj block. On large reftables with many unique objects, higher block +sizes (64k), and higher restart interval (128), a `prefix_length` of 2 +or 3 and `suffix_length` of 3 may be common in obj records (unique +abbreviation of 5-6 raw bytes, 10-12 hex digits). + +Each record contains `position_count` number of positions for matching +ref blocks. For 1-7 positions the count is stored in `cnt_3`. When +`cnt_3 = 0` the actual count follows in a varint, `cnt_large`. + +The use of `cnt_3` bets most objects are pointed to by only a single +reference, some may be pointed to by a couple of references, and very +few (if any) are pointed to by more than 7 references. + +A special case exists when `cnt_3 = 0` and `cnt_large = 0`: there are no +`position_delta`, but at least one reference starts with this +abbreviation. A reader that needs exact reference names must scan all +references to find which specific references have the desired object. +Writers should use this format when the `position_delta` list would have +overflowed the file's block size due to a high number of references +pointing to the same object. + +The first `position_delta` is the position from the start of the file. +Additional `position_delta` entries are sorted ascending and relative to +the prior entry, e.g. a reader would perform: + +.... +pos = position_delta[0] +prior = pos +for (j = 1; j < position_count; j++) { + pos = prior + position_delta[j] + prior = pos +} +.... + +With a position in hand, a reader must linearly scan the ref block, +starting from the first `ref_record`, testing each reference's object names +(for `value_type = 0x1` or `0x2`) for full equality. Faster searching by +object name within a single ref block is not supported by the reftable format. +Smaller block sizes reduce the number of candidates this step must +consider. + +Obj index +^^^^^^^^^ + +The obj index stores the abbreviation from the last entry for every obj +block in the file, enabling reduced disk seeks for all lookups. It is +formatted exactly the same as the ref index, but refers to obj blocks. + +The obj index should be present if obj blocks are present, as obj blocks +should only be written in larger files. + +Readers loading the obj index must first read the footer (below) to +obtain `obj_index_position`. If not present, the position will be 0. + +Log block format +^^^^^^^^^^^^^^^^ + +Unlike ref and obj blocks, log blocks are always unaligned. + +Log blocks are variable in size, and do not match the `block_size` +specified in the file header or footer. Writers should choose an +appropriate buffer size to prepare a log block for deflation, such as +`2 * block_size`. + +A log block is written as: + +.... +'g' +uint24( block_len ) +zlib_deflate { + log_record+ + uint24( restart_offset )+ + uint16( restart_count ) +} +.... + +Log blocks look similar to ref blocks, except `block_type = 'g'`. + +The 4-byte block header is followed by the deflated block contents using +zlib deflate. The `block_len` in the header is the inflated size +(including 4-byte block header), and should be used by readers to +preallocate the inflation output buffer. A log block's `block_len` may +exceed the file's block size. + +Offsets within the log block (e.g. `restart_offset`) still include the +4-byte header. Readers may prefer prefixing the inflation output buffer +with the 4-byte header. + +Within the deflate container, a variable number of `log_record` describe +reference changes. The log record format is described below. See ref +block format (above) for a description of `restart_offset` and +`restart_count`. + +Because log blocks have no alignment or padding between blocks, readers +must keep track of the bytes consumed by the inflater to know where the +next log block begins. + +log record +++++++++++ + +Log record keys are structured as: + +.... +ref_name '\0' reverse_int64( update_index ) +.... + +where `update_index` is the unique transaction identifier. The +`update_index` field must be unique within the scope of a `ref_name`. +See the update transactions section below for further details. + +The `reverse_int64` function inverses the value so lexicographical +ordering the network byte order encoding sorts the more recent records +with higher `update_index` values first: + +.... +reverse_int64(int64 t) { + return 0xffffffffffffffff - t; +} +.... + +Log records have a similar starting structure to ref and index records, +utilizing the same prefix compression scheme applied to the log record +key described above. + +.... + varint( prefix_length ) + varint( (suffix_length << 3) | log_type ) + suffix + log_data { + old_id + new_id + varint( name_length ) name + varint( email_length ) email + varint( time_seconds ) + sint16( tz_offset ) + varint( message_length ) message + }? +.... + +Log record entries use `log_type` to indicate what follows: + +* `0x0`: deletion; no log data. +* `0x1`: standard git reflog data using `log_data` above. + +The `log_type = 0x0` is mostly useful for `git stash drop`, removing an +entry from the reflog of `refs/stash` in a transaction file (below), +without needing to rewrite larger files. Readers reading a stack of +reflogs must treat this as a deletion. + +For `log_type = 0x1`, the `log_data` section follows +linkgit:git-update-ref[1] logging and includes: + +* two object names (old id, new id) +* varint string of committer's name +* varint string of committer's email +* varint time in seconds since epoch (Jan 1, 1970) +* 2-byte timezone offset in minutes (signed) +* varint string of message + +`tz_offset` is the absolute number of minutes from GMT the committer was +at the time of the update. For example `GMT-0800` is encoded in reftable +as `sint16(-480)` and `GMT+0230` is `sint16(150)`. + +The committer email does not contain `<` or `>`, it's the value normally +found between the `<>` in a git commit object header. + +The `message_length` may be 0, in which case there was no message +supplied for the update. + +Contrary to traditional reflog (which is a file), renames are encoded as +a combination of ref deletion and ref creation. A deletion is a log +record with a zero new_id, and a creation is a log record with a zero old_id. + +Reading the log ++++++++++++++++ + +Readers accessing the log must first read the footer (below) to +determine the `log_position`. The first block of the log begins at +`log_position` bytes since the start of the file. The `log_position` is +not block aligned. + +Importing logs +++++++++++++++ + +When importing from `$GIT_DIR/logs` writers should globally order all +log records roughly by timestamp while preserving file order, and assign +unique, increasing `update_index` values for each log line. Newer log +records get higher `update_index` values. + +Although an import may write only a single reftable file, the reftable +file must span many unique `update_index`, as each log line requires its +own `update_index` to preserve semantics. + +Log index +^^^^^^^^^ + +The log index stores the log key +(`refname \0 reverse_int64(update_index)`) for the last log record of +every log block in the file, supporting bounded-time lookup. + +A log index block must be written if 2 or more log blocks are written to +the file. If present, the log index appears after the last log block. +There is no padding used to align the log index to block alignment. + +Log index format is identical to ref index, except the keys are 9 bytes +longer to include `'\0'` and the 8-byte `reverse_int64(update_index)`. +Records use `block_position` to refer to the start of a log block. + +Reading the index ++++++++++++++++++ + +Readers loading the log index must first read the footer (below) to +obtain `log_index_position`. If not present, the position will be 0. + +Footer +^^^^^^ + +After the last block of the file, a file footer is written. It begins +like the file header, but is extended with additional data. + +.... + HEADER + + uint64( ref_index_position ) + uint64( (obj_position << 5) | obj_id_len ) + uint64( obj_index_position ) + + uint64( log_position ) + uint64( log_index_position ) + + uint32( CRC-32 of above ) +.... + +If a section is missing (e.g. ref index) the corresponding position +field (e.g. `ref_index_position`) will be 0. + +* `obj_position`: byte position for the first obj block. +* `obj_id_len`: number of bytes used to abbreviate object names in +obj blocks. +* `log_position`: byte position for the first log block. +* `ref_index_position`: byte position for the start of the ref index. +* `obj_index_position`: byte position for the start of the obj index. +* `log_index_position`: byte position for the start of the log index. + +The size of the footer is 68 bytes for version 1, and 72 bytes for +version 2. + +Reading the footer +++++++++++++++++++ + +Readers must first read the file start to determine the version +number. Then they seek to `file_length - FOOTER_LENGTH` to access the +footer. A trusted external source (such as `stat(2)`) is necessary to +obtain `file_length`. When reading the footer, readers must verify: + +* 4-byte magic is correct +* 1-byte version number is recognized +* 4-byte CRC-32 matches the other 64 bytes (including magic, and +version) + +Once verified, the other fields of the footer can be accessed. + +Empty tables +++++++++++++ + +A reftable may be empty. In this case, the file starts with a header +and is immediately followed by a footer. + +Binary search +^^^^^^^^^^^^^ + +Binary search within a block is supported by the `restart_offset` fields +at the end of the block. Readers can binary search through the restart +table to locate between which two restart points the sought reference or +key should appear. + +Each record identified by a `restart_offset` stores the complete key in +the `suffix` field of the record, making the compare operation during +binary search straightforward. + +Once a restart point lexicographically before the sought reference has +been identified, readers can linearly scan through the following record +entries to locate the sought record, terminating if the current record +sorts after (and therefore the sought key is not present). + +Restart point selection ++++++++++++++++++++++++ + +Writers determine the restart points at file creation. The process is +arbitrary, but every 16 or 64 records is recommended. Every 16 may be +more suitable for smaller block sizes (4k or 8k), every 64 for larger +block sizes (64k). + +More frequent restart points reduces prefix compression and increases +space consumed by the restart table, both of which increase file size. + +Less frequent restart points makes prefix compression more effective, +decreasing overall file size, with increased penalties for readers +walking through more records after the binary search step. + +A maximum of `65535` restart points per block is supported. + +Considerations +~~~~~~~~~~~~~~ + +Lightweight refs dominate +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The reftable format assumes the vast majority of references are single +object names valued with common prefixes, such as Gerrit Code Review's +`refs/changes/` namespace, GitHub's `refs/pulls/` namespace, or many +lightweight tags in the `refs/tags/` namespace. + +Annotated tags storing the peeled object cost an additional object name per +reference. + +Low overhead +^^^^^^^^^^^^ + +A reftable with very few references (e.g. git.git with 5 heads) is 269 +bytes for reftable, vs. 332 bytes for packed-refs. This supports +reftable scaling down for transaction logs (below). + +Block size +^^^^^^^^^^ + +For a Gerrit Code Review type repository with many change refs, larger +block sizes (64 KiB) and less frequent restart points (every 64) yield +better compression due to more references within the block compressing +against the prior reference. + +Larger block sizes reduce the index size, as the reftable will require +fewer blocks to store the same number of references. + +Minimal disk seeks +^^^^^^^^^^^^^^^^^^ + +Assuming the index block has been loaded into memory, binary searching +for any single reference requires exactly 1 disk seek to load the +containing block. + +Scans and lookups dominate +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Scanning all references and lookup by name (or namespace such as +`refs/heads/`) are the most common activities performed on repositories. +Object names are stored directly with references to optimize this use case. + +Logs are infrequently read +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Logs are infrequently accessed, but can be large. Deflating log blocks +saves disk space, with some increased penalty at read time. + +Logs are stored in an isolated section from refs, reducing the burden on +reference readers that want to ignore logs. Further, historical logs can +be isolated into log-only files. + +Logs are read backwards +^^^^^^^^^^^^^^^^^^^^^^^ + +Logs are frequently accessed backwards (most recent N records for master +to answer `master@{4}`), so log records are grouped by reference, and +sorted descending by update index. + +Repository format +~~~~~~~~~~~~~~~~~ + +Version 1 +^^^^^^^^^ + +A repository must set its `$GIT_DIR/config` to configure reftable: + +.... +[core] + repositoryformatversion = 1 +[extensions] + refStorage = reftable +.... + +Layout +^^^^^^ + +A collection of reftable files are stored in the `$GIT_DIR/reftable/` +directory: + +.... +00000001-00000001.log +00000002-00000002.ref +00000003-00000003.ref +.... + +where reftable files are named by a unique name such as produced by the +function `${min_update_index}-${max_update_index}.ref`. + +Log-only files use the `.log` extension, while ref-only and mixed ref +and log files use `.ref`. extension. + +The stack ordering file is `$GIT_DIR/reftable/tables.list` and lists the +current files, one per line, in order, from oldest (base) to newest +(most recent): + +.... +$ cat .git/reftable/tables.list +00000001-00000001.log +00000002-00000002.ref +00000003-00000003.ref +.... + +Readers must read `$GIT_DIR/reftable/tables.list` to determine which +files are relevant right now, and search through the stack in reverse +order (last reftable is examined first). + +Reftable files not listed in `tables.list` may be new (and about to be +added to the stack by the active writer), or ancient and ready to be +pruned. + +Backward compatibility +^^^^^^^^^^^^^^^^^^^^^^ + +Older clients should continue to recognize the directory as a git +repository so they don't look for an enclosing repository in parent +directories. To this end, a reftable-enabled repository must contain the +following dummy files + +* `.git/HEAD`, a regular file containing `ref: refs/heads/.invalid`. +* `.git/refs/`, a directory +* `.git/refs/heads`, a regular file + +Readers +^^^^^^^ + +Readers can obtain a consistent snapshot of the reference space by +following: + +1. Open and read the `tables.list` file. +2. Open each of the reftable files that it mentions. +3. If any of the files is missing, goto 1. +4. Read from the now-open files as long as necessary. + +Update transactions +^^^^^^^^^^^^^^^^^^^ + +Although reftables are immutable, mutations are supported by writing a +new reftable and atomically appending it to the stack: + +1. Acquire `tables.list.lock`. +2. Read `tables.list` to determine current reftables. +3. Select `update_index` to be most recent file's +`max_update_index + 1`. +4. Prepare temp reftable `tmp_XXXXXX`, including log entries. +5. Rename `tmp_XXXXXX` to `${update_index}-${update_index}.ref`. +6. Copy `tables.list` to `tables.list.lock`, appending file from (5). +7. Rename `tables.list.lock` to `tables.list`. + +During step 4 the new file's `min_update_index` and `max_update_index` +are both set to the `update_index` selected by step 3. All log records +for the transaction use the same `update_index` in their keys. This +enables later correlation of which references were updated by the same +transaction. + +Because a single `tables.list.lock` file is used to manage locking, the +repository is single-threaded for writers. Writers may have to busy-spin +(with backoff) around creating `tables.list.lock`, for up to an +acceptable wait period, aborting if the repository is too busy to +mutate. Application servers wrapped around repositories (e.g. Gerrit +Code Review) can layer their own lock/wait queue to improve fairness to +writers. + +Reference deletions +^^^^^^^^^^^^^^^^^^^ + +Deletion of any reference can be explicitly stored by setting the `type` +to `0x0` and omitting the `value` field of the `ref_record`. This serves +as a tombstone, overriding any assertions about the existence of the +reference from earlier files in the stack. + +Compaction +^^^^^^^^^^ + +A partial stack of reftables can be compacted by merging references +using a straightforward merge join across reftables, selecting the most +recent value for output, and omitting deleted references that do not +appear in remaining, lower reftables. + +A compacted reftable should set its `min_update_index` to the smallest +of the input files' `min_update_index`, and its `max_update_index` +likewise to the largest input `max_update_index`. + +For sake of illustration, assume the stack currently consists of +reftable files (from oldest to newest): A, B, C, and D. The compactor is +going to compact B and C, leaving A and D alone. + +1. Obtain lock `tables.list.lock` and read the `tables.list` file. +2. Obtain locks `B.lock` and `C.lock`. Ownership of these locks +prevents other processes from trying to compact these files. +3. Release `tables.list.lock`. +4. Compact `B` and `C` into a temp file +`${min_update_index}-${max_update_index}_XXXXXX`. +5. Reacquire lock `tables.list.lock`. +6. Verify that `B` and `C` are still in the stack, in that order. This +should always be the case, assuming that other processes are adhering to +the locking protocol. +7. Rename `${min_update_index}-${max_update_index}_XXXXXX` to +`${min_update_index}-${max_update_index}.ref`. +8. Write the new stack to `tables.list.lock`, replacing `B` and `C` +with the file from (4). +9. Rename `tables.list.lock` to `tables.list`. +10. Delete `B` and `C`, perhaps after a short sleep to avoid forcing +readers to backtrack. + +This strategy permits compactions to proceed independently of updates. + +Each reftable (compacted or not) is uniquely identified by its name, so +open reftables can be cached by their name. + +Alternatives considered +~~~~~~~~~~~~~~~~~~~~~~~ + +bzip packed-refs +^^^^^^^^^^^^^^^^ + +`bzip2` can significantly shrink a large packed-refs file (e.g. 62 MiB +compresses to 23 MiB, 37%). However the bzip format does not support +random access to a single reference. Readers must inflate and discard +while performing a linear scan. + +Breaking packed-refs into chunks (individually compressing each chunk) +would reduce the amount of data a reader must inflate, but still leaves +the problem of indexing chunks to support readers efficiently locating +the correct chunk. + +Given the compression achieved by reftable's encoding, it does not seem +necessary to add the complexity of bzip/gzip/zlib. + +Michael Haggerty's alternate format +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Michael Haggerty proposed +link:https://lore.kernel.org/git/CAMy9T_HCnyc1g8XWOOWhe7nN0aEFyyBskV2aOMb_fe%2BwGvEJ7A%40mail.gmail.com/[an +alternate] format to reftable on the Git mailing list. This format uses +smaller chunks, without the restart table, and avoids block alignment +with padding. Reflog entries immediately follow each ref, and are thus +interleaved between refs. + +Performance testing indicates reftable is faster for lookups (51% +faster, 11.2 usec vs. 5.4 usec), although reftable produces a slightly +larger file (+ ~3.2%, 28.3M vs 29.2M): + +[cols=">,>,>,>",options="header",] +|===================================== +|format |size |seek cold |seek hot +|mh-alt |28.3 M |23.4 usec |11.2 usec +|reftable |29.2 M |19.9 usec |5.4 usec +|===================================== + +JGit Ketch RefTree +^^^^^^^^^^^^^^^^^^ + +https://dev.eclipse.org/mhonarc/lists/jgit-dev/msg03073.html[JGit Ketch] +proposed +link:https://lore.kernel.org/git/CAJo%3DhJvnAPNAdDcAAwAvU9C4RVeQdoS3Ev9WTguHx4fD0V_nOg%40mail.gmail.com/[RefTree], +an encoding of references inside Git tree objects stored as part of the +repository's object database. + +The RefTree format adds additional load on the object database storage +layer (more loose objects, more objects in packs), and relies heavily on +the packer's delta compression to save space. Namespaces which are flat +(e.g. thousands of tags in refs/tags) initially create very large loose +objects, and so RefTree does not address the problem of copying many +references to modify a handful. + +Flat namespaces are not efficiently searchable in RefTree, as tree +objects in canonical formatting cannot be binary searched. This fails +the need to handle a large number of references in a single namespace, +such as GitHub's `refs/pulls`, or a project with many tags. + +LMDB +^^^^ + +David Turner proposed +https://lore.kernel.org/git/1455772670-21142-26-git-send-email-dturner@twopensource.com/[using +LMDB], as LMDB is lightweight (64k of runtime code) and GPL-compatible +license. + +A downside of LMDB is its reliance on a single C implementation. This +makes embedding inside JGit (a popular reimplementation of Git) +difficult, and hoisting onto virtual storage (for JGit DFS) virtually +impossible. + +A common format that can be supported by all major Git implementations +(git-core, JGit, libgit2) is strongly preferred. diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index 833652983f..fd480b8645 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -347,7 +347,7 @@ $ git branch -r origin/man origin/master origin/next - origin/pu + origin/seen origin/todo ------------------------------------------------ diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index c30d71abda..7b0cfeb92e 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.27.0-rc2 +DEF_VER=v2.27.GIT LF=' ' @@ -1186,7 +1186,7 @@ PTHREAD_CFLAGS = # For the 'sparse' target SPARSE_FLAGS ?= -SP_EXTRA_FLAGS = +SP_EXTRA_FLAGS = -Wno-universal-initializer # For the 'coccicheck' target; setting SPATCH_BATCH_SIZE higher will # usually result in less CPU usage at the cost of higher peak memory. @@ -1 +1 @@ -Documentation/RelNotes/2.27.0.txt
\ No newline at end of file +Documentation/RelNotes/2.28.0.txt
\ No newline at end of file diff --git a/add-patch.c b/add-patch.c index d8bfe379be..f899389e2c 100644 --- a/add-patch.c +++ b/add-patch.c @@ -10,7 +10,7 @@ #include "prompt.h" enum prompt_mode_type { - PROMPT_MODE_CHANGE = 0, PROMPT_DELETION, PROMPT_HUNK, + PROMPT_MODE_CHANGE = 0, PROMPT_DELETION, PROMPT_ADDITION, PROMPT_HUNK, PROMPT_MODE_MAX, /* must be last */ }; @@ -33,6 +33,7 @@ static struct patch_mode patch_mode_add = { .prompt_mode = { N_("Stage mode change [y,n,q,a,d%s,?]? "), N_("Stage deletion [y,n,q,a,d%s,?]? "), + N_("Stage addition [y,n,q,a,d%s,?]? "), N_("Stage this hunk [y,n,q,a,d%s,?]? ") }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -54,6 +55,7 @@ static struct patch_mode patch_mode_stash = { .prompt_mode = { N_("Stash mode change [y,n,q,a,d%s,?]? "), N_("Stash deletion [y,n,q,a,d%s,?]? "), + N_("Stash addition [y,n,q,a,d%s,?]? "), N_("Stash this hunk [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -77,6 +79,7 @@ static struct patch_mode patch_mode_reset_head = { .prompt_mode = { N_("Unstage mode change [y,n,q,a,d%s,?]? "), N_("Unstage deletion [y,n,q,a,d%s,?]? "), + N_("Unstage addition [y,n,q,a,d%s,?]? "), N_("Unstage this hunk [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -99,6 +102,7 @@ static struct patch_mode patch_mode_reset_nothead = { .prompt_mode = { N_("Apply mode change to index [y,n,q,a,d%s,?]? "), N_("Apply deletion to index [y,n,q,a,d%s,?]? "), + N_("Apply addition to index [y,n,q,a,d%s,?]? "), N_("Apply this hunk to index [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -121,6 +125,7 @@ static struct patch_mode patch_mode_checkout_index = { .prompt_mode = { N_("Discard mode change from worktree [y,n,q,a,d%s,?]? "), N_("Discard deletion from worktree [y,n,q,a,d%s,?]? "), + N_("Discard addition from worktree [y,n,q,a,d%s,?]? "), N_("Discard this hunk from worktree [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -143,6 +148,7 @@ static struct patch_mode patch_mode_checkout_head = { .prompt_mode = { N_("Discard mode change from index and worktree [y,n,q,a,d%s,?]? "), N_("Discard deletion from index and worktree [y,n,q,a,d%s,?]? "), + N_("Discard addition from index and worktree [y,n,q,a,d%s,?]? "), N_("Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -164,6 +170,7 @@ static struct patch_mode patch_mode_checkout_nothead = { .prompt_mode = { N_("Apply mode change to index and worktree [y,n,q,a,d%s,?]? "), N_("Apply deletion to index and worktree [y,n,q,a,d%s,?]? "), + N_("Apply addition to index and worktree [y,n,q,a,d%s,?]? "), N_("Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -186,6 +193,7 @@ static struct patch_mode patch_mode_worktree_head = { .prompt_mode = { N_("Discard mode change from index and worktree [y,n,q,a,d%s,?]? "), N_("Discard deletion from index and worktree [y,n,q,a,d%s,?]? "), + N_("Discard addition from index and worktree [y,n,q,a,d%s,?]? "), N_("Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -207,6 +215,7 @@ static struct patch_mode patch_mode_worktree_nothead = { .prompt_mode = { N_("Apply mode change to index and worktree [y,n,q,a,d%s,?]? "), N_("Apply deletion to index and worktree [y,n,q,a,d%s,?]? "), + N_("Apply addition to index and worktree [y,n,q,a,d%s,?]? "), N_("Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "), }, .edit_hunk_hint = N_("If the patch applies cleanly, the edited hunk " @@ -248,7 +257,7 @@ struct add_p_state { struct hunk head; struct hunk *hunk; size_t hunk_nr, hunk_alloc; - unsigned deleted:1, mode_change:1,binary:1; + unsigned deleted:1, added:1, mode_change:1,binary:1; } *file_diff; size_t file_diff_nr; @@ -442,7 +451,7 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps) pend = p + plain->len; while (p != pend) { char *eol = memchr(p, '\n', pend - p); - const char *deleted = NULL, *mode_change = NULL; + const char *deleted = NULL, *added = NULL, *mode_change = NULL; if (!eol) eol = pend; @@ -461,11 +470,12 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps) } else if (p == plain->buf) BUG("diff starts with unexpected line:\n" "%.*s\n", (int)(eol - p), p); - else if (file_diff->deleted) + else if (file_diff->deleted || file_diff->added) ; /* keep the rest of the file in a single "hunk" */ else if (starts_with(p, "@@ ") || (hunk == &file_diff->head && - skip_prefix(p, "deleted file", &deleted))) { + (skip_prefix(p, "deleted file", &deleted) || + skip_prefix(p, "new file", &added)))) { if (marker == '-' || marker == '+') /* * Should not happen; previous hunk did not end @@ -485,6 +495,8 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps) if (deleted) file_diff->deleted = 1; + else if (added) + file_diff->added = 1; else if (parse_hunk_header(s, hunk) < 0) return -1; @@ -537,8 +549,10 @@ static int parse_diff(struct add_p_state *s, const struct pathspec *ps) starts_with(p, "Binary files ")) file_diff->binary = 1; - if (file_diff->deleted && file_diff->mode_change) - BUG("diff contains delete *and* a mode change?!?\n%.*s", + if (!!file_diff->deleted + !!file_diff->added + + !!file_diff->mode_change > 1) + BUG("diff can only contain delete *or* add *or* a " + "mode change?!?\n%.*s", (int)(eol - (plain->buf + file_diff->head.start)), plain->buf + file_diff->head.start); @@ -1397,6 +1411,8 @@ static int patch_update_file(struct add_p_state *s, if (file_diff->deleted) prompt_mode_type = PROMPT_DELETION; + else if (file_diff->added) + prompt_mode_type = PROMPT_ADDITION; else if (file_diff->mode_change && !hunk_index) prompt_mode_type = PROMPT_MODE_CHANGE; else @@ -99,23 +99,27 @@ void *alloc_object_node(struct repository *r) return obj; } -static unsigned int alloc_commit_index(struct repository *r) +/* + * The returned count is to be used as an index into commit slabs, + * that are *NOT* maintained per repository, and that is why a single + * global counter is used. + */ +static unsigned int alloc_commit_index(void) { - return r->parsed_objects->commit_count++; + static unsigned int parsed_commits_count; + return parsed_commits_count++; } -void init_commit_node(struct repository *r, struct commit *c) +void init_commit_node(struct commit *c) { c->object.type = OBJ_COMMIT; - c->index = alloc_commit_index(r); - c->graph_pos = COMMIT_NOT_FROM_GRAPH; - c->generation = GENERATION_NUMBER_INFINITY; + c->index = alloc_commit_index(); } void *alloc_commit_node(struct repository *r) { struct commit *c = alloc_node(r->parsed_objects->commit_state, sizeof(struct commit)); - init_commit_node(r, c); + init_commit_node(c); return c; } @@ -9,7 +9,7 @@ struct repository; void *alloc_blob_node(struct repository *r); void *alloc_tree_node(struct repository *r); -void init_commit_node(struct repository *r, struct commit *c); +void init_commit_node(struct commit *c); void *alloc_commit_node(struct repository *r); void *alloc_tag_node(struct repository *r); void *alloc_object_node(struct repository *r); @@ -1272,7 +1272,7 @@ static int maybe_changed_path(struct repository *r, if (!bd) return 1; - if (origin->commit->generation == GENERATION_NUMBER_INFINITY) + if (commit_graph_generation(origin->commit) == GENERATION_NUMBER_INFINITY) return 1; filter = get_bloom_filter(r, origin->commit, 0); @@ -10,7 +10,7 @@ struct blob *lookup_blob(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_object(r, oid, alloc_blob_node(r)); - return object_as_type(r, obj, OBJ_BLOB, 0); + return object_as_type(obj, OBJ_BLOB, 0); } int parse_blob_buffer(struct blob *item, void *buffer, unsigned long size) @@ -33,15 +33,16 @@ static int load_bloom_filter_from_graph(struct commit_graph *g, struct commit *c) { uint32_t lex_pos, start_index, end_index; + uint32_t graph_pos = commit_graph_position(c); - while (c->graph_pos < g->num_commits_in_base) + while (graph_pos < g->num_commits_in_base) g = g->base_graph; /* The commit graph commit 'c' lives in doesn't carry bloom filters. */ if (!g->chunk_bloom_indexes) return 0; - lex_pos = c->graph_pos - g->num_commits_in_base; + lex_pos = graph_pos - g->num_commits_in_base; end_index = get_be32(g->chunk_bloom_indexes + 4 * lex_pos); @@ -138,6 +139,11 @@ void fill_bloom_key(const char *data, key->hashes[i] = hash0 + i * hash1; } +void clear_bloom_key(struct bloom_key *key) +{ + FREE_AND_NULL(key->hashes); +} + void add_key_to_filter(const struct bloom_key *key, struct bloom_filter *filter, const struct bloom_filter_settings *settings) @@ -188,7 +194,7 @@ struct bloom_filter *get_bloom_filter(struct repository *r, if (!filter->data) { load_commit_graph_info(r, c); - if (c->graph_pos != COMMIT_NOT_FROM_GRAPH && + if (commit_graph_position(c) != COMMIT_NOT_FROM_GRAPH && r->objects->commit_graph->chunk_bloom_indexes) { if (load_bloom_filter_from_graph(r->objects->commit_graph, filter, c)) return filter; @@ -72,6 +72,7 @@ void fill_bloom_key(const char *data, size_t len, struct bloom_key *key, const struct bloom_filter_settings *settings); +void clear_bloom_key(struct bloom_key *key); void add_key_to_filter(const struct bloom_key *key, struct bloom_filter *filter, @@ -370,7 +370,7 @@ int replace_each_worktree_head_symref(const char *oldref, const char *newref, const char *logmsg) { int ret = 0; - struct worktree **worktrees = get_worktrees(0); + struct worktree **worktrees = get_worktrees(); int i; for (i = 0; worktrees[i]; i++) { diff --git a/bugreport.c b/bugreport.c index aa8a489c35..09579e268d 100644 --- a/bugreport.c +++ b/bugreport.c @@ -9,6 +9,7 @@ static void get_system_info(struct strbuf *sys_info) { struct utsname uname_info; + char *shell = NULL; /* get git version from native cmd */ strbuf_addstr(sys_info, _("git version:\n")); @@ -29,8 +30,13 @@ static void get_system_info(struct strbuf *sys_info) strbuf_addstr(sys_info, _("compiler info: ")); get_compiler_info(sys_info); + strbuf_addstr(sys_info, _("libc info: ")); get_libc_info(sys_info); + + shell = getenv("SHELL"); + strbuf_addf(sys_info, "$SHELL (typically, interactive shell): %s\n", + shell ? shell : "<unset>"); } static void get_populated_hooks(struct strbuf *hook_info, int nongit) @@ -174,7 +180,9 @@ int cmd_main(int argc, const char **argv) die(_("couldn't create a new file at '%s'"), report_path.buf); } - strbuf_write_fd(&buffer, report); + if (write_in_full(report, buffer.buf, buffer.len) < 0) + die_errno(_("unable to write to %s"), report_path.buf); + close(report); /* diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c index c1c40b516d..ec4996282e 100644 --- a/builtin/bisect--helper.c +++ b/builtin/bisect--helper.c @@ -455,9 +455,12 @@ static int bisect_start(struct bisect_terms *terms, int no_checkout, no_checkout = 1; } else if (!strcmp(arg, "--term-good") || !strcmp(arg, "--term-old")) { + i++; + if (argc <= i) + return error(_("'' is not a valid term")); must_write_terms = 1; free((void *) terms->term_good); - terms->term_good = xstrdup(argv[++i]); + terms->term_good = xstrdup(argv[i]); } else if (skip_prefix(arg, "--term-good=", &arg) || skip_prefix(arg, "--term-old=", &arg)) { must_write_terms = 1; @@ -465,16 +468,18 @@ static int bisect_start(struct bisect_terms *terms, int no_checkout, terms->term_good = xstrdup(arg); } else if (!strcmp(arg, "--term-bad") || !strcmp(arg, "--term-new")) { + i++; + if (argc <= i) + return error(_("'' is not a valid term")); must_write_terms = 1; free((void *) terms->term_bad); - terms->term_bad = xstrdup(argv[++i]); + terms->term_bad = xstrdup(argv[i]); } else if (skip_prefix(arg, "--term-bad=", &arg) || skip_prefix(arg, "--term-new=", &arg)) { must_write_terms = 1; free((void *) terms->term_bad); terms->term_bad = xstrdup(arg); - } else if (starts_with(arg, "--") && - !one_of(arg, "--term-good", "--term-bad", NULL)) { + } else if (starts_with(arg, "--")) { return error(_("unrecognized option: '%s'"), arg); } else { char *commit_id = xstrfmt("%s^{commit}", arg); diff --git a/builtin/branch.c b/builtin/branch.c index accb61b1aa..e82301fb1b 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -468,7 +468,7 @@ static void print_current_branch_name(void) static void reject_rebase_or_bisect_branch(const char *target) { - struct worktree **worktrees = get_worktrees(0); + struct worktree **worktrees = get_worktrees(); int i; for (i = 0; worktrees[i]; i++) { @@ -693,7 +693,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix) list = 1; if (!!delete + !!rename + !!copy + !!new_upstream + !!show_current + - list + unset_upstream > 1) + list + edit_description + unset_upstream > 1) usage_with_options(builtin_branch_usage, options); if (filter.abbrev == -1) diff --git a/builtin/cat-file.c b/builtin/cat-file.c index ae18e20a7c..5ebf13359e 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -596,7 +596,7 @@ static int batch_objects(struct batch_options *opt) static const char * const cat_file_usage[] = { N_("git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>"), - N_("git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --filters]"), + N_("git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]"), NULL }; diff --git a/builtin/checkout.c b/builtin/checkout.c index e9d111bb83..af849c644f 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -621,9 +621,7 @@ static int reset_tree(struct tree *tree, const struct checkout_opts *o, opts.src_index = &the_index; opts.dst_index = &the_index; init_checkout_metadata(&opts.meta, info->refname, - info->commit ? &info->commit->object.oid : - is_null_oid(&info->oid) ? &tree->object.oid : - &info->oid, + info->commit ? &info->commit->object.oid : &null_oid, NULL); parse_tree(tree); init_tree_desc(&tree_desc, tree->buffer, tree->size); @@ -1689,7 +1687,7 @@ static int checkout_main(int argc, const char **argv, const char *prefix, * Try to give more helpful suggestion. * new_branch && argc > 1 will be caught later. */ - if (opts->new_branch && argc == 1) + if (opts->new_branch && argc == 1 && !new_branch_info.commit) die(_("'%s' is not a commit and a branch '%s' cannot be created from it"), argv[0], opts->new_branch); diff --git a/builtin/clean.c b/builtin/clean.c index 4ca12bc0c0..5a9c29a558 100644 --- a/builtin/clean.c +++ b/builtin/clean.c @@ -924,12 +924,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix) 0); memset(&dir, 0, sizeof(dir)); - if (ignored_only) - dir.flags |= DIR_SHOW_IGNORED; - - if (ignored && ignored_only) - die(_("-x and -X cannot be used together")); - if (!interactive && !dry_run && !force) { if (config_set) die(_("clean.requireForce set to true and neither -i, -n, nor -f given; " @@ -946,6 +940,13 @@ int cmd_clean(int argc, const char **argv, const char *prefix) dir.flags |= DIR_SHOW_OTHER_DIRECTORIES; + if (ignored && ignored_only) + die(_("-x and -X cannot be used together")); + if (!ignored) + setup_standard_excludes(&dir); + if (ignored_only) + dir.flags |= DIR_SHOW_IGNORED; + if (argc) { /* * Remaining args implies pathspecs specified, and we should @@ -954,15 +955,41 @@ int cmd_clean(int argc, const char **argv, const char *prefix) remove_directories = 1; } - if (remove_directories) - dir.flags |= DIR_SHOW_IGNORED_TOO | DIR_KEEP_UNTRACKED_CONTENTS; + if (remove_directories && !ignored_only) { + /* + * We need to know about ignored files too: + * + * If (ignored), then we will delete ignored files as well. + * + * If (!ignored), then even though we not are doing + * anything with ignored files, we need to know about them + * so that we can avoid deleting a directory of untracked + * files that also contains an ignored file within it. + * + * For the (!ignored) case, since we only need to avoid + * deleting ignored files, we can set + * DIR_SHOW_IGNORED_TOO_MODE_MATCHING in order to avoid + * recursing into a directory which is itself ignored. + */ + dir.flags |= DIR_SHOW_IGNORED_TOO; + if (!ignored) + dir.flags |= DIR_SHOW_IGNORED_TOO_MODE_MATCHING; + + /* + * Let the fill_directory() machinery know that we aren't + * just recursing to collect the ignored files; we want all + * the untracked ones so that we can delete them. (Note: + * we could also set DIR_KEEP_UNTRACKED_CONTENTS when + * ignored_only is true, since DIR_KEEP_UNTRACKED_CONTENTS + * only has effect in combination with DIR_SHOW_IGNORED_TOO. It makes + * the code clearer to exclude it, though. + */ + dir.flags |= DIR_KEEP_UNTRACKED_CONTENTS; + } if (read_cache() < 0) die(_("index file corrupt")); - if (!ignored) - setup_standard_excludes(&dir); - pl = add_pattern_list(&dir, EXC_CMDL, "--exclude option"); for (i = 0; i < exclude_list.nr; i++) add_pattern(exclude_list.items[i].string, "", 0, pl, -(i+1)); diff --git a/builtin/clone.c b/builtin/clone.c index cb48a291ca..bef70745c0 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -945,7 +945,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) { int is_bundle = 0, is_local; const char *repo_name, *repo, *work_tree, *git_dir; - char *path, *dir; + char *path, *dir, *display_repo = NULL; int dest_exists; const struct ref *refs, *remote_head; const struct ref *remote_head_points_at; @@ -1000,10 +1000,11 @@ int cmd_clone(int argc, const char **argv, const char *prefix) path = get_repo_path(repo_name, &is_bundle); if (path) repo = absolute_pathdup(repo_name); - else if (!strchr(repo_name, ':')) - die(_("repository '%s' does not exist"), repo_name); - else + else if (strchr(repo_name, ':')) { repo = repo_name; + display_repo = transport_anonymize_url(repo); + } else + die(_("repository '%s' does not exist"), repo_name); /* no need to be strict, transport_set_option() will validate it again */ if (option_depth && atoi(option_depth) < 1) @@ -1020,7 +1021,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix) die(_("destination path '%s' already exists and is not " "an empty directory."), dir); - strbuf_addf(&reflog_msg, "clone: from %s", repo); + strbuf_addf(&reflog_msg, "clone: from %s", + display_repo ? display_repo : repo); + free(display_repo); if (option_bare) work_tree = NULL; @@ -1108,7 +1111,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix) } } - init_db(git_dir, real_git_dir, option_template, GIT_HASH_UNKNOWN, INIT_DB_QUIET); + init_db(git_dir, real_git_dir, option_template, GIT_HASH_UNKNOWN, NULL, + INIT_DB_QUIET); if (real_git_dir) git_dir = real_git_dir; @@ -1217,6 +1221,15 @@ int cmd_clone(int argc, const char **argv, const char *prefix) refs = transport_get_remote_refs(transport, &ref_prefixes); if (refs) { + int hash_algo = hash_algo_by_ptr(transport_get_hash_algo(transport)); + + /* + * Now that we know what algorithm the remote side is using, + * let's set ours to the same thing. + */ + initialize_repository_version(hash_algo); + repo_set_hash_algo(the_repository, hash_algo); + mapped_refs = wanted_peer_refs(refs, &remote->fetch); /* * transport_get_remote_refs() may return refs with null sha-1 @@ -1263,9 +1276,13 @@ int cmd_clone(int argc, const char **argv, const char *prefix) remote_head_points_at = NULL; remote_head = NULL; option_no_checkout = 1; - if (!option_bare) - install_branch_config(0, "master", option_origin, - "refs/heads/master"); + if (!option_bare) { + const char *branch = git_default_branch_name(); + char *ref = xstrfmt("refs/heads/%s", branch); + + install_branch_config(0, branch, option_origin, ref); + free(ref); + } } write_refspec_config(src_ref_prefix, our_head_points_at, diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c index 15fe60317c..f6797e2a9f 100644 --- a/builtin/commit-graph.c +++ b/builtin/commit-graph.c @@ -6,6 +6,8 @@ #include "repository.h" #include "commit-graph.h" #include "object-store.h" +#include "progress.h" +#include "tag.h" static char const * const builtin_commit_graph_usage[] = { N_("git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"), @@ -138,14 +140,37 @@ static int write_option_parse_split(const struct option *opt, const char *arg, return 0; } +static int read_one_commit(struct oidset *commits, struct progress *progress, + const char *hash) +{ + struct object *result; + struct object_id oid; + const char *end; + + if (parse_oid_hex(hash, &oid, &end)) + return error(_("unexpected non-hex object ID: %s"), hash); + + result = deref_tag(the_repository, parse_object(the_repository, &oid), + NULL, 0); + if (!result) + return error(_("invalid object: %s"), hash); + else if (object_as_type(result, OBJ_COMMIT, 1)) + oidset_insert(commits, &result->oid); + + display_progress(progress, oidset_size(commits)); + + return 0; +} + static int graph_write(int argc, const char **argv) { - struct string_list *pack_indexes = NULL; + struct string_list pack_indexes = STRING_LIST_INIT_NODUP; + struct strbuf buf = STRBUF_INIT; struct oidset commits = OIDSET_INIT; struct object_directory *odb = NULL; - struct string_list lines; int result = 0; enum commit_graph_write_flags flags = 0; + struct progress *progress = NULL; static struct option builtin_commit_graph_write_options[] = { OPT_STRING(0, "object-dir", &opts.obj_dir, @@ -209,44 +234,38 @@ static int graph_write(int argc, const char **argv) return 0; } - string_list_init(&lines, 0); - if (opts.stdin_packs || opts.stdin_commits) { - struct strbuf buf = STRBUF_INIT; - + if (opts.stdin_packs) { while (strbuf_getline(&buf, stdin) != EOF) - string_list_append(&lines, strbuf_detach(&buf, NULL)); - - if (opts.stdin_packs) - pack_indexes = &lines; - if (opts.stdin_commits) { - struct string_list_item *item; - oidset_init(&commits, lines.nr); - for_each_string_list_item(item, &lines) { - struct object_id oid; - const char *end; - - if (parse_oid_hex(item->string, &oid, &end)) { - error(_("unexpected non-hex object ID: " - "%s"), item->string); - return 1; - } - - oidset_insert(&commits, &oid); + string_list_append(&pack_indexes, + strbuf_detach(&buf, NULL)); + } else if (opts.stdin_commits) { + oidset_init(&commits, 0); + if (opts.progress) + progress = start_delayed_progress( + _("Collecting commits from input"), 0); + + while (strbuf_getline(&buf, stdin) != EOF) { + if (read_one_commit(&commits, progress, buf.buf)) { + result = 1; + goto cleanup; } - flags |= COMMIT_GRAPH_WRITE_CHECK_OIDS; } - UNLEAK(buf); + } if (write_commit_graph(odb, - pack_indexes, + opts.stdin_packs ? &pack_indexes : NULL, opts.stdin_commits ? &commits : NULL, flags, &split_opts)) result = 1; - UNLEAK(lines); +cleanup: + string_list_clear(&pack_indexes, 0); + strbuf_release(&buf); + if (progress) + stop_progress(&progress); return result; } diff --git a/builtin/config.c b/builtin/config.c index ee4aef6a35..5e39f61885 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -672,7 +672,7 @@ int cmd_config(int argc, const char **argv, const char *prefix) given_config_source.file = git_pathdup("config"); given_config_source.scope = CONFIG_SCOPE_LOCAL; } else if (use_worktree_config) { - struct worktree **worktrees = get_worktrees(0); + struct worktree **worktrees = get_worktrees(); if (repository_format_worktree_config) given_config_source.file = git_pathdup("config.worktree"); else if (worktrees[0] && worktrees[1]) diff --git a/builtin/diff-files.c b/builtin/diff-files.c index 86ae474fbf..1e352dd8f7 100644 --- a/builtin/diff-files.c +++ b/builtin/diff-files.c @@ -28,6 +28,13 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix) git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ repo_init_revisions(the_repository, &rev, prefix); rev.abbrev = 0; + + /* + * Consider "intent-to-add" files as new by default, unless + * explicitly specified in the command line or anywhere else. + */ + rev.diffopt.ita_invisible_in_index = 1; + precompose_argv(argc, argv); argc = setup_revisions(argc, argv, &rev, NULL); diff --git a/builtin/diff.c b/builtin/diff.c index 8537b17bd5..cb98811c21 100644 --- a/builtin/diff.c +++ b/builtin/diff.c @@ -6,6 +6,7 @@ #define USE_THE_INDEX_COMPATIBILITY_MACROS #include "cache.h" #include "config.h" +#include "ewah/ewok.h" #include "lockfile.h" #include "color.h" #include "commit.h" @@ -23,7 +24,13 @@ #define DIFF_NO_INDEX_IMPLICIT 2 static const char builtin_diff_usage[] = -"git diff [<options>] [<commit> [<commit>]] [--] [<path>...]"; +"git diff [<options>] [<commit>] [--] [<path>...]\n" +" or: git diff [<options>] --cached [<commit>] [--] [<path>...]\n" +" or: git diff [<options>] <commit> [<commit>...] <commit> [--] [<path>...]\n" +" or: git diff [<options>] <commit>...<commit>] [--] [<path>...]\n" +" or: git diff [<options>] <blob> <blob>]\n" +" or: git diff [<options>] --no-index [--] <path> <path>]\n" +COMMON_DIFF_OPTIONS_HELP; static const char *blob_path(struct object_array_entry *entry) { @@ -254,6 +261,108 @@ static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv return run_diff_files(revs, options); } +struct symdiff { + struct bitmap *skip; + int warn; + const char *base, *left, *right; +}; + +/* + * Check for symmetric-difference arguments, and if present, arrange + * everything we need to know to handle them correctly. As a bonus, + * weed out all bogus range-based revision specifications, e.g., + * "git diff A..B C..D" or "git diff A..B C" get rejected. + * + * For an actual symmetric diff, *symdiff is set this way: + * + * - its skip is non-NULL and marks *all* rev->pending.objects[i] + * indices that the caller should ignore (extra merge bases, of + * which there might be many, and A in A...B). Note that the + * chosen merge base and right side are NOT marked. + * - warn is set if there are multiple merge bases. + * - base, left, and right point to the names to use in a + * warning about multiple merge bases. + * + * If there is no symmetric diff argument, sym->skip is NULL and + * sym->warn is cleared. The remaining fields are not set. + */ +static void symdiff_prepare(struct rev_info *rev, struct symdiff *sym) +{ + int i, is_symdiff = 0, basecount = 0, othercount = 0; + int lpos = -1, rpos = -1, basepos = -1; + struct bitmap *map = NULL; + + /* + * Use the whence fields to find merge bases and left and + * right parts of symmetric difference, so that we do not + * depend on the order that revisions are parsed. If there + * are any revs that aren't from these sources, we have a + * "git diff C A...B" or "git diff A...B C" case. Or we + * could even get "git diff A...B C...E", for instance. + * + * If we don't have just one merge base, we pick one + * at random. + * + * NB: REV_CMD_LEFT, REV_CMD_RIGHT are also used for A..B, + * so we must check for SYMMETRIC_LEFT too. The two arrays + * rev->pending.objects and rev->cmdline.rev are parallel. + */ + for (i = 0; i < rev->cmdline.nr; i++) { + struct object *obj = rev->pending.objects[i].item; + switch (rev->cmdline.rev[i].whence) { + case REV_CMD_MERGE_BASE: + if (basepos < 0) + basepos = i; + basecount++; + break; /* do mark all bases */ + case REV_CMD_LEFT: + if (lpos >= 0) + usage(builtin_diff_usage); + lpos = i; + if (obj->flags & SYMMETRIC_LEFT) { + is_symdiff = 1; + break; /* do mark A */ + } + continue; + case REV_CMD_RIGHT: + if (rpos >= 0) + usage(builtin_diff_usage); + rpos = i; + continue; /* don't mark B */ + case REV_CMD_PARENTS_ONLY: + case REV_CMD_REF: + case REV_CMD_REV: + othercount++; + continue; + } + if (map == NULL) + map = bitmap_new(); + bitmap_set(map, i); + } + + /* + * Forbid any additional revs for both A...B and A..B. + */ + if (lpos >= 0 && othercount > 0) + usage(builtin_diff_usage); + + if (!is_symdiff) { + bitmap_free(map); + sym->warn = 0; + sym->skip = NULL; + return; + } + + sym->left = rev->pending.objects[lpos].name; + sym->right = rev->pending.objects[rpos].name; + if (basecount == 0) + die(_("%s...%s: no merge base"), sym->left, sym->right); + sym->base = rev->pending.objects[basepos].name; + bitmap_unset(map, basepos); /* unmark the base we want */ + sym->warn = basecount > 1; + sym->skip = map; +} + int cmd_diff(int argc, const char **argv, const char *prefix) { int i; @@ -263,19 +372,29 @@ int cmd_diff(int argc, const char **argv, const char *prefix) struct object_array_entry *blob[2]; int nongit = 0, no_index = 0; int result = 0; + struct symdiff sdiff; /* * We could get N tree-ish in the rev.pending_objects list. - * Also there could be M blobs there, and P pathspecs. + * Also there could be M blobs there, and P pathspecs. --cached may + * also be present. * * N=0, M=0: - * cache vs files (diff-files) + * cache vs files (diff-files) + * + * N=0, M=0, --cached: + * HEAD vs cache (diff-index --cached) + * * N=0, M=2: * compare two random blobs. P must be zero. + * * N=0, M=1, P=1: - * compare a blob with a working tree file. + * compare a blob with a working tree file. * * N=1, M=0: + * tree vs files (diff-index) + * + * N=1, M=0, --cached: * tree vs cache (diff-index --cached) * * N=2, M=0: @@ -382,6 +501,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix) } } + symdiff_prepare(&rev, &sdiff); for (i = 0; i < rev.pending.nr; i++) { struct object_array_entry *entry = &rev.pending.objects[i]; struct object *obj = entry->item; @@ -396,6 +516,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix) obj = &get_commit_tree(((struct commit *)obj))->object; if (obj->type == OBJ_TREE) { + if (sdiff.skip && bitmap_get(sdiff.skip, i)) + continue; obj->flags |= flags; add_object_array(obj, name, &ent); } else if (obj->type == OBJ_BLOB) { @@ -437,21 +559,12 @@ int cmd_diff(int argc, const char **argv, const char *prefix) usage(builtin_diff_usage); else if (ent.nr == 1) result = builtin_diff_index(&rev, argc, argv); - else if (ent.nr == 2) + else if (ent.nr == 2) { + if (sdiff.warn) + warning(_("%s...%s: multiple merge bases, using %s"), + sdiff.left, sdiff.right, sdiff.base); result = builtin_diff_tree(&rev, argc, argv, &ent.objects[0], &ent.objects[1]); - else if (ent.objects[0].item->flags & UNINTERESTING) { - /* - * diff A...B where there is at least one merge base - * between A and B. We have ent.objects[0] == - * merge-base, ent.objects[ents-2] == A, and - * ent.objects[ents-1] == B. Show diff between the - * base and B. Note that we pick one merge base at - * random if there are more than one. - */ - result = builtin_diff_tree(&rev, argc, argv, - &ent.objects[0], - &ent.objects[ent.nr-1]); } else result = builtin_diff_combined(&rev, argc, argv, ent.objects, ent.nr); diff --git a/builtin/fast-export.c b/builtin/fast-export.c index 85868162ee..9f37895d4c 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -45,6 +45,7 @@ static struct string_list extra_refs = STRING_LIST_INIT_NODUP; static struct string_list tag_refs = STRING_LIST_INIT_NODUP; static struct refspec refspecs = REFSPEC_INIT_FETCH; static int anonymize; +static struct hashmap anonymized_seeds; static struct revision_sources revision_sources; static int parse_opt_signed_tag_mode(const struct option *opt, @@ -120,24 +121,33 @@ static int has_unshown_parent(struct commit *commit) struct anonymized_entry { struct hashmap_entry hash; + const char *anon; + const char orig[FLEX_ARRAY]; +}; + +struct anonymized_entry_key { + struct hashmap_entry hash; const char *orig; size_t orig_len; - const char *anon; - size_t anon_len; }; static int anonymized_entry_cmp(const void *unused_cmp_data, const struct hashmap_entry *eptr, const struct hashmap_entry *entry_or_key, - const void *unused_keydata) + const void *keydata) { const struct anonymized_entry *a, *b; a = container_of(eptr, const struct anonymized_entry, hash); - b = container_of(entry_or_key, const struct anonymized_entry, hash); + if (keydata) { + const struct anonymized_entry_key *key = keydata; + int equal = !strncmp(a->orig, key->orig, key->orig_len) && + !a->orig[key->orig_len]; + return !equal; + } - return a->orig_len != b->orig_len || - memcmp(a->orig, b->orig, a->orig_len); + b = container_of(entry_or_key, const struct anonymized_entry, hash); + return strcmp(a->orig, b->orig); } /* @@ -145,31 +155,39 @@ static int anonymized_entry_cmp(const void *unused_cmp_data, * the same anonymized string with another. The actual generation * is farmed out to the generate function. */ -static const void *anonymize_mem(struct hashmap *map, - void *(*generate)(const void *, size_t *), - const void *orig, size_t *len) +static const char *anonymize_str(struct hashmap *map, + char *(*generate)(void *), + const char *orig, size_t len, + void *data) { - struct anonymized_entry key, *ret; + struct anonymized_entry_key key; + struct anonymized_entry *ret; if (!map->cmpfn) hashmap_init(map, anonymized_entry_cmp, NULL, 0); - hashmap_entry_init(&key.hash, memhash(orig, *len)); + hashmap_entry_init(&key.hash, memhash(orig, len)); key.orig = orig; - key.orig_len = *len; - ret = hashmap_get_entry(map, &key, hash, NULL); + key.orig_len = len; + + /* First check if it's a token the user configured manually... */ + if (anonymized_seeds.cmpfn) + ret = hashmap_get_entry(&anonymized_seeds, &key, hash, &key); + else + ret = NULL; + + /* ...otherwise check if we've already seen it in this context... */ + if (!ret) + ret = hashmap_get_entry(map, &key, hash, &key); + /* ...and finally generate a new mapping if necessary */ if (!ret) { - ret = xmalloc(sizeof(*ret)); + FLEX_ALLOC_MEM(ret, orig, orig, len); hashmap_entry_init(&ret->hash, key.hash.hash); - ret->orig = xstrdup(orig); - ret->orig_len = *len; - ret->anon = generate(orig, len); - ret->anon_len = *len; + ret->anon = generate(data); hashmap_put(map, &ret->hash); } - *len = ret->anon_len; return ret->anon; } @@ -181,13 +199,13 @@ static const void *anonymize_mem(struct hashmap *map, */ static void anonymize_path(struct strbuf *out, const char *path, struct hashmap *map, - void *(*generate)(const void *, size_t *)) + char *(*generate)(void *)) { while (*path) { const char *end_of_component = strchrnul(path, '/'); size_t len = end_of_component - path; - const char *c = anonymize_mem(map, generate, path, &len); - strbuf_add(out, c, len); + const char *c = anonymize_str(map, generate, path, len, NULL); + strbuf_addstr(out, c); path = end_of_component; if (*path) strbuf_addch(out, *path++); @@ -361,12 +379,12 @@ static void print_path_1(const char *path) printf("%s", path); } -static void *anonymize_path_component(const void *path, size_t *len) +static char *anonymize_path_component(void *data) { static int counter; struct strbuf out = STRBUF_INIT; strbuf_addf(&out, "path%d", counter++); - return strbuf_detach(&out, len); + return strbuf_detach(&out, NULL); } static void print_path(const char *path) @@ -383,20 +401,23 @@ static void print_path(const char *path) } } -static void *generate_fake_oid(const void *old, size_t *len) +static char *generate_fake_oid(void *data) { static uint32_t counter = 1; /* avoid null oid */ const unsigned hashsz = the_hash_algo->rawsz; - unsigned char *out = xcalloc(hashsz, 1); + unsigned char out[GIT_MAX_RAWSZ]; + char *hex = xmallocz(GIT_MAX_HEXSZ); + + hashclr(out); put_be32(out + hashsz - 4, counter++); - return out; + return hash_to_hex_algop_r(hex, out, the_hash_algo); } -static const struct object_id *anonymize_oid(const struct object_id *oid) +static const char *anonymize_oid(const char *oid_hex) { static struct hashmap objs; - size_t len = the_hash_algo->rawsz; - return anonymize_mem(&objs, generate_fake_oid, oid, &len); + size_t len = strlen(oid_hex); + return anonymize_str(&objs, generate_fake_oid, oid_hex, len, NULL); } static void show_filemodify(struct diff_queue_struct *q, @@ -455,9 +476,9 @@ static void show_filemodify(struct diff_queue_struct *q, */ if (no_data || S_ISGITLINK(spec->mode)) printf("M %06o %s ", spec->mode, - oid_to_hex(anonymize ? - anonymize_oid(&spec->oid) : - &spec->oid)); + anonymize ? + anonymize_oid(oid_to_hex(&spec->oid)) : + oid_to_hex(&spec->oid)); else { struct object *object = lookup_object(the_repository, &spec->oid); @@ -493,12 +514,12 @@ static const char *find_encoding(const char *begin, const char *end) return bol; } -static void *anonymize_ref_component(const void *old, size_t *len) +static char *anonymize_ref_component(void *data) { static int counter; struct strbuf out = STRBUF_INIT; strbuf_addf(&out, "ref%d", counter++); - return strbuf_detach(&out, len); + return strbuf_detach(&out, NULL); } static const char *anonymize_refname(const char *refname) @@ -517,13 +538,6 @@ static const char *anonymize_refname(const char *refname) static struct strbuf anon = STRBUF_INIT; int i; - /* - * We also leave "master" as a special case, since it does not reveal - * anything interesting. - */ - if (!strcmp(refname, "refs/heads/master")) - return refname; - strbuf_reset(&anon); for (i = 0; i < ARRAY_SIZE(prefixes); i++) { if (skip_prefix(refname, prefixes[i], &refname)) { @@ -546,14 +560,13 @@ static char *anonymize_commit_message(const char *old) return xstrfmt("subject %d\n\nbody\n", counter++); } -static struct hashmap idents; -static void *anonymize_ident(const void *old, size_t *len) +static char *anonymize_ident(void *data) { static int counter; struct strbuf out = STRBUF_INIT; strbuf_addf(&out, "User %d <user%d@example.com>", counter, counter); counter++; - return strbuf_detach(&out, len); + return strbuf_detach(&out, NULL); } /* @@ -563,6 +576,7 @@ static void *anonymize_ident(const void *old, size_t *len) */ static void anonymize_ident_line(const char **beg, const char **end) { + static struct hashmap idents; static struct strbuf buffers[] = { STRBUF_INIT, STRBUF_INIT }; static unsigned which_buffer; @@ -588,9 +602,9 @@ static void anonymize_ident_line(const char **beg, const char **end) size_t len; len = split.mail_end - split.name_begin; - ident = anonymize_mem(&idents, anonymize_ident, - split.name_begin, &len); - strbuf_add(out, ident, len); + ident = anonymize_str(&idents, anonymize_ident, + split.name_begin, len, NULL); + strbuf_addstr(out, ident); strbuf_addch(out, ' '); strbuf_add(out, split.date_begin, split.tz_end - split.date_begin); } else { @@ -712,9 +726,10 @@ static void handle_commit(struct commit *commit, struct rev_info *rev, if (mark) printf(":%d\n", mark); else - printf("%s\n", oid_to_hex(anonymize ? - anonymize_oid(&obj->oid) : - &obj->oid)); + printf("%s\n", + anonymize ? + anonymize_oid(oid_to_hex(&obj->oid)) : + oid_to_hex(&obj->oid)); i++; } @@ -729,12 +744,12 @@ static void handle_commit(struct commit *commit, struct rev_info *rev, show_progress(); } -static void *anonymize_tag(const void *old, size_t *len) +static char *anonymize_tag(void *data) { static int counter; struct strbuf out = STRBUF_INIT; strbuf_addf(&out, "tag message %d", counter++); - return strbuf_detach(&out, len); + return strbuf_detach(&out, NULL); } static void handle_tail(struct object_array *commits, struct rev_info *revs, @@ -804,8 +819,8 @@ static void handle_tag(const char *name, struct tag *tag) name = anonymize_refname(name); if (message) { static struct hashmap tags; - message = anonymize_mem(&tags, anonymize_tag, - message, &message_size); + message = anonymize_str(&tags, anonymize_tag, + message, message_size, NULL); } } @@ -1136,6 +1151,37 @@ static void handle_deletes(void) } } +static char *anonymize_seed(void *data) +{ + return xstrdup(data); +} + +static int parse_opt_anonymize_map(const struct option *opt, + const char *arg, int unset) +{ + struct hashmap *map = opt->value; + const char *delim, *value; + size_t keylen; + + BUG_ON_OPT_NEG(unset); + + delim = strchr(arg, ':'); + if (delim) { + keylen = delim - arg; + value = delim + 1; + } else { + keylen = strlen(arg); + value = arg; + } + + if (!keylen || !*value) + return error(_("--anonymize-map token cannot be empty")); + + anonymize_str(map, anonymize_seed, arg, keylen, (void *)value); + + return 0; +} + int cmd_fast_export(int argc, const char **argv, const char *prefix) { struct rev_info revs; @@ -1177,6 +1223,9 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix) OPT_STRING_LIST(0, "refspec", &refspecs_list, N_("refspec"), N_("Apply refspec to exported refs")), OPT_BOOL(0, "anonymize", &anonymize, N_("anonymize output")), + OPT_CALLBACK_F(0, "anonymize-map", &anonymized_seeds, N_("from:to"), + N_("convert <from> to <to> in anonymized output"), + PARSE_OPT_NONEG, parse_opt_anonymize_map), OPT_BOOL(0, "reference-excluded-parents", &reference_excluded_commits, N_("Reference parents which are not in fast-export stream by object id")), OPT_BOOL(0, "show-original-ids", &show_original_ids, @@ -1204,6 +1253,9 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix) if (argc > 1) usage_with_options (fast_export_usage, options); + if (anonymized_seeds.cmpfn && !anonymize) + die(_("--anonymize-map without --anonymize does not make sense")); + if (refspecs_list.nr) { int i; diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index 4771100072..bbb5c96167 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -48,8 +48,8 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix) struct ref **sought = NULL; int nr_sought = 0, alloc_sought = 0; int fd[2]; - char *pack_lockfile = NULL; - char **pack_lockfile_ptr = NULL; + struct string_list pack_lockfiles = STRING_LIST_INIT_DUP; + struct string_list *pack_lockfiles_ptr = NULL; struct child_process *conn; struct fetch_pack_args args; struct oid_array shallow = OID_ARRAY_INIT; @@ -134,7 +134,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix) } if (!strcmp("--lock-pack", arg)) { args.lock_pack = 1; - pack_lockfile_ptr = &pack_lockfile; + pack_lockfiles_ptr = &pack_lockfiles; continue; } if (!strcmp("--check-self-contained-and-connected", arg)) { @@ -224,7 +224,7 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix) version = discover_version(&reader); switch (version) { case protocol_v2: - get_remote_refs(fd[1], &reader, &ref, 0, NULL, NULL); + get_remote_refs(fd[1], &reader, &ref, 0, NULL, NULL, args.stateless_rpc); break; case protocol_v1: case protocol_v0: @@ -235,10 +235,15 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix) } ref = fetch_pack(&args, fd, ref, sought, nr_sought, - &shallow, pack_lockfile_ptr, version); - if (pack_lockfile) { - printf("lock %s\n", pack_lockfile); + &shallow, pack_lockfiles_ptr, version); + if (pack_lockfiles.nr) { + int i; + + printf("lock %s\n", pack_lockfiles.items[0].string); fflush(stdout); + for (i = 1; i < pack_lockfiles.nr; i++) + warning(_("Lockfile created but not reported: %s"), + pack_lockfiles.items[i].string); } if (args.check_self_contained_and_connected && args.self_contained_and_connected) { diff --git a/builtin/fetch.c b/builtin/fetch.c index b5788c16bf..82ac4be8a5 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -1758,8 +1758,13 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) /* Record the command line for the reflog */ strbuf_addstr(&default_rla, "fetch"); - for (i = 1; i < argc; i++) - strbuf_addf(&default_rla, " %s", argv[i]); + for (i = 1; i < argc; i++) { + /* This handles non-URLs gracefully */ + char *anon = transport_anonymize_url(argv[i]); + + strbuf_addf(&default_rla, " %s", anon); + free(anon); + } fetch_config_from_gitmodules(&submodule_fetch_jobs_config, &recurse_submodules); @@ -1790,9 +1795,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) if (depth || deepen_since || deepen_not.nr) deepen = 1; - if (filter_options.choice && !has_promisor_remote()) - die("--filter can only be used when extensions.partialClone is set"); - if (all) { if (argc == 1) die(_("fetch --all does not take a repository argument")); diff --git a/builtin/fsck.c b/builtin/fsck.c index f02cbdb439..37aa07da78 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -241,7 +241,7 @@ static void mark_unreachable_referents(const struct object_id *oid) enum object_type type = oid_object_info(the_repository, &obj->oid, NULL); if (type > 0) - object_as_type(the_repository, obj, type, 0); + object_as_type(obj, type, 0); } options.walk = mark_used; @@ -577,7 +577,7 @@ static void get_default_heads(void) for_each_rawref(fsck_handle_ref, NULL); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); for (p = worktrees; *p; p++) { struct worktree *wt = *p; struct strbuf ref = STRBUF_INIT; diff --git a/builtin/index-pack.c b/builtin/index-pack.c index f176dd28c8..f865666db9 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -1555,13 +1555,9 @@ static void read_v2_anomalous_offsets(struct packed_git *p, { const uint32_t *idx1, *idx2; uint32_t i; - const uint32_t hashwords = the_hash_algo->rawsz / sizeof(uint32_t); /* The address of the 4-byte offset table */ - idx1 = (((const uint32_t *)p->index_data) - + 2 /* 8-byte header */ - + 256 /* fan out */ - + hashwords * p->num_objects /* object ID table */ + idx1 = (((const uint32_t *)((const uint8_t *)p->index_data + p->crc_offset)) + p->num_objects /* CRC32 table */ ); @@ -1671,6 +1667,7 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix) unsigned char pack_hash[GIT_MAX_RAWSZ]; unsigned foreign_nr = 1; /* zero is a "good" value, assume bad */ int report_end_of_input = 0; + int hash_algo = 0; /* * index-pack never needs to fetch missing objects except when @@ -1764,6 +1761,11 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix) die(_("bad %s"), arg); } else if (skip_prefix(arg, "--max-input-size=", &arg)) { max_input_size = strtoumax(arg, NULL, 10); + } else if (skip_prefix(arg, "--object-format=", &arg)) { + hash_algo = hash_algo_by_name(arg); + if (hash_algo == GIT_HASH_UNKNOWN) + die(_("unknown hash algorithm '%s'"), arg); + repo_set_hash_algo(the_repository, hash_algo); } else usage(index_pack_usage); continue; @@ -1780,6 +1782,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix) die(_("--fix-thin cannot be used without --stdin")); if (from_stdin && !startup_info->have_repository) die(_("--stdin requires a git repository")); + if (from_stdin && hash_algo) + die(_("--object-format cannot be used with --stdin")); if (!index_name && pack_name) index_name = derive_filename(pack_name, "idx", &index_name_buf); diff --git a/builtin/init-db.c b/builtin/init-db.c index 0b7222e718..cee64823cb 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -203,6 +203,7 @@ void initialize_repository_version(int hash_algo) static int create_default_files(const char *template_path, const char *original_git_dir, + const char *initial_branch, const struct repository_format *fmt) { struct stat st1; @@ -258,15 +259,26 @@ static int create_default_files(const char *template_path, die("failed to set up refs db: %s", err.buf); /* - * Create the default symlink from ".git/HEAD" to the "master" - * branch, if it does not exist yet. + * Point the HEAD symref to the initial branch with if HEAD does + * not yet exist. */ path = git_path_buf(&buf, "HEAD"); reinit = (!access(path, R_OK) || readlink(path, junk, sizeof(junk)-1) != -1); if (!reinit) { - if (create_symref("HEAD", "refs/heads/master", NULL) < 0) + char *ref; + + if (!initial_branch) + initial_branch = git_default_branch_name(); + + ref = xstrfmt("refs/heads/%s", initial_branch); + if (check_refname_format(ref, 0) < 0) + die(_("invalid initial branch name: '%s'"), + initial_branch); + + if (create_symref("HEAD", ref, NULL) < 0) exit(1); + free(ref); } initialize_repository_version(fmt->hash_algo); @@ -383,7 +395,8 @@ static void validate_hash_algorithm(struct repository_format *repo_fmt, int hash } int init_db(const char *git_dir, const char *real_git_dir, - const char *template_dir, int hash, unsigned int flags) + const char *template_dir, int hash, const char *initial_branch, + unsigned int flags) { int reinit; int exist_ok = flags & INIT_DB_EXIST_OK; @@ -425,7 +438,11 @@ int init_db(const char *git_dir, const char *real_git_dir, validate_hash_algorithm(&repo_fmt, hash); - reinit = create_default_files(template_dir, original_git_dir, &repo_fmt); + reinit = create_default_files(template_dir, original_git_dir, + initial_branch, &repo_fmt); + if (reinit && initial_branch) + warning(_("re-init: ignored --initial-branch=%s"), + initial_branch); create_object_directory(); @@ -528,6 +545,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) const char *template_dir = NULL; unsigned int flags = 0; const char *object_format = NULL; + const char *initial_branch = NULL; int hash_algo = GIT_HASH_UNKNOWN; const struct option init_db_options[] = { OPT_STRING(0, "template", &template_dir, N_("template-directory"), @@ -541,6 +559,8 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) OPT_BIT('q', "quiet", &flags, N_("be quiet"), INIT_DB_QUIET), OPT_STRING(0, "separate-git-dir", &real_git_dir, N_("gitdir"), N_("separate git dir from working tree")), + OPT_STRING('b', "initial-branch", &initial_branch, N_("name"), + N_("override the name of the initial branch")), OPT_STRING(0, "object-format", &object_format, N_("hash"), N_("specify the hash algorithm to use")), OPT_END() @@ -652,5 +672,6 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) UNLEAK(work_tree); flags |= INIT_DB_EXIST_OK; - return init_db(git_dir, real_git_dir, template_dir, hash_algo, flags); + return init_db(git_dir, real_git_dir, template_dir, hash_algo, + initial_branch, flags); } diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c index 6ef519514b..3a4dd12903 100644 --- a/builtin/ls-remote.c +++ b/builtin/ls-remote.c @@ -118,6 +118,10 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix) transport->server_options = &server_options; ref = transport_get_remote_refs(transport, &ref_prefixes); + if (ref) { + int hash_algo = hash_algo_by_ptr(transport_get_hash_algo(transport)); + repo_set_hash_algo(the_repository, hash_algo); + } if (transport_disconnect(transport)) { UNLEAK(sorting); return 1; diff --git a/builtin/merge.c b/builtin/merge.c index ca6a5dc4bf..7da707bf55 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1656,7 +1656,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) } merge_was_ok = 1; } - cnt = evaluate_result(); + cnt = (use_strategies_nr > 1) ? evaluate_result() : 0; if (best_cnt <= 0 || cnt <= best_cnt) { best_strategy = use_strategies[i]->name; best_cnt = cnt; diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index c5b433a23f..7016b28485 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -117,6 +117,8 @@ static unsigned long window_memory_limit = 0; static struct list_objects_filter_options filter_options; +static struct string_list uri_protocols = STRING_LIST_INIT_NODUP; + enum missing_action { MA_ERROR = 0, /* fail if any missing objects are encountered */ MA_ALLOW_ANY, /* silently allow ALL missing objects */ @@ -125,6 +127,15 @@ enum missing_action { static enum missing_action arg_missing_action; static show_object_fn fn_show_object; +struct configured_exclusion { + struct oidmap_entry e; + char *pack_hash_hex; + char *uri; +}; +static struct oidmap configured_exclusions; + +static struct oidset excluded_by_config; + /* * stats */ @@ -969,6 +980,25 @@ static void write_reused_pack(struct hashfile *f) unuse_pack(&w_curs); } +static void write_excluded_by_configs(void) +{ + struct oidset_iter iter; + const struct object_id *oid; + + oidset_iter_init(&excluded_by_config, &iter); + while ((oid = oidset_iter_next(&iter))) { + struct configured_exclusion *ex = + oidmap_get(&configured_exclusions, oid); + + if (!ex) + BUG("configured exclusion wasn't configured"); + write_in_full(1, ex->pack_hash_hex, strlen(ex->pack_hash_hex)); + write_in_full(1, " ", 1); + write_in_full(1, ex->uri, strlen(ex->uri)); + write_in_full(1, "\n", 1); + } +} + static const char no_split_warning[] = N_( "disabling bitmap writing, packs are split due to pack.packSizeLimit" ); @@ -1266,6 +1296,25 @@ static int want_object_in_pack(const struct object_id *oid, } } + if (uri_protocols.nr) { + struct configured_exclusion *ex = + oidmap_get(&configured_exclusions, oid); + int i; + const char *p; + + if (ex) { + for (i = 0; i < uri_protocols.nr; i++) { + if (skip_prefix(ex->uri, + uri_protocols.items[i].string, + &p) && + *p == ':') { + oidset_insert(&excluded_by_config, oid); + return 0; + } + } + } + } + return 1; } @@ -2864,6 +2913,29 @@ static int git_pack_config(const char *k, const char *v, void *cb) pack_idx_opts.version); return 0; } + if (!strcmp(k, "uploadpack.blobpackfileuri")) { + struct configured_exclusion *ex = xmalloc(sizeof(*ex)); + const char *oid_end, *pack_end; + /* + * Stores the pack hash. This is not a true object ID, but is + * of the same form. + */ + struct object_id pack_hash; + + if (parse_oid_hex(v, &ex->e.oid, &oid_end) || + *oid_end != ' ' || + parse_oid_hex(oid_end + 1, &pack_hash, &pack_end) || + *pack_end != ' ') + die(_("value of uploadpack.blobpackfileuri must be " + "of the form '<object-hash> <pack-hash> <uri>' (got '%s')"), v); + if (oidmap_get(&configured_exclusions, &ex->e.oid)) + die(_("object already configured in another " + "uploadpack.blobpackfileuri (got '%s')"), v); + ex->pack_hash_hex = xcalloc(1, pack_end - oid_end); + memcpy(ex->pack_hash_hex, oid_end + 1, pack_end - oid_end - 1); + ex->uri = xstrdup(pack_end + 1); + oidmap_put(&configured_exclusions, ex); + } return git_default_config(k, v, cb); } @@ -3462,6 +3534,9 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) N_("do not pack objects in promisor packfiles")), OPT_BOOL(0, "delta-islands", &use_delta_islands, N_("respect islands during delta compression")), + OPT_STRING_LIST(0, "uri-protocol", &uri_protocols, + N_("protocol"), + N_("exclude any configured uploadpack.blobpackfileuri with this protocol")), OPT_END(), }; @@ -3650,6 +3725,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) } trace2_region_enter("pack-objects", "write-pack-file", the_repository); + write_excluded_by_configs(); write_pack_file(); trace2_region_leave("pack-objects", "write-pack-file", the_repository); diff --git a/builtin/pull.c b/builtin/pull.c index 00e5857a8d..8159c5d7c9 100644 --- a/builtin/pull.c +++ b/builtin/pull.c @@ -1025,12 +1025,14 @@ int cmd_pull(int argc, const char **argv, const char *prefix) commit_list_insert(head, &list); merge_head = lookup_commit_reference(the_repository, &merge_heads.oid[0]); - if (is_descendant_of(merge_head, list)) { + if (repo_is_descendant_of(the_repository, + merge_head, list)) { /* we can fast-forward this without invoking rebase */ opt_ff = "--ff-only"; ran_ff = 1; ret = run_merge(); } + free_commit_list(list); } if (!ran_ff) ret = run_rebase(&curr_head, merge_heads.oid, &rebase_fork_point); diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index ea3d0f01af..d43663bb0a 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -249,6 +249,7 @@ static void show_ref(const char *path, const struct object_id *oid) strbuf_addf(&cap, " push-cert=%s", push_cert_nonce); if (advertise_push_options) strbuf_addstr(&cap, " push-options"); + strbuf_addf(&cap, " object-format=%s", the_hash_algo->name); strbuf_addf(&cap, " agent=%s", git_user_agent_sanitized()); packet_write_fmt(1, "%s %s%c%s\n", oid_to_hex(oid), path, 0, cap.buf); @@ -1624,6 +1625,8 @@ static struct command *read_head_info(struct packet_reader *reader, linelen = strlen(reader->line); if (linelen < reader->pktlen) { const char *feature_list = reader->line + linelen + 1; + const char *hash = NULL; + int len = 0; if (parse_feature_request(feature_list, "report-status")) report_status = 1; if (parse_feature_request(feature_list, "side-band-64k")) @@ -1636,6 +1639,13 @@ static struct command *read_head_info(struct packet_reader *reader, if (advertise_push_options && parse_feature_request(feature_list, "push-options")) use_push_options = 1; + hash = parse_feature_value(feature_list, "object-format", &len, NULL); + if (!hash) { + hash = hash_algos[GIT_HASH_SHA1].name; + len = strlen(hash); + } + if (xstrncmpz(the_hash_algo->name, hash, len)) + die("error: unsupported object format '%s'", hash); } if (!strcmp(reader->line, "push-cert")) { diff --git a/builtin/reflog.c b/builtin/reflog.c index 52ecf6d43c..ca1d8079f3 100644 --- a/builtin/reflog.c +++ b/builtin/reflog.c @@ -615,7 +615,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix) int i; memset(&collected, 0, sizeof(collected)); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); for (p = worktrees; *p; p++) { if (!all_worktrees && !(*p)->is_current) continue; diff --git a/builtin/show-index.c b/builtin/show-index.c index 0826f6a5a2..8106b03a6b 100644 --- a/builtin/show-index.c +++ b/builtin/show-index.c @@ -1,9 +1,12 @@ #include "builtin.h" #include "cache.h" #include "pack.h" +#include "parse-options.h" -static const char show_index_usage[] = -"git show-index"; +static const char *const show_index_usage[] = { + "git show-index [--object-format=<hash-algorithm>]", + NULL +}; int cmd_show_index(int argc, const char **argv, const char *prefix) { @@ -11,10 +14,26 @@ int cmd_show_index(int argc, const char **argv, const char *prefix) unsigned nr; unsigned int version; static unsigned int top_index[256]; - const unsigned hashsz = the_hash_algo->rawsz; + unsigned hashsz; + const char *hash_name = NULL; + int hash_algo; + const struct option show_index_options[] = { + OPT_STRING(0, "object-format", &hash_name, N_("hash-algorithm"), + N_("specify the hash algorithm to use")), + OPT_END() + }; + + argc = parse_options(argc, argv, prefix, show_index_options, show_index_usage, 0); + + if (hash_name) { + hash_algo = hash_algo_by_name(hash_name); + if (hash_algo == GIT_HASH_UNKNOWN) + die(_("Unknown hash algorithm")); + repo_set_hash_algo(the_repository, hash_algo); + } + + hashsz = the_hash_algo->rawsz; - if (argc != 1) - usage(show_index_usage); if (fread(top_index, 2 * 4, 1, stdin) != 1) die("unable to read header"); if (top_index[0] == htonl(PACK_IDX_SIGNATURE)) { diff --git a/builtin/sparse-checkout.c b/builtin/sparse-checkout.c index 95d0882417..4003f4d13a 100644 --- a/builtin/sparse-checkout.c +++ b/builtin/sparse-checkout.c @@ -99,6 +99,10 @@ static int update_working_directory(struct pattern_list *pl) struct lock_file lock_file = LOCK_INIT; struct repository *r = the_repository; + /* If no branch has been checked out, there are no updates to make. */ + if (is_index_unborn(r->index)) + return UPDATE_SPARSITY_SUCCESS; + memset(&o, 0, sizeof(o)); o.verbose_update = isatty(2); o.update = 1; @@ -249,6 +253,8 @@ static int set_config(enum sparse_checkout_mode mode) { const char *config_path; + if (upgrade_repository_format(1) < 0) + die(_("unable to upgrade repository format to enable worktreeConfig")); if (git_config_set_gently("extensions.worktreeConfig", "true")) { error(_("failed to set extensions.worktreeConfig setting")); return 1; diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 46c03d2a12..a1c75607c7 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -1981,7 +1981,7 @@ static const char *remote_submodule_branch(const char *path) free(key); if (!branch) - return "master"; + return "HEAD"; if (!strcmp(branch, ".")) { const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, NULL); @@ -2277,6 +2277,49 @@ static int module_set_url(int argc, const char **argv, const char *prefix) return 0; } +static int module_set_branch(int argc, const char **argv, const char *prefix) +{ + int opt_default = 0, ret; + const char *opt_branch = NULL; + const char *path; + char *config_name; + + /* + * We accept the `quiet` option for uniformity across subcommands, + * though there is nothing to make less verbose in this subcommand. + */ + struct option options[] = { + OPT_NOOP_NOARG('q', "quiet"), + OPT_BOOL('d', "default", &opt_default, + N_("set the default tracking branch to master")), + OPT_STRING('b', "branch", &opt_branch, N_("branch"), + N_("set the default tracking branch")), + OPT_END() + }; + const char *const usage[] = { + N_("git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"), + N_("git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"), + NULL + }; + + argc = parse_options(argc, argv, prefix, options, usage, 0); + + if (!opt_branch && !opt_default) + die(_("--branch or --default required")); + + if (opt_branch && opt_default) + die(_("--branch and --default are mutually exclusive")); + + if (argc != 1 || !(path = argv[0])) + usage_with_options(usage, options); + + config_name = xstrfmt("submodule.%s.branch", path); + ret = config_set_in_gitmodules_file_gently(config_name, opt_branch); + + free(config_name); + return !!ret; +} + #define SUPPORT_SUPER_PREFIX (1<<0) struct cmd_struct { @@ -2308,6 +2351,7 @@ static struct cmd_struct commands[] = { {"check-name", check_name, 0}, {"config", module_config, 0}, {"set-url", module_set_url, 0}, + {"set-branch", module_set_branch, 0}, }; int cmd_submodule__helper(int argc, const char **argv, const char *prefix) diff --git a/builtin/worktree.c b/builtin/worktree.c index d99db35668..f0cbdef718 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -67,7 +67,12 @@ static void delete_worktrees_dir_if_empty(void) rmdir(git_path("worktrees")); /* ignore failed removal */ } -static int prune_worktree(const char *id, struct strbuf *reason) +/* + * Return true if worktree entry should be pruned, along with the reason for + * pruning. Otherwise, return false and the worktree's path, or NULL if it + * cannot be determined. Caller is responsible for freeing returned path. + */ +static int should_prune_worktree(const char *id, struct strbuf *reason, char **wtpath) { struct stat st; char *path; @@ -75,20 +80,21 @@ static int prune_worktree(const char *id, struct strbuf *reason) size_t len; ssize_t read_result; + *wtpath = NULL; if (!is_directory(git_path("worktrees/%s", id))) { - strbuf_addf(reason, _("Removing worktrees/%s: not a valid directory"), id); + strbuf_addstr(reason, _("not a valid directory")); return 1; } if (file_exists(git_path("worktrees/%s/locked", id))) return 0; if (stat(git_path("worktrees/%s/gitdir", id), &st)) { - strbuf_addf(reason, _("Removing worktrees/%s: gitdir file does not exist"), id); + strbuf_addstr(reason, _("gitdir file does not exist")); return 1; } fd = open(git_path("worktrees/%s/gitdir", id), O_RDONLY); if (fd < 0) { - strbuf_addf(reason, _("Removing worktrees/%s: unable to read gitdir file (%s)"), - id, strerror(errno)); + strbuf_addf(reason, _("unable to read gitdir file (%s)"), + strerror(errno)); return 1; } len = xsize_t(st.st_size); @@ -96,8 +102,8 @@ static int prune_worktree(const char *id, struct strbuf *reason) read_result = read_in_full(fd, path, len); if (read_result < 0) { - strbuf_addf(reason, _("Removing worktrees/%s: unable to read gitdir file (%s)"), - id, strerror(errno)); + strbuf_addf(reason, _("unable to read gitdir file (%s)"), + strerror(errno)); close(fd); free(path); return 1; @@ -106,53 +112,103 @@ static int prune_worktree(const char *id, struct strbuf *reason) if (read_result != len) { strbuf_addf(reason, - _("Removing worktrees/%s: short read (expected %"PRIuMAX" bytes, read %"PRIuMAX")"), - id, (uintmax_t)len, (uintmax_t)read_result); + _("short read (expected %"PRIuMAX" bytes, read %"PRIuMAX")"), + (uintmax_t)len, (uintmax_t)read_result); free(path); return 1; } while (len && (path[len - 1] == '\n' || path[len - 1] == '\r')) len--; if (!len) { - strbuf_addf(reason, _("Removing worktrees/%s: invalid gitdir file"), id); + strbuf_addstr(reason, _("invalid gitdir file")); free(path); return 1; } path[len] = '\0'; if (!file_exists(path)) { - free(path); if (stat(git_path("worktrees/%s/index", id), &st) || st.st_mtime <= expire) { - strbuf_addf(reason, _("Removing worktrees/%s: gitdir file points to non-existent location"), id); + strbuf_addstr(reason, _("gitdir file points to non-existent location")); + free(path); return 1; } else { + *wtpath = path; return 0; } } - free(path); + *wtpath = path; return 0; } +static void prune_worktree(const char *id, const char *reason) +{ + if (show_only || verbose) + printf_ln(_("Removing %s/%s: %s"), "worktrees", id, reason); + if (!show_only) + delete_git_dir(id); +} + +static int prune_cmp(const void *a, const void *b) +{ + const struct string_list_item *x = a; + const struct string_list_item *y = b; + int c; + + if ((c = fspathcmp(x->string, y->string))) + return c; + /* + * paths same; prune_dupes() removes all but the first worktree entry + * having the same path, so sort main worktree ('util' is NULL) above + * linked worktrees ('util' not NULL) since main worktree can't be + * removed + */ + if (!x->util) + return -1; + if (!y->util) + return 1; + /* paths same; sort by .git/worktrees/<id> */ + return strcmp(x->util, y->util); +} + +static void prune_dups(struct string_list *l) +{ + int i; + + QSORT(l->items, l->nr, prune_cmp); + for (i = 1; i < l->nr; i++) { + if (!fspathcmp(l->items[i].string, l->items[i - 1].string)) + prune_worktree(l->items[i].util, "duplicate entry"); + } +} + static void prune_worktrees(void) { struct strbuf reason = STRBUF_INIT; + struct strbuf main_path = STRBUF_INIT; + struct string_list kept = STRING_LIST_INIT_NODUP; DIR *dir = opendir(git_path("worktrees")); struct dirent *d; if (!dir) return; while ((d = readdir(dir)) != NULL) { + char *path; if (is_dot_or_dotdot(d->d_name)) continue; strbuf_reset(&reason); - if (!prune_worktree(d->d_name, &reason)) - continue; - if (show_only || verbose) - printf("%s\n", reason.buf); - if (show_only) - continue; - delete_git_dir(d->d_name); + if (should_prune_worktree(d->d_name, &reason, &path)) + prune_worktree(d->d_name, reason.buf); + else if (path) + string_list_append(&kept, path)->util = xstrdup(d->d_name); } closedir(dir); + + strbuf_add_absolute_path(&main_path, get_git_common_dir()); + /* massage main worktree absolute path to match 'gitdir' content */ + strbuf_strip_suffix(&main_path, "/."); + string_list_append(&kept, strbuf_detach(&main_path, NULL)); + prune_dups(&kept); + string_list_clear(&kept, 1); + if (!show_only) delete_worktrees_dir_if_empty(); strbuf_release(&reason); @@ -224,34 +280,33 @@ static const char *worktree_basename(const char *path, int *olen) return name; } -static void validate_worktree_add(const char *path, const struct add_opts *opts) +/* check that path is viable location for worktree */ +static void check_candidate_path(const char *path, + int force, + struct worktree **worktrees, + const char *cmd) { - struct worktree **worktrees; struct worktree *wt; int locked; if (file_exists(path) && !is_empty_dir(path)) die(_("'%s' already exists"), path); - worktrees = get_worktrees(0); wt = find_worktree_by_path(worktrees, path); if (!wt) - goto done; + return; locked = !!worktree_lock_reason(wt); - if ((!locked && opts->force) || (locked && opts->force > 1)) { + if ((!locked && force) || (locked && force > 1)) { if (delete_git_dir(wt->id)) - die(_("unable to re-add worktree '%s'"), path); - goto done; + die(_("unusable worktree destination '%s'"), path); + return; } if (locked) - die(_("'%s' is a missing but locked worktree;\nuse 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"), path); + die(_("'%s' is a missing but locked worktree;\nuse '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"), cmd, path); else - die(_("'%s' is a missing but already registered worktree;\nuse 'add -f' to override, or 'prune' or 'remove' to clear"), path); - -done: - free_worktrees(worktrees); + die(_("'%s' is a missing but already registered worktree;\nuse '%s -f' to override, or 'prune' or 'remove' to clear"), cmd, path); } static int add_worktree(const char *path, const char *refname, @@ -268,8 +323,12 @@ static int add_worktree(const char *path, const char *refname, struct commit *commit = NULL; int is_branch = 0; struct strbuf sb_name = STRBUF_INIT; + struct worktree **worktrees; - validate_worktree_add(path, opts); + worktrees = get_worktrees(); + check_candidate_path(path, opts->force, worktrees, "add"); + free_worktrees(worktrees); + worktrees = NULL; /* is 'refname' a branch or commit? */ if (!opts->detach && !strbuf_check_branch_ref(&symref, refname) && @@ -638,6 +697,23 @@ static void measure_widths(struct worktree **wt, int *abbrev, int *maxlen) } } +static int pathcmp(const void *a_, const void *b_) +{ + const struct worktree *const *a = a_; + const struct worktree *const *b = b_; + return fspathcmp((*a)->path, (*b)->path); +} + +static void pathsort(struct worktree **wt) +{ + int n = 0; + struct worktree **p = wt; + + while (*p++) + n++; + QSORT(wt, n, pathcmp); +} + static int list(int ac, const char **av, const char *prefix) { int porcelain = 0; @@ -651,9 +727,12 @@ static int list(int ac, const char **av, const char *prefix) if (ac) usage_with_options(worktree_usage, options); else { - struct worktree **worktrees = get_worktrees(GWT_SORT_LINKED); + struct worktree **worktrees = get_worktrees(); int path_maxlen = 0, abbrev = DEFAULT_ABBREV, i; + /* sort worktrees by path but keep main worktree at top */ + pathsort(worktrees + 1); + if (!porcelain) measure_widths(worktrees, &abbrev, &path_maxlen); @@ -682,7 +761,7 @@ static int lock_worktree(int ac, const char **av, const char *prefix) if (ac != 1) usage_with_options(worktree_usage, options); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); wt = find_worktree(worktrees, prefix, av[0]); if (!wt) die(_("'%s' is not a working tree"), av[0]); @@ -715,7 +794,7 @@ static int unlock_worktree(int ac, const char **av, const char *prefix) if (ac != 1) usage_with_options(worktree_usage, options); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); wt = find_worktree(worktrees, prefix, av[0]); if (!wt) die(_("'%s' is not a working tree"), av[0]); @@ -789,7 +868,7 @@ static int move_worktree(int ac, const char **av, const char *prefix) strbuf_addstr(&dst, path); free(path); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); wt = find_worktree(worktrees, prefix, av[0]); if (!wt) die(_("'%s' is not a working tree"), av[0]); @@ -804,8 +883,7 @@ static int move_worktree(int ac, const char **av, const char *prefix) strbuf_trim_trailing_dir_sep(&dst); strbuf_addstr(&dst, sep); } - if (file_exists(dst.buf)) - die(_("target '%s' already exists"), dst.buf); + check_candidate_path(dst.buf, force, worktrees, "move"); validate_no_submodules(wt); @@ -916,7 +994,7 @@ static int remove_worktree(int ac, const char **av, const char *prefix) if (ac != 1) usage_with_options(worktree_usage, options); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); wt = find_worktree(worktrees, prefix, av[0]); if (!wt) die(_("'%s' is not a working tree"), av[0]); @@ -23,6 +23,17 @@ static void add_to_ref_list(const struct object_id *oid, const char *name, list->nr++; } +static const struct git_hash_algo *detect_hash_algo(struct strbuf *buf) +{ + size_t len = strcspn(buf->buf, " \n"); + int algo; + + algo = hash_algo_by_length(len / 2); + if (algo == GIT_HASH_UNKNOWN) + return NULL; + return &hash_algos[algo]; +} + static int parse_bundle_header(int fd, struct bundle_header *header, const char *report_path) { @@ -52,12 +63,21 @@ static int parse_bundle_header(int fd, struct bundle_header *header, } strbuf_rtrim(&buf); + if (!header->hash_algo) { + header->hash_algo = detect_hash_algo(&buf); + if (!header->hash_algo) { + error(_("unknown hash algorithm length")); + status = -1; + break; + } + } + /* * Tip lines have object name, SP, and refname. * Prerequisites have object name that is optionally * followed by SP and subject line. */ - if (parse_oid_hex(buf.buf, &oid, &p) || + if (parse_oid_hex_algop(buf.buf, &oid, &p, header->hash_algo) || (*p && !isspace(*p)) || (!is_prereq && !*p)) { if (report_path) @@ -15,6 +15,7 @@ struct ref_list { struct bundle_header { struct ref_list prerequisites; struct ref_list references; + const struct git_hash_algo *hash_algo; }; int is_bundle(const char *path, int quiet); @@ -628,7 +628,7 @@ int path_inside_repo(const char *prefix, const char *path); int init_db(const char *git_dir, const char *real_git_dir, const char *template_dir, int hash_algo, - unsigned int flags); + const char *initial_branch, unsigned int flags); void initialize_repository_version(int hash_algo); void sanitize_stdfds(void); @@ -1042,6 +1042,7 @@ struct repository_format { int worktree_config; int is_bare; int hash_algo; + int has_extensions; char *work_tree; struct string_list unknown_extensions; }; diff --git a/ci/config/allow-refs.sample b/ci/config/allow-ref.sample index f157f1945a..af0e076f8a 100755 --- a/ci/config/allow-refs.sample +++ b/ci/config/allow-ref.sample @@ -7,8 +7,9 @@ # your repository: # # git checkout -b ci-config -# cp allow-refs.sample allow-refs -# $EDITOR allow-refs +# cp allow-ref.sample allow-ref +# $EDITOR allow-ref +# git add allow-ref # git commit -am "implement my ci preferences" # git push # diff --git a/command-list.txt b/command-list.txt index cbb960c843..89aa60cde7 100644 --- a/command-list.txt +++ b/command-list.txt @@ -136,7 +136,7 @@ git-pack-redundant plumbinginterrogators git-pack-refs ancillarymanipulators git-parse-remote synchelpers git-patch-id purehelpers -git-prune ancillarymanipulators +git-prune ancillarymanipulators complete git-prune-packed plumbingmanipulators git-pull mainporcelain remote git-push mainporcelain remote diff --git a/commit-graph.c b/commit-graph.c index e3420ddcbf..328ab06fd4 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -87,15 +87,69 @@ static int commit_pos_cmp(const void *va, const void *vb) commit_pos_at(&commit_pos, b); } +define_commit_slab(commit_graph_data_slab, struct commit_graph_data); +static struct commit_graph_data_slab commit_graph_data_slab = + COMMIT_SLAB_INIT(1, commit_graph_data_slab); + +uint32_t commit_graph_position(const struct commit *c) +{ + struct commit_graph_data *data = + commit_graph_data_slab_peek(&commit_graph_data_slab, c); + + return data ? data->graph_pos : COMMIT_NOT_FROM_GRAPH; +} + +uint32_t commit_graph_generation(const struct commit *c) +{ + struct commit_graph_data *data = + commit_graph_data_slab_peek(&commit_graph_data_slab, c); + + if (!data) + return GENERATION_NUMBER_INFINITY; + else if (data->graph_pos == COMMIT_NOT_FROM_GRAPH) + return GENERATION_NUMBER_INFINITY; + + return data->generation; +} + +static struct commit_graph_data *commit_graph_data_at(const struct commit *c) +{ + unsigned int i, nth_slab; + struct commit_graph_data *data = + commit_graph_data_slab_peek(&commit_graph_data_slab, c); + + if (data) + return data; + + nth_slab = c->index / commit_graph_data_slab.slab_size; + data = commit_graph_data_slab_at(&commit_graph_data_slab, c); + + /* + * commit-slab initializes elements with zero, overwrite this with + * COMMIT_NOT_FROM_GRAPH for graph_pos. + * + * We avoid initializing generation with checking if graph position + * is not COMMIT_NOT_FROM_GRAPH. + */ + for (i = 0; i < commit_graph_data_slab.slab_size; i++) { + commit_graph_data_slab.slab[nth_slab][i].graph_pos = + COMMIT_NOT_FROM_GRAPH; + } + + return data; +} + static int commit_gen_cmp(const void *va, const void *vb) { const struct commit *a = *(const struct commit **)va; const struct commit *b = *(const struct commit **)vb; + uint32_t generation_a = commit_graph_generation(a); + uint32_t generation_b = commit_graph_generation(b); /* lower generation commits first */ - if (a->generation < b->generation) + if (generation_a < generation_b) return -1; - else if (a->generation > b->generation) + else if (generation_a > generation_b) return 1; /* use date as a heuristic when generations are equal */ @@ -149,7 +203,8 @@ static int commit_graph_compatible(struct repository *r) } prepare_commit_graft(r); - if (r->parsed_objects && r->parsed_objects->grafts_nr) + if (r->parsed_objects && + (r->parsed_objects->grafts_nr || r->parsed_objects->substituted_parent)) return 0; if (is_repository_shallow(r)) return 0; @@ -670,13 +725,14 @@ static struct commit_list **insert_parent_or_die(struct repository *r, c = lookup_commit(r, &oid); if (!c) die(_("could not find commit %s"), oid_to_hex(&oid)); - c->graph_pos = pos; + commit_graph_data_at(c)->graph_pos = pos; return &commit_list_insert(c, pptr)->next; } static void fill_commit_graph_info(struct commit *item, struct commit_graph *g, uint32_t pos) { const unsigned char *commit_data; + struct commit_graph_data *graph_data; uint32_t lex_index; while (pos < g->num_commits_in_base) @@ -684,8 +740,10 @@ static void fill_commit_graph_info(struct commit *item, struct commit_graph *g, lex_index = pos - g->num_commits_in_base; commit_data = g->chunk_commit_data + GRAPH_DATA_WIDTH * lex_index; - item->graph_pos = pos; - item->generation = get_be32(commit_data + g->hash_len + 8) >> 2; + + graph_data = commit_graph_data_at(item); + graph_data->graph_pos = pos; + graph_data->generation = get_be32(commit_data + g->hash_len + 8) >> 2; } static inline void set_commit_tree(struct commit *c, struct tree *t) @@ -701,6 +759,7 @@ static int fill_commit_in_graph(struct repository *r, uint32_t *parent_data_ptr; uint64_t date_low, date_high; struct commit_list **pptr; + struct commit_graph_data *graph_data; const unsigned char *commit_data; uint32_t lex_index; @@ -714,7 +773,8 @@ static int fill_commit_in_graph(struct repository *r, * Store the "full" position, but then use the * "local" position for the rest of the calculation. */ - item->graph_pos = pos; + graph_data = commit_graph_data_at(item); + graph_data->graph_pos = pos; lex_index = pos - g->num_commits_in_base; commit_data = g->chunk_commit_data + (g->hash_len + 16) * lex_index; @@ -727,7 +787,7 @@ static int fill_commit_in_graph(struct repository *r, date_low = get_be32(commit_data + g->hash_len + 12); item->date = (timestamp_t)((date_high << 32) | date_low); - item->generation = get_be32(commit_data + g->hash_len + 8) >> 2; + graph_data->generation = get_be32(commit_data + g->hash_len + 8) >> 2; pptr = &item->parents; @@ -759,8 +819,9 @@ static int fill_commit_in_graph(struct repository *r, static int find_commit_in_graph(struct commit *item, struct commit_graph *g, uint32_t *pos) { - if (item->graph_pos != COMMIT_NOT_FROM_GRAPH) { - *pos = item->graph_pos; + uint32_t graph_pos = commit_graph_position(item); + if (graph_pos != COMMIT_NOT_FROM_GRAPH) { + *pos = graph_pos; return 1; } else { struct commit_graph *cur_g = g; @@ -815,12 +876,13 @@ static struct tree *load_tree_for_commit(struct repository *r, { struct object_id oid; const unsigned char *commit_data; + uint32_t graph_pos = commit_graph_position(c); - while (c->graph_pos < g->num_commits_in_base) + while (graph_pos < g->num_commits_in_base) g = g->base_graph; commit_data = g->chunk_commit_data + - GRAPH_DATA_WIDTH * (c->graph_pos - g->num_commits_in_base); + GRAPH_DATA_WIDTH * (graph_pos - g->num_commits_in_base); hashcpy(oid.hash, commit_data); set_commit_tree(c, lookup_tree(r, &oid)); @@ -834,7 +896,7 @@ static struct tree *get_commit_tree_in_graph_one(struct repository *r, { if (c->maybe_tree) return c->maybe_tree; - if (c->graph_pos == COMMIT_NOT_FROM_GRAPH) + if (commit_graph_position(c) == COMMIT_NOT_FROM_GRAPH) BUG("get_commit_tree_in_graph_one called from non-commit-graph commit"); return load_tree_for_commit(r, g, (struct commit *)c); @@ -881,7 +943,6 @@ struct write_commit_graph_context { unsigned append:1, report_progress:1, split:1, - check_oids:1, changed_paths:1, order_by_pack:1; @@ -1021,7 +1082,7 @@ static void write_graph_chunk_data(struct hashfile *f, int hash_len, else packedDate[0] = 0; - packedDate[0] |= htonl((*list)->generation << 2); + packedDate[0] |= htonl(commit_graph_data_at(*list)->generation << 2); packedDate[1] = htonl((*list)->date); hashwrite(f, packedDate, 8); @@ -1220,7 +1281,7 @@ static void close_reachable(struct write_commit_graph_context *ctx) continue; if (ctx->split) { if ((!parse_commit(commit) && - commit->graph_pos == COMMIT_NOT_FROM_GRAPH) || + commit_graph_position(commit) == COMMIT_NOT_FROM_GRAPH) || flags == COMMIT_GRAPH_SPLIT_REPLACE) add_missing_parents(ctx, commit); } else if (!parse_commit_no_graph(commit)) @@ -1252,9 +1313,11 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx) _("Computing commit graph generation numbers"), ctx->commits.nr); for (i = 0; i < ctx->commits.nr; i++) { + uint32_t generation = commit_graph_data_at(ctx->commits.list[i])->generation; + display_progress(ctx->progress, i + 1); - if (ctx->commits.list[i]->generation != GENERATION_NUMBER_INFINITY && - ctx->commits.list[i]->generation != GENERATION_NUMBER_ZERO) + if (generation != GENERATION_NUMBER_INFINITY && + generation != GENERATION_NUMBER_ZERO) continue; commit_list_insert(ctx->commits.list[i], &list); @@ -1265,22 +1328,26 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx) uint32_t max_generation = 0; for (parent = current->parents; parent; parent = parent->next) { - if (parent->item->generation == GENERATION_NUMBER_INFINITY || - parent->item->generation == GENERATION_NUMBER_ZERO) { + generation = commit_graph_data_at(parent->item)->generation; + + if (generation == GENERATION_NUMBER_INFINITY || + generation == GENERATION_NUMBER_ZERO) { all_parents_computed = 0; commit_list_insert(parent->item, &list); break; - } else if (parent->item->generation > max_generation) { - max_generation = parent->item->generation; + } else if (generation > max_generation) { + max_generation = generation; } } if (all_parents_computed) { - current->generation = max_generation + 1; + struct commit_graph_data *data = commit_graph_data_at(current); + + data->generation = max_generation + 1; pop_commit(&list); - if (current->generation > GENERATION_NUMBER_MAX) - current->generation = GENERATION_NUMBER_MAX; + if (data->generation > GENERATION_NUMBER_MAX) + data->generation = GENERATION_NUMBER_MAX; } } } @@ -1319,13 +1386,25 @@ static void compute_bloom_filters(struct write_commit_graph_context *ctx) stop_progress(&progress); } +struct refs_cb_data { + struct oidset *commits; + struct progress *progress; +}; + static int add_ref_to_set(const char *refname, const struct object_id *oid, int flags, void *cb_data) { - struct oidset *commits = (struct oidset *)cb_data; + struct object_id peeled; + struct refs_cb_data *data = (struct refs_cb_data *)cb_data; + + if (!peel_ref(refname, &peeled)) + oid = &peeled; + if (oid_object_info(the_repository, oid, NULL) == OBJ_COMMIT) + oidset_insert(data->commits, oid); + + display_progress(data->progress, oidset_size(data->commits)); - oidset_insert(commits, oid); return 0; } @@ -1334,13 +1413,22 @@ int write_commit_graph_reachable(struct object_directory *odb, const struct split_commit_graph_opts *split_opts) { struct oidset commits = OIDSET_INIT; + struct refs_cb_data data; int result; - for_each_ref(add_ref_to_set, &commits); + memset(&data, 0, sizeof(data)); + data.commits = &commits; + if (flags & COMMIT_GRAPH_WRITE_PROGRESS) + data.progress = start_delayed_progress( + _("Collecting referenced commits"), 0); + + for_each_ref(add_ref_to_set, &data); result = write_commit_graph(odb, NULL, &commits, flags, split_opts); oidset_clear(&commits); + if (data.progress) + stop_progress(&data.progress); return result; } @@ -1392,46 +1480,19 @@ static int fill_oids_from_packs(struct write_commit_graph_context *ctx, static int fill_oids_from_commits(struct write_commit_graph_context *ctx, struct oidset *commits) { - uint32_t i = 0; - struct strbuf progress_title = STRBUF_INIT; struct oidset_iter iter; struct object_id *oid; if (!oidset_size(commits)) return 0; - if (ctx->report_progress) { - strbuf_addf(&progress_title, - Q_("Finding commits for commit graph from %d ref", - "Finding commits for commit graph from %d refs", - oidset_size(commits)), - oidset_size(commits)); - ctx->progress = start_delayed_progress( - progress_title.buf, - oidset_size(commits)); - } - oidset_iter_init(commits, &iter); while ((oid = oidset_iter_next(&iter))) { - struct commit *result; - - display_progress(ctx->progress, ++i); - - result = lookup_commit_reference_gently(ctx->r, oid, 1); - if (result) { - ALLOC_GROW(ctx->oids.list, ctx->oids.nr + 1, ctx->oids.alloc); - oidcpy(&ctx->oids.list[ctx->oids.nr], &(result->object.oid)); - ctx->oids.nr++; - } else if (ctx->check_oids) { - error(_("invalid commit object id: %s"), - oid_to_hex(oid)); - return -1; - } + ALLOC_GROW(ctx->oids.list, ctx->oids.nr + 1, ctx->oids.alloc); + oidcpy(&ctx->oids.list[ctx->oids.nr], oid); + ctx->oids.nr++; } - stop_progress(&ctx->progress); - strbuf_release(&progress_title); - return 0; } @@ -1465,7 +1526,7 @@ static uint32_t count_distinct_commits(struct write_commit_graph_context *ctx) if (ctx->split) { struct commit *c = lookup_commit(ctx->r, &ctx->oids.list[i]); - if (!c || c->graph_pos != COMMIT_NOT_FROM_GRAPH) + if (!c || commit_graph_position(c) != COMMIT_NOT_FROM_GRAPH) continue; } @@ -1499,7 +1560,7 @@ static void copy_oids_to_commits(struct write_commit_graph_context *ctx) ctx->commits.list[ctx->commits.nr] = lookup_commit(ctx->r, &ctx->oids.list[i]); if (ctx->split && flags != COMMIT_GRAPH_SPLIT_REPLACE && - ctx->commits.list[ctx->commits.nr]->graph_pos != COMMIT_NOT_FROM_GRAPH) + commit_graph_position(ctx->commits.list[ctx->commits.nr]) != COMMIT_NOT_FROM_GRAPH) continue; if (ctx->split && flags == COMMIT_GRAPH_SPLIT_REPLACE) @@ -2017,7 +2078,6 @@ int write_commit_graph(struct object_directory *odb, ctx->append = flags & COMMIT_GRAPH_WRITE_APPEND ? 1 : 0; ctx->report_progress = flags & COMMIT_GRAPH_WRITE_PROGRESS ? 1 : 0; ctx->split = flags & COMMIT_GRAPH_WRITE_SPLIT ? 1 : 0; - ctx->check_oids = flags & COMMIT_GRAPH_WRITE_CHECK_OIDS ? 1 : 0; ctx->split_opts = split_opts; ctx->changed_paths = flags & COMMIT_GRAPH_WRITE_BLOOM_FILTERS ? 1 : 0; ctx->total_bloom_filter_data_size = 0; @@ -2249,6 +2309,7 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags) struct commit *graph_commit, *odb_commit; struct commit_list *graph_parents, *odb_parents; uint32_t max_generation = 0; + uint32_t generation; display_progress(progress, i + 1); hashcpy(cur_oid.hash, g->chunk_oid_lookup + g->hash_len * i); @@ -2287,8 +2348,9 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags) oid_to_hex(&graph_parents->item->object.oid), oid_to_hex(&odb_parents->item->object.oid)); - if (graph_parents->item->generation > max_generation) - max_generation = graph_parents->item->generation; + generation = commit_graph_generation(graph_parents->item); + if (generation > max_generation) + max_generation = generation; graph_parents = graph_parents->next; odb_parents = odb_parents->next; @@ -2298,7 +2360,7 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags) graph_report(_("commit-graph parent list for commit %s terminates early"), oid_to_hex(&cur_oid)); - if (!graph_commit->generation) { + if (!commit_graph_generation(graph_commit)) { if (generation_zero == GENERATION_NUMBER_EXISTS) graph_report(_("commit-graph has generation number zero for commit %s, but non-zero elsewhere"), oid_to_hex(&cur_oid)); @@ -2318,10 +2380,11 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags) if (max_generation == GENERATION_NUMBER_MAX) max_generation--; - if (graph_commit->generation != max_generation + 1) + generation = commit_graph_generation(graph_commit); + if (generation != max_generation + 1) graph_report(_("commit-graph generation for commit %s is %u != %u"), oid_to_hex(&cur_oid), - graph_commit->generation, + generation, max_generation + 1); if (graph_commit->date != odb_commit->date) diff --git a/commit-graph.h b/commit-graph.h index 4212766a4f..28f89cdf3e 100644 --- a/commit-graph.h +++ b/commit-graph.h @@ -91,9 +91,7 @@ enum commit_graph_write_flags { COMMIT_GRAPH_WRITE_APPEND = (1 << 0), COMMIT_GRAPH_WRITE_PROGRESS = (1 << 1), COMMIT_GRAPH_WRITE_SPLIT = (1 << 2), - /* Make sure that each OID in the input is a valid commit OID. */ - COMMIT_GRAPH_WRITE_CHECK_OIDS = (1 << 3), - COMMIT_GRAPH_WRITE_BLOOM_FILTERS = (1 << 4), + COMMIT_GRAPH_WRITE_BLOOM_FILTERS = (1 << 3), }; enum commit_graph_split_flags { @@ -137,4 +135,14 @@ void free_commit_graph(struct commit_graph *); */ void disable_commit_graph(struct repository *r); +struct commit_graph_data { + uint32_t graph_pos; + uint32_t generation; +}; + +/* + * Commits should be parsed before accessing generation, graph positions. + */ +uint32_t commit_graph_generation(const struct commit *); +uint32_t commit_graph_position(const struct commit *); #endif diff --git a/commit-reach.c b/commit-reach.c index 4ca7e706a1..efd5925cbb 100644 --- a/commit-reach.c +++ b/commit-reach.c @@ -58,14 +58,15 @@ static struct commit_list *paint_down_to_common(struct repository *r, struct commit *commit = prio_queue_get(&queue); struct commit_list *parents; int flags; + uint32_t generation = commit_graph_generation(commit); - if (min_generation && commit->generation > last_gen) + if (min_generation && generation > last_gen) BUG("bad generation skip %8x > %8x at %s", - commit->generation, last_gen, + generation, last_gen, oid_to_hex(&commit->object.oid)); - last_gen = commit->generation; + last_gen = generation; - if (commit->generation < min_generation) + if (generation < min_generation) break; flags = commit->object.flags & (PARENT1 | PARENT2 | STALE); @@ -176,18 +177,20 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt repo_parse_commit(r, array[i]); for (i = 0; i < cnt; i++) { struct commit_list *common; - uint32_t min_generation = array[i]->generation; + uint32_t min_generation = commit_graph_generation(array[i]); if (redundant[i]) continue; for (j = filled = 0; j < cnt; j++) { + uint32_t curr_generation; if (i == j || redundant[j]) continue; filled_index[filled] = j; work[filled++] = array[j]; - if (array[j]->generation < min_generation) - min_generation = array[j]->generation; + curr_generation = commit_graph_generation(array[j]); + if (curr_generation < min_generation) + min_generation = curr_generation; } common = paint_down_to_common(r, array[i], filled, work, min_generation); @@ -283,7 +286,9 @@ struct commit_list *repo_get_merge_bases(struct repository *r, /* * Is "commit" a descendant of one of the elements on the "with_commit" list? */ -int is_descendant_of(struct commit *commit, struct commit_list *with_commit) +int repo_is_descendant_of(struct repository *r, + struct commit *commit, + struct commit_list *with_commit) { if (!with_commit) return 1; @@ -301,7 +306,7 @@ int is_descendant_of(struct commit *commit, struct commit_list *with_commit) other = with_commit->item; with_commit = with_commit->next; - if (in_merge_bases(other, commit)) + if (repo_in_merge_bases_many(r, other, 1, &commit)) return 1; } return 0; @@ -316,23 +321,26 @@ int repo_in_merge_bases_many(struct repository *r, struct commit *commit, { struct commit_list *bases; int ret = 0, i; - uint32_t min_generation = GENERATION_NUMBER_INFINITY; + uint32_t generation, min_generation = GENERATION_NUMBER_INFINITY; if (repo_parse_commit(r, commit)) return ret; for (i = 0; i < nr_reference; i++) { if (repo_parse_commit(r, reference[i])) return ret; - if (reference[i]->generation < min_generation) - min_generation = reference[i]->generation; + + generation = commit_graph_generation(reference[i]); + if (generation < min_generation) + min_generation = generation; } - if (commit->generation > min_generation) + generation = commit_graph_generation(commit); + if (generation > min_generation) return ret; bases = paint_down_to_common(r, commit, nr_reference, reference, - commit->generation); + generation); if (commit->object.flags & PARENT2) ret = 1; clear_commit_marks(commit, all_flags); @@ -348,7 +356,15 @@ int repo_in_merge_bases(struct repository *r, struct commit *commit, struct commit *reference) { - return repo_in_merge_bases_many(r, commit, 1, &reference); + int res; + struct commit_list *list = NULL; + struct commit_list **next = &list; + + next = commit_list_append(commit, next); + res = repo_is_descendant_of(r, reference, list); + free_commit_list(list); + + return res; } struct commit_list *reduce_heads(struct commit_list *heads) @@ -396,6 +412,7 @@ int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid) struct object *o; struct commit *old_commit, *new_commit; struct commit_list *old_commit_list = NULL; + int ret; /* * Both new_commit and old_commit must be commit-ish and new_commit is descendant of @@ -417,7 +434,10 @@ int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid) return 0; commit_list_insert(old_commit, &old_commit_list); - return is_descendant_of(new_commit, old_commit_list); + ret = repo_is_descendant_of(the_repository, + new_commit, old_commit_list); + free_commit_list(old_commit_list); + return ret; } /* @@ -467,7 +487,7 @@ static enum contains_result contains_test(struct commit *candidate, /* Otherwise, we don't know; prepare to recurse */ parse_commit_or_die(candidate); - if (candidate->generation < cutoff) + if (commit_graph_generation(candidate) < cutoff) return CONTAINS_NO; return CONTAINS_UNKNOWN; @@ -490,10 +510,12 @@ static enum contains_result contains_tag_algo(struct commit *candidate, const struct commit_list *p; for (p = want; p; p = p->next) { + uint32_t generation; struct commit *c = p->item; load_commit_graph_info(the_repository, c); - if (c->generation < cutoff) - cutoff = c->generation; + generation = commit_graph_generation(c); + if (generation < cutoff) + cutoff = generation; } result = contains_test(candidate, want, cache, cutoff); @@ -536,7 +558,7 @@ int commit_contains(struct ref_filter *filter, struct commit *commit, { if (filter->with_commit_tag_algo) return contains_tag_algo(commit, list, cache) == CONTAINS_YES; - return is_descendant_of(commit, list); + return repo_is_descendant_of(the_repository, commit, list); } static int compare_commits_by_gen(const void *_a, const void *_b) @@ -544,9 +566,12 @@ static int compare_commits_by_gen(const void *_a, const void *_b) const struct commit *a = *(const struct commit * const *)_a; const struct commit *b = *(const struct commit * const *)_b; - if (a->generation < b->generation) + uint32_t generation_a = commit_graph_generation(a); + uint32_t generation_b = commit_graph_generation(b); + + if (generation_a < generation_b) return -1; - if (a->generation > b->generation) + if (generation_a > generation_b) return 1; return 0; } @@ -585,7 +610,7 @@ int can_all_from_reach_with_flag(struct object_array *from, list[nr_commits] = (struct commit *)from_one; if (parse_commit(list[nr_commits]) || - list[nr_commits]->generation < min_generation) { + commit_graph_generation(list[nr_commits]) < min_generation) { result = 0; goto cleanup; } @@ -621,7 +646,7 @@ int can_all_from_reach_with_flag(struct object_array *from, if (parse_commit(parent->item) || parent->item->date < min_commit_date || - parent->item->generation < min_generation) + commit_graph_generation(parent->item) < min_generation) continue; commit_list_insert(parent->item, &stack); @@ -662,11 +687,13 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to, add_object_array(&from_iter->item->object, NULL, &from_objs); if (!parse_commit(from_iter->item)) { + uint32_t generation; if (from_iter->item->date < min_commit_date) min_commit_date = from_iter->item->date; - if (from_iter->item->generation < min_generation) - min_generation = from_iter->item->generation; + generation = commit_graph_generation(from_iter->item); + if (generation < min_generation) + min_generation = generation; } from_iter = from_iter->next; @@ -674,11 +701,13 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to, while (to_iter) { if (!parse_commit(to_iter->item)) { + uint32_t generation; if (to_iter->item->date < min_commit_date) min_commit_date = to_iter->item->date; - if (to_iter->item->generation < min_generation) - min_generation = to_iter->item->generation; + generation = commit_graph_generation(to_iter->item); + if (generation < min_generation) + min_generation = generation; } to_iter->item->object.flags |= PARENT2; @@ -718,11 +747,13 @@ struct commit_list *get_reachable_subset(struct commit **from, int nr_from, struct prio_queue queue = { compare_commits_by_gen_then_commit_date }; for (item = to; item < to_last; item++) { + uint32_t generation; struct commit *c = *item; parse_commit(c); - if (c->generation < min_generation) - min_generation = c->generation; + generation = commit_graph_generation(c); + if (generation < min_generation) + min_generation = generation; if (!(c->object.flags & PARENT1)) { c->object.flags |= PARENT1; @@ -755,7 +786,7 @@ struct commit_list *get_reachable_subset(struct commit **from, int nr_from, parse_commit(p); - if (p->generation < min_generation) + if (commit_graph_generation(p) < min_generation) continue; if (p->object.flags & PARENT2) diff --git a/commit-reach.h b/commit-reach.h index 99a43e8b64..b49ad71a31 100644 --- a/commit-reach.h +++ b/commit-reach.h @@ -27,7 +27,9 @@ struct commit_list *repo_get_merge_bases_many_dirty(struct repository *r, struct commit_list *get_octopus_merge_bases(struct commit_list *in); -int is_descendant_of(struct commit *commit, struct commit_list *with_commit); +int repo_is_descendant_of(struct repository *r, + struct commit *commit, + struct commit_list *with_commit); int repo_in_merge_bases(struct repository *r, struct commit *commit, struct commit *reference); @@ -37,7 +37,7 @@ struct commit *lookup_commit_reference_gently(struct repository *r, if (!obj) return NULL; - return object_as_type(r, obj, OBJ_COMMIT, quiet); + return object_as_type(obj, OBJ_COMMIT, quiet); } struct commit *lookup_commit_reference(struct repository *r, const struct object_id *oid) @@ -62,7 +62,7 @@ struct commit *lookup_commit(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_object(r, oid, alloc_commit_node(r)); - return object_as_type(r, obj, OBJ_COMMIT, 0); + return object_as_type(obj, OBJ_COMMIT, 0); } struct commit *lookup_commit_reference_by_name(const char *name) @@ -339,7 +339,7 @@ struct tree *repo_get_commit_tree(struct repository *r, if (commit->maybe_tree || !commit->object.parsed) return commit->maybe_tree; - if (commit->graph_pos != COMMIT_NOT_FROM_GRAPH) + if (commit_graph_position(commit) != COMMIT_NOT_FROM_GRAPH) return get_commit_tree_in_graph(r, commit); return NULL; @@ -423,6 +423,8 @@ int parse_commit_buffer(struct repository *r, struct commit *item, const void *b pptr = &item->parents; graft = lookup_commit_graft(r, &item->object.oid); + if (graft) + r->parsed_objects->substituted_parent = 1; while (bufptr + parent_entry_len < tail && !memcmp(bufptr, "parent ", 7)) { struct commit *new_parent; @@ -729,11 +731,13 @@ int compare_commits_by_author_date(const void *a_, const void *b_, int compare_commits_by_gen_then_commit_date(const void *a_, const void *b_, void *unused) { const struct commit *a = a_, *b = b_; + const uint32_t generation_a = commit_graph_generation(a), + generation_b = commit_graph_generation(b); /* newer commits first */ - if (a->generation < b->generation) + if (generation_a < generation_b) return 1; - else if (a->generation > b->generation) + else if (generation_a > generation_b) return -1; /* use date as a heuristic when generations are equal */ @@ -36,8 +36,6 @@ struct commit { * or get_commit_tree_oid(). */ struct tree *maybe_tree; - uint32_t graph_pos; - uint32_t generation; unsigned int index; }; diff --git a/compat/vcbuild/scripts/clink.pl b/compat/vcbuild/scripts/clink.pl index d9f71b7cbb..61ad084a7b 100755 --- a/compat/vcbuild/scripts/clink.pl +++ b/compat/vcbuild/scripts/clink.pl @@ -23,7 +23,9 @@ while (@ARGV) { # before any "-l*" flags. $is_debug = 1; } - if ("$arg" =~ /^-[DIMGOZ]/) { + if ("$arg" =~ /^-I\/mingw(32|64)/) { + # eat + } elsif ("$arg" =~ /^-[DIMGOZ]/) { push(@cflags, $arg); } elsif ("$arg" eq "-o") { my $file_out = shift @ARGV; @@ -18,7 +18,7 @@ static char *server_capabilities_v1; static struct argv_array server_capabilities_v2 = ARGV_ARRAY_INIT; -static const char *parse_feature_value(const char *, const char *, int *); +static const char *next_server_feature_value(const char *feature, int *len, int *offset); static int check_ref(const char *name, unsigned int flags) { @@ -83,6 +83,21 @@ int server_supports_v2(const char *c, int die_on_error) return 0; } +int server_feature_v2(const char *c, const char **v) +{ + int i; + + for (i = 0; i < server_capabilities_v2.argc; i++) { + const char *out; + if (skip_prefix(server_capabilities_v2.argv[i], c, &out) && + (*out == '=')) { + *v = out + 1; + return 1; + } + } + return 0; +} + int server_supports_feature(const char *c, const char *feature, int die_on_error) { @@ -127,6 +142,7 @@ enum protocol_version discover_version(struct packet_reader *reader) die_initial_contact(0); case PACKET_READ_FLUSH: case PACKET_READ_DELIM: + case PACKET_READ_RESPONSE_END: version = protocol_v0; break; case PACKET_READ_NORMAL: @@ -180,17 +196,16 @@ reject: static void annotate_refs_with_symref_info(struct ref *ref) { struct string_list symref = STRING_LIST_INIT_DUP; - const char *feature_list = server_capabilities_v1; + int offset = 0; - while (feature_list) { + while (1) { int len; const char *val; - val = parse_feature_value(feature_list, "symref", &len); + val = next_server_feature_value("symref", &len, &offset); if (!val) break; parse_one_symref_info(&symref, val, len); - feature_list = val + 1; } string_list_sort(&symref); @@ -204,21 +219,36 @@ static void annotate_refs_with_symref_info(struct ref *ref) string_list_clear(&symref, 0); } -static void process_capabilities(const char *line, int *len) +static void process_capabilities(struct packet_reader *reader, int *linelen) { + const char *feat_val; + int feat_len; + const char *line = reader->line; int nul_location = strlen(line); - if (nul_location == *len) + if (nul_location == *linelen) return; server_capabilities_v1 = xstrdup(line + nul_location + 1); - *len = nul_location; + *linelen = nul_location; + + feat_val = server_feature_value("object-format", &feat_len); + if (feat_val) { + char *hash_name = xstrndup(feat_val, feat_len); + int hash_algo = hash_algo_by_name(hash_name); + if (hash_algo != GIT_HASH_UNKNOWN) + reader->hash_algo = &hash_algos[hash_algo]; + free(hash_name); + } else { + reader->hash_algo = &hash_algos[GIT_HASH_SHA1]; + } } -static int process_dummy_ref(const char *line) +static int process_dummy_ref(const struct packet_reader *reader) { + const char *line = reader->line; struct object_id oid; const char *name; - if (parse_oid_hex(line, &oid, &name)) + if (parse_oid_hex_algop(line, &oid, &name, reader->hash_algo)) return 0; if (*name != ' ') return 0; @@ -234,13 +264,15 @@ static void check_no_capabilities(const char *line, int len) line + strlen(line)); } -static int process_ref(const char *line, int len, struct ref ***list, - unsigned int flags, struct oid_array *extra_have) +static int process_ref(const struct packet_reader *reader, int len, + struct ref ***list, unsigned int flags, + struct oid_array *extra_have) { + const char *line = reader->line; struct object_id old_oid; const char *name; - if (parse_oid_hex(line, &old_oid, &name)) + if (parse_oid_hex_algop(line, &old_oid, &name, reader->hash_algo)) return 0; if (*name != ' ') return 0; @@ -260,16 +292,17 @@ static int process_ref(const char *line, int len, struct ref ***list, return 1; } -static int process_shallow(const char *line, int len, +static int process_shallow(const struct packet_reader *reader, int len, struct oid_array *shallow_points) { + const char *line = reader->line; const char *arg; struct object_id old_oid; if (!skip_prefix(line, "shallow ", &arg)) return 0; - if (get_oid_hex(arg, &old_oid)) + if (get_oid_hex_algop(arg, &old_oid, reader->hash_algo)) die(_("protocol error: expected shallow sha-1, got '%s'"), arg); if (!shallow_points) die(_("repository on the other end cannot be shallow")); @@ -310,25 +343,26 @@ struct ref **get_remote_heads(struct packet_reader *reader, state = EXPECTING_DONE; break; case PACKET_READ_DELIM: + case PACKET_READ_RESPONSE_END: die(_("invalid packet")); } switch (state) { case EXPECTING_FIRST_REF: - process_capabilities(reader->line, &len); - if (process_dummy_ref(reader->line)) { + process_capabilities(reader, &len); + if (process_dummy_ref(reader)) { state = EXPECTING_SHALLOW; break; } state = EXPECTING_REF; /* fallthrough */ case EXPECTING_REF: - if (process_ref(reader->line, len, &list, flags, extra_have)) + if (process_ref(reader, len, &list, flags, extra_have)) break; state = EXPECTING_SHALLOW; /* fallthrough */ case EXPECTING_SHALLOW: - if (process_shallow(reader->line, len, shallow_points)) + if (process_shallow(reader, len, shallow_points)) break; die(_("protocol error: unexpected '%s'"), reader->line); case EXPECTING_DONE: @@ -342,7 +376,7 @@ struct ref **get_remote_heads(struct packet_reader *reader, } /* Returns 1 when a valid ref has been added to `list`, 0 otherwise */ -static int process_ref_v2(const char *line, struct ref ***list) +static int process_ref_v2(struct packet_reader *reader, struct ref ***list) { int ret = 1; int i = 0; @@ -350,6 +384,7 @@ static int process_ref_v2(const char *line, struct ref ***list) struct ref *ref; struct string_list line_sections = STRING_LIST_INIT_DUP; const char *end; + const char *line = reader->line; /* * Ref lines have a number of fields which are space deliminated. The @@ -362,7 +397,7 @@ static int process_ref_v2(const char *line, struct ref ***list) goto out; } - if (parse_oid_hex(line_sections.items[i++].string, &old_oid, &end) || + if (parse_oid_hex_algop(line_sections.items[i++].string, &old_oid, &end, reader->hash_algo) || *end) { ret = 0; goto out; @@ -370,7 +405,7 @@ static int process_ref_v2(const char *line, struct ref ***list) ref = alloc_ref(line_sections.items[i++].string); - oidcpy(&ref->old_oid, &old_oid); + memcpy(ref->old_oid.hash, old_oid.hash, reader->hash_algo->rawsz); **list = ref; *list = &ref->next; @@ -383,7 +418,8 @@ static int process_ref_v2(const char *line, struct ref ***list) struct object_id peeled_oid; char *peeled_name; struct ref *peeled; - if (parse_oid_hex(arg, &peeled_oid, &end) || *end) { + if (parse_oid_hex_algop(arg, &peeled_oid, &end, + reader->hash_algo) || *end) { ret = 0; goto out; } @@ -391,7 +427,8 @@ static int process_ref_v2(const char *line, struct ref ***list) peeled_name = xstrfmt("%s^{}", ref->name); peeled = alloc_ref(peeled_name); - oidcpy(&peeled->old_oid, &peeled_oid); + memcpy(peeled->old_oid.hash, peeled_oid.hash, + reader->hash_algo->rawsz); **list = peeled; *list = &peeled->next; @@ -404,12 +441,24 @@ out: return ret; } +void check_stateless_delimiter(int stateless_rpc, + struct packet_reader *reader, + const char *error) +{ + if (!stateless_rpc) + return; /* not in stateless mode, no delimiter expected */ + if (packet_reader_read(reader) != PACKET_READ_RESPONSE_END) + die("%s", error); +} + struct ref **get_remote_refs(int fd_out, struct packet_reader *reader, struct ref **list, int for_push, const struct argv_array *ref_prefixes, - const struct string_list *server_options) + const struct string_list *server_options, + int stateless_rpc) { int i; + const char *hash_name; *list = NULL; if (server_supports_v2("ls-refs", 1)) @@ -418,6 +467,16 @@ struct ref **get_remote_refs(int fd_out, struct packet_reader *reader, if (server_supports_v2("agent", 0)) packet_write_fmt(fd_out, "agent=%s", git_user_agent_sanitized()); + if (server_feature_v2("object-format", &hash_name)) { + int hash_algo = hash_algo_by_name(hash_name); + if (hash_algo == GIT_HASH_UNKNOWN) + die(_("unknown object format '%s' specified by server"), hash_name); + reader->hash_algo = &hash_algos[hash_algo]; + packet_write_fmt(fd_out, "object-format=%s", reader->hash_algo->name); + } else { + reader->hash_algo = &hash_algos[GIT_HASH_SHA1]; + } + if (server_options && server_options->nr && server_supports_v2("server-option", 1)) for (i = 0; i < server_options->nr; i++) @@ -437,17 +496,20 @@ struct ref **get_remote_refs(int fd_out, struct packet_reader *reader, /* Process response from server */ while (packet_reader_read(reader) == PACKET_READ_NORMAL) { - if (!process_ref_v2(reader->line, &list)) + if (!process_ref_v2(reader, &list)) die(_("invalid ls-refs response: %s"), reader->line); } if (reader->status != PACKET_READ_FLUSH) die(_("expected flush after ref listing")); + check_stateless_delimiter(stateless_rpc, reader, + _("expected response end packet after ref listing")); + return list; } -static const char *parse_feature_value(const char *feature_list, const char *feature, int *lenp) +const char *parse_feature_value(const char *feature_list, const char *feature, int *lenp, int *offset) { int len; @@ -455,6 +517,8 @@ static const char *parse_feature_value(const char *feature_list, const char *fea return NULL; len = strlen(feature); + if (offset) + feature_list += *offset; while (*feature_list) { const char *found = strstr(feature_list, feature); if (!found) @@ -469,9 +533,14 @@ static const char *parse_feature_value(const char *feature_list, const char *fea } /* feature with a value (e.g., "agent=git/1.2.3") */ else if (*value == '=') { + int end; + value++; + end = strcspn(value, " \t\n"); if (lenp) - *lenp = strcspn(value, " \t\n"); + *lenp = end; + if (offset) + *offset = value + end - feature_list; return value; } /* @@ -484,14 +553,41 @@ static const char *parse_feature_value(const char *feature_list, const char *fea return NULL; } +int server_supports_hash(const char *desired, int *feature_supported) +{ + int offset = 0; + int len; + const char *hash; + + hash = next_server_feature_value("object-format", &len, &offset); + if (feature_supported) + *feature_supported = !!hash; + if (!hash) { + hash = hash_algos[GIT_HASH_SHA1].name; + len = strlen(hash); + } + while (hash) { + if (!xstrncmpz(desired, hash, len)) + return 1; + + hash = next_server_feature_value("object-format", &len, &offset); + } + return 0; +} + int parse_feature_request(const char *feature_list, const char *feature) { - return !!parse_feature_value(feature_list, feature, NULL); + return !!parse_feature_value(feature_list, feature, NULL, NULL); +} + +static const char *next_server_feature_value(const char *feature, int *len, int *offset) +{ + return parse_feature_value(server_capabilities_v1, feature, len, offset); } const char *server_feature_value(const char *feature, int *len) { - return parse_feature_value(server_capabilities_v1, feature, len); + return parse_feature_value(server_capabilities_v1, feature, len, NULL); } int server_supports(const char *feature) @@ -18,8 +18,15 @@ int url_is_local_not_ssh(const char *url); struct packet_reader; enum protocol_version discover_version(struct packet_reader *reader); +int server_supports_hash(const char *desired, int *feature_supported); +const char *parse_feature_value(const char *feature_list, const char *feature, int *lenp, int *offset); int server_supports_v2(const char *c, int die_on_error); +int server_feature_v2(const char *c, const char **v); int server_supports_feature(const char *c, const char *feature, int die_on_error); +void check_stateless_delimiter(int stateless_rpc, + struct packet_reader *reader, + const char *error); + #endif diff --git a/connected.c b/connected.c index 3135b71e19..937b4bae38 100644 --- a/connected.c +++ b/connected.c @@ -43,10 +43,12 @@ int check_connected(oid_iterate_fn fn, void *cb_data, if (transport && transport->smart_options && transport->smart_options->self_contained_and_connected && - transport->pack_lockfile && - strip_suffix(transport->pack_lockfile, ".keep", &base_len)) { + transport->pack_lockfiles.nr == 1 && + strip_suffix(transport->pack_lockfiles.items[0].string, + ".keep", &base_len)) { struct strbuf idx_file = STRBUF_INIT; - strbuf_add(&idx_file, transport->pack_lockfile, base_len); + strbuf_add(&idx_file, transport->pack_lockfiles.items[0].string, + base_len); strbuf_addstr(&idx_file, ".idx"); new_pack = add_packed_git(idx_file.buf, idx_file.len, 1); strbuf_release(&idx_file); diff --git a/contrib/coccinelle/commit.cocci b/contrib/coccinelle/commit.cocci index 778e4704f6..af6dd4c20c 100644 --- a/contrib/coccinelle/commit.cocci +++ b/contrib/coccinelle/commit.cocci @@ -32,3 +32,21 @@ expression c; - c->maybe_tree + repo_get_commit_tree(specify_the_right_repo_here, c) ...>} + +@@ +struct commit *c; +expression E; +@@ +( +- c->generation = E; ++ commit_graph_data_at(c)->generation = E; +| +- c->graph_pos = E; ++ commit_graph_data_at(c)->graph_pos = E; +| +- c->generation ++ commit_graph_generation(c) +| +- c->graph_pos ++ commit_graph_position(c) +) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 70ad04e1b2..ee468ea3b0 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -50,7 +50,7 @@ esac # variable. __git_find_repo_path () { - if [ -n "$__git_repo_path" ]; then + if [ -n "${__git_repo_path-}" ]; then # we already know where it is return fi @@ -301,6 +301,19 @@ __gitcomp_direct () COMPREPLY=($1) } +# Similar to __gitcomp_direct, but appends to COMPREPLY instead. +# Callers must take care of providing only words that match the current word +# to be completed and adding any prefix and/or suffix (trailing space!), if +# necessary. +# 1: List of newline-separated matching completion words, complete with +# prefix and suffix. +__gitcomp_direct_append () +{ + local IFS=$'\n' + + COMPREPLY+=($1) +} + __gitcompappend () { local x i=${#COMPREPLY[@]} @@ -373,7 +386,7 @@ __gitcomp () # Clear the variables caching builtins' options when (re-)sourcing # the completion script. if [[ -n ${ZSH_VERSION-} ]]; then - unset $(set |sed -ne 's/^\(__gitcomp_builtin_[a-zA-Z0-9_][a-zA-Z0-9_]*\)=.*/\1/p') 2>/dev/null + unset ${(M)${(k)parameters[@]}:#__gitcomp_builtin_*} 2>/dev/null else unset $(compgen -v __gitcomp_builtin_) fi @@ -391,12 +404,12 @@ __gitcomp_builtin () # spaces must be replaced with underscore for multi-word # commands, e.g. "git remote add" becomes remote_add. local cmd="$1" - local incl="$2" - local excl="$3" + local incl="${2-}" + local excl="${3-}" local var=__gitcomp_builtin_"${cmd/-/_}" local options - eval "options=\$$var" + eval "options=\${$var-}" if [ -z "$options" ]; then # leading and trailing spaces are significant to make @@ -611,6 +624,19 @@ __git_heads () "refs/heads/$cur_*" "refs/heads/$cur_*/**" } +# Lists branches from remote repositories. +# 1: A prefix to be added to each listed branch (optional). +# 2: List only branches matching this word (optional; list all branches if +# unset or empty). +# 3: A suffix to be appended to each listed branch (optional). +__git_remote_heads () +{ + local pfx="${1-}" cur_="${2-}" sfx="${3-}" + + __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + "refs/remotes/$cur_*" "refs/remotes/$cur_*/**" +} + # Lists tags from the local repository. # Accepts the same positional parameters as __git_heads() above. __git_tags () @@ -621,6 +647,26 @@ __git_tags () "refs/tags/$cur_*" "refs/tags/$cur_*/**" } +# List unique branches from refs/remotes used for 'git checkout' and 'git +# switch' tracking DWIMery. +# 1: A prefix to be added to each listed branch (optional) +# 2: List only branches matching this word (optional; list all branches if +# unset or empty). +# 3: A suffix to be appended to each listed branch (optional). +__git_dwim_remote_heads () +{ + local pfx="${1-}" cur_="${2-}" sfx="${3-}" + local fer_pfx="${pfx//\%/%%}" # "escape" for-each-ref format specifiers + + # employ the heuristic used by git checkout and git switch + # Try to find a remote branch that cur_es the completion word + # but only output if the branch name is unique + __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ + --sort="refname:strip=3" \ + "refs/remotes/*/$cur_*" "refs/remotes/*/$cur_*/**" | \ + uniq -u +} + # Lists refs from the local (by default) or from a remote repository. # It accepts 0, 1 or 2 arguments: # 1: The remote to list refs from (optional; ignored, if set but empty). @@ -696,13 +742,7 @@ __git_refs () __git_dir="$dir" __git for-each-ref --format="$fer_pfx%($format)$sfx" \ "${refs[@]}" if [ -n "$track" ]; then - # employ the heuristic used by git checkout - # Try to find a remote branch that matches the completion word - # but only output if the branch name is unique - __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ - --sort="refname:strip=3" \ - "refs/remotes/*/$match*" "refs/remotes/*/$match*/**" | \ - uniq -u + __git_dwim_remote_heads "$pfx" "$match" "$sfx" fi return fi @@ -749,29 +789,51 @@ __git_refs () # Usage: __git_complete_refs [<option>]... # --remote=<remote>: The remote to list refs from, can be the name of a # configured remote, a path, or a URL. -# --track: List unique remote branches for 'git checkout's tracking DWIMery. +# --dwim: List unique remote branches for 'git switch's tracking DWIMery. # --pfx=<prefix>: A prefix to be added to each ref. # --cur=<word>: The current ref to be completed. Defaults to the current # word to be completed. # --sfx=<suffix>: A suffix to be appended to each ref instead of the default # space. +# --mode=<mode>: What set of refs to complete, one of 'refs' (the default) to +# complete all refs, 'heads' to complete only branches, or +# 'remote-heads' to complete only remote branches. Note that +# --remote is only compatible with --mode=refs. __git_complete_refs () { - local remote track pfx cur_="$cur" sfx=" " + local remote= dwim= pfx= cur_="$cur" sfx=" " mode="refs" while test $# != 0; do case "$1" in --remote=*) remote="${1##--remote=}" ;; - --track) track="yes" ;; + --dwim) dwim="yes" ;; + # --track is an old spelling of --dwim + --track) dwim="yes" ;; --pfx=*) pfx="${1##--pfx=}" ;; --cur=*) cur_="${1##--cur=}" ;; --sfx=*) sfx="${1##--sfx=}" ;; + --mode=*) mode="${1##--mode=}" ;; *) return 1 ;; esac shift done - __gitcomp_direct "$(__git_refs "$remote" "$track" "$pfx" "$cur_" "$sfx")" + # complete references based on the specified mode + case "$mode" in + refs) + __gitcomp_direct "$(__git_refs "$remote" "" "$pfx" "$cur_" "$sfx")" ;; + heads) + __gitcomp_direct "$(__git_heads "$pfx" "$cur_" "$sfx")" ;; + remote-heads) + __gitcomp_direct "$(__git_remote_heads "$pfx" "$cur_" "$sfx")" ;; + *) + return 1 ;; + esac + + # Append DWIM remote branch names if requested + if [ "$dwim" = "yes" ]; then + __gitcomp_direct_append "$(__git_dwim_remote_heads "$pfx" "$cur_" "$sfx")" + fi } # __git_refs2 requires 1 argument (to pass to __git_refs) @@ -1090,7 +1152,7 @@ __git_find_on_cmdline () while [ $c -lt $cword ]; do for word in $wordlist; do if [ "$word" = "${words[c]}" ]; then - if [ -n "$show_idx" ]; then + if [ -n "${show_idx-}" ]; then echo "$c $word" else echo "$word" @@ -1102,6 +1164,40 @@ __git_find_on_cmdline () done } +# Similar to __git_find_on_cmdline, except that it loops backwards and thus +# prints the *last* word found. Useful for finding which of two options that +# supersede each other came last, such as "--guess" and "--no-guess". +# +# Usage: __git_find_last_on_cmdline [<option>]... "<wordlist>" +# --show-idx: Optionally show the index of the found word in the $words array. +__git_find_last_on_cmdline () +{ + local word c=$cword show_idx + + while test $# -gt 1; do + case "$1" in + --show-idx) show_idx=y ;; + *) return 1 ;; + esac + shift + done + local wordlist="$1" + + while [ $c -gt 1 ]; do + ((c--)) + for word in $wordlist; do + if [ "$word" = "${words[c]}" ]; then + if [ -n "$show_idx" ]; then + echo "$c $word" + else + echo "$word" + fi + return + fi + done + done +} + # Echo the value of an option set on the command line or config # # $1: short option name @@ -1356,6 +1452,46 @@ _git_bundle () esac } +# Helper function to decide whether or not we should enable DWIM logic for +# git-switch and git-checkout. +# +# To decide between the following rules in priority order +# 1) the last provided of "--guess" or "--no-guess" explicitly enable or +# disable completion of DWIM logic respectively. +# 2) If the --no-track option is provided, take this as a hint to disable the +# DWIM completion logic +# 3) If GIT_COMPLETION_CHECKOUT_NO_GUESS is set, disable the DWIM completion +# logic, as requested by the user. +# 4) Enable DWIM logic otherwise. +# +__git_checkout_default_dwim_mode () +{ + local last_option dwim_opt="--dwim" + + if [ "${GIT_COMPLETION_CHECKOUT_NO_GUESS-}" = "1" ]; then + dwim_opt="" + fi + + # --no-track disables DWIM, but with lower priority than + # --guess/--no-guess + if [ -n "$(__git_find_on_cmdline "--no-track")" ]; then + dwim_opt="" + fi + + # Find the last provided --guess or --no-guess + last_option="$(__git_find_last_on_cmdline "--guess --no-guess")" + case "$last_option" in + --guess) + dwim_opt="--dwim" + ;; + --no-guess) + dwim_opt="" + ;; + esac + + echo "$dwim_opt" +} + _git_checkout () { __git_has_doubledash && return @@ -1368,14 +1504,38 @@ _git_checkout () __gitcomp_builtin checkout ;; *) - # check if --track, --no-track, or --no-guess was specified - # if so, disable DWIM mode - local flags="--track --no-track --no-guess" track_opt="--track" - if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ] || - [ -n "$(__git_find_on_cmdline "$flags")" ]; then - track_opt='' + local dwim_opt="$(__git_checkout_default_dwim_mode)" + local prevword prevword="${words[cword-1]}" + + case "$prevword" in + -b|-B|--orphan) + # Complete local branches (and DWIM branch + # remote branch names) for an option argument + # specifying a new branch name. This is for + # convenience, assuming new branches are + # possibly based on pre-existing branch names. + __git_complete_refs $dwim_opt --mode="heads" + return + ;; + *) + ;; + esac + + # At this point, we've already handled special completion for + # the arguments to -b/-B, and --orphan. There are 3 main + # things left we can possibly complete: + # 1) a start-point for -b/-B, -d/--detach, or --orphan + # 2) a remote head, for --track + # 3) an arbitrary reference, possibly including DWIM names + # + + if [ -n "$(__git_find_on_cmdline "-b -B -d --detach --orphan")" ]; then + __git_complete_refs --mode="refs" + elif [ -n "$(__git_find_on_cmdline "--track")" ]; then + __git_complete_refs --mode="remote-heads" + else + __git_complete_refs $dwim_opt --mode="refs" fi - __git_complete_refs $track_opt ;; esac } @@ -2224,29 +2384,43 @@ _git_switch () __gitcomp_builtin switch ;; *) - # check if --track, --no-track, or --no-guess was specified - # if so, disable DWIM mode - local track_opt="--track" only_local_ref=n - if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ] || - [ -n "$(__git_find_on_cmdline "--track --no-track --no-guess")" ]; then - track_opt='' - fi - # explicit --guess enables DWIM mode regardless of - # $GIT_COMPLETION_CHECKOUT_NO_GUESS - if [ -n "$(__git_find_on_cmdline "--guess")" ]; then - track_opt='--track' - fi - if [ -z "$(__git_find_on_cmdline "-d --detach")" ]; then - only_local_ref=y - else - # --guess --detach is invalid combination, no - # dwim will be done when --detach is specified - track_opt= + local dwim_opt="$(__git_checkout_default_dwim_mode)" + local prevword prevword="${words[cword-1]}" + + case "$prevword" in + -c|-C|--orphan) + # Complete local branches (and DWIM branch + # remote branch names) for an option argument + # specifying a new branch name. This is for + # convenience, assuming new branches are + # possibly based on pre-existing branch names. + __git_complete_refs $dwim_opt --mode="heads" + return + ;; + *) + ;; + esac + + # Unlike in git checkout, git switch --orphan does not take + # a start point. Thus we really have nothing to complete after + # the branch name. + if [ -n "$(__git_find_on_cmdline "--orphan")" ]; then + return fi - if [ $only_local_ref = y -a -z "$track_opt" ]; then - __gitcomp_direct "$(__git_heads "" "$cur" " ")" + + # At this point, we've already handled special completion for + # -c/-C, and --orphan. There are 3 main things left to + # complete: + # 1) a start-point for -c/-C or -d/--detach + # 2) a remote head, for --track + # 3) a branch name, possibly including DWIM remote branches + + if [ -n "$(__git_find_on_cmdline "-c -C -d --detach")" ]; then + __git_complete_refs --mode="refs" + elif [ -n "$(__git_find_on_cmdline "--track")" ]; then + __git_complete_refs --mode="remote-heads" else - __git_complete_refs $track_opt + __git_complete_refs $dwim_opt --mode="heads" fi ;; esac @@ -2782,7 +2956,7 @@ _git_stash () local save_opts='--all --keep-index --no-keep-index --quiet --patch --include-untracked' local subcommands='push list show apply clear drop pop create branch' local subcommand="$(__git_find_on_cmdline "$subcommands save")" - if [ -n "$(__git_find_on_cmdline "-p")" ]; then + if [ -z "$subcommand" -a -n "$(__git_find_on_cmdline "-p")" ]; then subcommand="push" fi if [ -z "$subcommand" ]; then @@ -3176,7 +3350,7 @@ __git_main () ((c++)) done - if [ -z "$command" ]; then + if [ -z "${command-}" ]; then case "$prev" in --git-dir|-C|--work-tree) # these need a path argument, let's fall back to @@ -3211,7 +3385,7 @@ __git_main () " ;; *) - if test -n "$GIT_TESTING_PORCELAIN_COMMAND_LIST" + if test -n "${GIT_TESTING_PORCELAIN_COMMAND_LIST-}" then __gitcomp "$GIT_TESTING_PORCELAIN_COMMAND_LIST" else diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 014cd7c3cf..e6cd5464e5 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -70,6 +70,15 @@ # state symbols by setting GIT_PS1_STATESEPARATOR. The default separator # is SP. # +# When there is an in-progress operation such as a merge, rebase, +# revert, cherry-pick, or bisect, the prompt will include information +# related to the operation, often in the form "|<OPERATION-NAME>". +# +# When the repository has a sparse-checkout, a notification of the form +# "|SPARSE" will be included in the prompt. This can be shortened to a +# single '?' character by setting GIT_PS1_COMPRESSSPARSESTATE, or omitted +# by setting GIT_PS1_OMITSPARSESTATE. +# # By default, __git_ps1 will compare HEAD to your SVN upstream if it can # find one, or @{upstream} otherwise. Once you have set # GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by @@ -421,6 +430,13 @@ __git_ps1 () return $exit fi + local sparse="" + if [ -z "${GIT_PS1_COMPRESSSPARSESTATE}" ] && + [ -z "${GIT_PS1_OMITSPARSESTATE}" ] && + [ "$(git config --bool core.sparseCheckout)" == "true" ]; then + sparse="|SPARSE" + fi + local r="" local b="" local step="" @@ -492,6 +508,7 @@ __git_ps1 () local i="" local s="" local u="" + local h="" local c="" local p="" @@ -524,6 +541,11 @@ __git_ps1 () u="%${ZSH_VERSION+%}" fi + if [ -n "${GIT_PS1_COMPRESSSPARSESTATE}" ] && + [ "$(git config --bool core.sparseCheckout)" == "true" ]; then + h="?" + fi + if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then __git_ps1_show_upstream fi @@ -542,8 +564,8 @@ __git_ps1 () b="\${__git_ps1_branch_name}" fi - local f="$w$i$s$u" - local gitstring="$c$b${f:+$z$f}$r$p" + local f="$h$w$i$s$u" + local gitstring="$c$b${f:+$z$f}${sparse}$r$p" if [ $pcmode = yes ]; then if [ "${__git_printf_supports_v-}" != yes ]; then diff --git a/contrib/subtree/t/t7900-subtree.sh b/contrib/subtree/t/t7900-subtree.sh index 57ff4b25c1..53d7accf94 100755 --- a/contrib/subtree/t/t7900-subtree.sh +++ b/contrib/subtree/t/t7900-subtree.sh @@ -196,7 +196,8 @@ test_expect_success 'merge new subproj history into sub dir/ with --prefix' ' cd "$subtree_test_count" && git fetch ./"sub proj" master && git subtree merge --prefix="sub dir" FETCH_HEAD && - check_equal "$(last_commit_message)" "Merge commit '\''$(git rev-parse FETCH_HEAD)'\''" + check_equal "$(last_commit_message)" \ + "Merge commit '\''$(git rev-parse FETCH_HEAD)'\'' into master" ) ' @@ -273,7 +274,8 @@ test_expect_success 'merge new subproj history into subdir/ with a slash appende cd "$test_count" && git fetch ./subproj master && git subtree merge --prefix=subdir/ FETCH_HEAD && - check_equal "$(last_commit_message)" "Merge commit '\''$(git rev-parse FETCH_HEAD)'\''" + check_equal "$(last_commit_message)" \ + "Merge commit '\''$(git rev-parse FETCH_HEAD)'\'' into master" ) ' diff --git a/diff-lib.c b/diff-lib.c index 61812f48c2..25fd2dee19 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -220,8 +220,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option) } else if (revs->diffopt.ita_invisible_in_index && ce_intent_to_add(ce)) { diff_addremove(&revs->diffopt, '+', ce->ce_mode, - the_hash_algo->empty_tree, 0, - ce->name, 0); + &null_oid, 0, ce->name, 0); continue; } @@ -48,6 +48,7 @@ static const char *diff_order_file_cfg; int diff_auto_refresh_index = 1; static int diff_mnemonic_prefix; static int diff_no_prefix; +static int diff_relative; static int diff_stat_graph_width; static int diff_dirstat_permille_default = 30; static struct diff_options default_diff_options; @@ -386,6 +387,10 @@ int git_diff_ui_config(const char *var, const char *value, void *cb) diff_no_prefix = git_config_bool(var, value); return 0; } + if (!strcmp(var, "diff.relative")) { + diff_relative = git_config_bool(var, value); + return 0; + } if (!strcmp(var, "diff.statgraphwidth")) { diff_stat_graph_width = git_config_int(var, value); return 0; @@ -4538,6 +4543,7 @@ void repo_diff_setup(struct repository *r, struct diff_options *options) options->interhunkcontext = diff_interhunk_context_default; options->ws_error_highlight = ws_error_highlight_default; options->flags.rename_empty = 1; + options->flags.relative_name = diff_relative; options->objfind = NULL; /* pathchange left =NULL by default */ @@ -5195,8 +5201,7 @@ static int diff_opt_relative(const struct option *opt, { struct diff_options *options = opt->value; - BUG_ON_OPT_NEG(unset); - options->flags.relative_name = 1; + options->flags.relative_name = !unset; if (arg) options->prefix = arg; return 0; @@ -5492,7 +5497,7 @@ static void prep_parse_options(struct diff_options *options) OPT_GROUP(N_("Other diff options")), OPT_CALLBACK_F(0, "relative", options, N_("<prefix>"), N_("when run from subdir, exclude changes outside and show relative paths"), - PARSE_OPT_NONEG | PARSE_OPT_OPTARG, + PARSE_OPT_OPTARG, diff_opt_relative), OPT_BOOL('a', "text", &options->flags.text, N_("treat all files as text")), @@ -6758,8 +6763,11 @@ void diff_change(struct diff_options *options, return; if (options->flags.quick && options->skip_stat_unmatch && - !diff_filespec_check_stat_unmatch(options->repo, p)) + !diff_filespec_check_stat_unmatch(options->repo, p)) { + diff_free_filespec_data(p->one); + diff_free_filespec_data(p->two); return; + } options->flags.has_changes = 1; } @@ -193,6 +193,10 @@ int fill_directory(struct dir_struct *dir, const char *prefix; size_t prefix_len; + unsigned exclusive_flags = DIR_SHOW_IGNORED | DIR_SHOW_IGNORED_TOO; + if ((dir->flags & exclusive_flags) == exclusive_flags) + BUG("DIR_SHOW_IGNORED and DIR_SHOW_IGNORED_TOO are exclusive"); + /* * Calculate common prefix for the pathspec, and * use that to optimize the directory walk @@ -364,7 +368,8 @@ static int match_pathspec_item(const struct index_state *istate, return MATCHED_FNMATCH; /* Perform checks to see if "name" is a leading string of the pathspec */ - if (flags & DO_MATCH_LEADING_PATHSPEC) { + if ( (flags & DO_MATCH_LEADING_PATHSPEC) && + !(flags & DO_MATCH_EXCLUDE)) { /* name is a literal prefix of the pathspec */ int offset = name[namelen-1] == '/' ? 1 : 0; if ((namelen < matchlen) && @@ -401,6 +406,10 @@ static int match_pathspec_item(const struct index_state *istate, } /* + * do_match_pathspec() is meant to ONLY be called by + * match_pathspec_with_flags(); calling it directly risks pathspecs + * like ':!unwanted_path' being ignored. + * * Given a name and a list of pathspecs, returns the nature of the * closest (i.e. most specific) match of the name to any of the * pathspecs. @@ -486,13 +495,12 @@ static int do_match_pathspec(const struct index_state *istate, return retval; } -int match_pathspec(const struct index_state *istate, - const struct pathspec *ps, - const char *name, int namelen, - int prefix, char *seen, int is_dir) +static int match_pathspec_with_flags(const struct index_state *istate, + const struct pathspec *ps, + const char *name, int namelen, + int prefix, char *seen, unsigned flags) { int positive, negative; - unsigned flags = is_dir ? DO_MATCH_DIRECTORY : 0; positive = do_match_pathspec(istate, ps, name, namelen, prefix, seen, flags); if (!(ps->magic & PATHSPEC_EXCLUDE) || !positive) @@ -503,6 +511,16 @@ int match_pathspec(const struct index_state *istate, return negative ? 0 : positive; } +int match_pathspec(const struct index_state *istate, + const struct pathspec *ps, + const char *name, int namelen, + int prefix, char *seen, int is_dir) +{ + unsigned flags = is_dir ? DO_MATCH_DIRECTORY : 0; + return match_pathspec_with_flags(istate, ps, name, namelen, + prefix, seen, flags); +} + /** * Check if a submodule is a superset of the pathspec */ @@ -511,11 +529,11 @@ int submodule_path_match(const struct index_state *istate, const char *submodule_name, char *seen) { - int matched = do_match_pathspec(istate, ps, submodule_name, - strlen(submodule_name), - 0, seen, - DO_MATCH_DIRECTORY | - DO_MATCH_LEADING_PATHSPEC); + int matched = match_pathspec_with_flags(istate, ps, submodule_name, + strlen(submodule_name), + 0, seen, + DO_MATCH_DIRECTORY | + DO_MATCH_LEADING_PATHSPEC); return matched; } @@ -1757,9 +1775,11 @@ static enum path_treatment treat_directory(struct dir_struct *dir, * for matching patterns. */ if (pathspec && !excluded) { - matches_how = do_match_pathspec(istate, pathspec, dirname, len, - 0 /* prefix */, NULL /* seen */, - DO_MATCH_LEADING_PATHSPEC); + matches_how = match_pathspec_with_flags(istate, pathspec, + dirname, len, + 0 /* prefix */, + NULL /* seen */, + DO_MATCH_LEADING_PATHSPEC); if (!matches_how) return path_none; } @@ -1820,7 +1840,7 @@ static enum path_treatment treat_directory(struct dir_struct *dir, * to recurse into untracked/ignored directories if either of the * following bits is set: * - DIR_SHOW_IGNORED_TOO (because then we need to determine if - * there are ignored directories below) + * there are ignored entries below) * - DIR_HIDE_EMPTY_DIRECTORIES (because we have to determine if * the directory is empty) */ @@ -1838,10 +1858,11 @@ static enum path_treatment treat_directory(struct dir_struct *dir, return path_excluded; /* - * If we have we don't want to know the all the paths under an - * untracked or ignored directory, we still need to go into the - * directory to determine if it is empty (because an empty directory - * should be path_none instead of path_excluded or path_untracked). + * Even if we don't want to know all the paths under an untracked or + * ignored directory, we may still need to go into the directory to + * determine if it is empty (because with DIR_HIDE_EMPTY_DIRECTORIES, + * an empty directory should be path_none instead of path_excluded or + * path_untracked). */ check_only = ((dir->flags & DIR_HIDE_EMPTY_DIRECTORIES) && !(dir->flags & DIR_SHOW_IGNORED_TOO)); @@ -2191,9 +2212,9 @@ static enum path_treatment treat_path(struct dir_struct *dir, if (excluded) return path_excluded; if (pathspec && - !do_match_pathspec(istate, pathspec, path->buf, path->len, - 0 /* prefix */, NULL /* seen */, - 0 /* flags */)) + !match_pathspec(istate, pathspec, path->buf, path->len, + 0 /* prefix */, NULL /* seen */, + 0 /* is_dir */)) return path_none; return path_untracked; } @@ -113,8 +113,7 @@ static int fstat_output(int fd, const struct checkout *state, struct stat *st) /* use fstat() only when path == ce->name */ if (fstat_is_reliable() && state->refresh_cache && !state->base_dir_len) { - fstat(fd, st); - return 1; + return !fstat(fd, st); } return 0; } diff --git a/fast-import.c b/fast-import.c index c98970274c..0dfa14dc8c 100644 --- a/fast-import.c +++ b/fast-import.c @@ -139,6 +139,7 @@ struct hash_list { typedef enum { WHENSPEC_RAW = 1, + WHENSPEC_RAW_PERMISSIVE, WHENSPEC_RFC2822, WHENSPEC_NOW } whenspec_type; @@ -1911,7 +1912,7 @@ static int parse_data(struct strbuf *sb, uintmax_t limit, uintmax_t *len_res) return 1; } -static int validate_raw_date(const char *src, struct strbuf *result) +static int validate_raw_date(const char *src, struct strbuf *result, int strict) { const char *orig_src = src; char *endp; @@ -1920,7 +1921,11 @@ static int validate_raw_date(const char *src, struct strbuf *result) errno = 0; num = strtoul(src, &endp, 10); - /* NEEDSWORK: perhaps check for reasonable values? */ + /* + * NEEDSWORK: perhaps check for reasonable values? For example, we + * could error on values representing times more than a + * day in the future. + */ if (errno || endp == src || *endp != ' ') return -1; @@ -1929,7 +1934,13 @@ static int validate_raw_date(const char *src, struct strbuf *result) return -1; num = strtoul(src + 1, &endp, 10); - if (errno || endp == src + 1 || *endp || 1400 < num) + /* + * NEEDSWORK: check for brokenness other than num > 1400, such as + * (num % 100) >= 60, or ((num % 100) % 15) != 0 ? + */ + if (errno || endp == src + 1 || *endp || /* did not parse */ + (strict && (1400 < num)) /* parsed a broken timezone */ + ) return -1; strbuf_addstr(result, orig_src); @@ -1963,7 +1974,11 @@ static char *parse_ident(const char *buf) switch (whenspec) { case WHENSPEC_RAW: - if (validate_raw_date(ltgt, &ident) < 0) + if (validate_raw_date(ltgt, &ident, 1) < 0) + die("Invalid raw date \"%s\" in ident: %s", ltgt, buf); + break; + case WHENSPEC_RAW_PERMISSIVE: + if (validate_raw_date(ltgt, &ident, 0) < 0) die("Invalid raw date \"%s\" in ident: %s", ltgt, buf); break; case WHENSPEC_RFC2822: @@ -3258,6 +3273,8 @@ static void option_date_format(const char *fmt) { if (!strcmp(fmt, "raw")) whenspec = WHENSPEC_RAW; + else if (!strcmp(fmt, "raw-permissive")) + whenspec = WHENSPEC_RAW_PERMISSIVE; else if (!strcmp(fmt, "rfc2822")) whenspec = WHENSPEC_RFC2822; else if (!strcmp(fmt, "now")) diff --git a/fetch-pack.c b/fetch-pack.c index 7eaa19d7c1..80fb3bd899 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -38,6 +38,7 @@ static int server_supports_filtering; static struct shallow_lock shallow_lock; static const char *alternate_shallow_file; static struct strbuf fsck_msg_types = STRBUF_INIT; +static struct string_list uri_protocols = STRING_LIST_INIT_DUP; /* Remember to update object flag allocation in object.h */ #define COMPLETE (1U << 0) @@ -794,7 +795,8 @@ static void write_promisor_file(const char *keep_name, } static int get_pack(struct fetch_pack_args *args, - int xd[2], char **pack_lockfile, + int xd[2], struct string_list *pack_lockfiles, + int only_packfile, struct ref **sought, int nr_sought) { struct async demux; @@ -838,7 +840,7 @@ static int get_pack(struct fetch_pack_args *args, } if (do_keep || args->from_promisor) { - if (pack_lockfile) + if (pack_lockfiles) cmd.out = -1; cmd_name = "index-pack"; argv_array_push(&cmd.args, cmd_name); @@ -855,15 +857,22 @@ static int get_pack(struct fetch_pack_args *args, "--keep=fetch-pack %"PRIuMAX " on %s", (uintmax_t)getpid(), hostname); } - if (args->check_self_contained_and_connected) + if (only_packfile && args->check_self_contained_and_connected) argv_array_push(&cmd.args, "--check-self-contained-and-connected"); + else + /* + * We cannot perform any connectivity checks because + * not all packs have been downloaded; let the caller + * have this responsibility. + */ + args->check_self_contained_and_connected = 0; /* * If we're obtaining the filename of a lockfile, we'll use * that filename to write a .promisor file with more * information below. If not, we need index-pack to do it for * us. */ - if (!(do_keep && pack_lockfile) && args->from_promisor) + if (!(do_keep && pack_lockfiles) && args->from_promisor) argv_array_push(&cmd.args, "--promisor"); } else { @@ -899,8 +908,9 @@ static int get_pack(struct fetch_pack_args *args, cmd.git_cmd = 1; if (start_command(&cmd)) die(_("fetch-pack: unable to fork off %s"), cmd_name); - if (do_keep && pack_lockfile) { - *pack_lockfile = index_pack_lockfile(cmd.out); + if (do_keep && pack_lockfiles) { + string_list_append_nodup(pack_lockfiles, + index_pack_lockfile(cmd.out)); close(cmd.out); } @@ -922,8 +932,8 @@ static int get_pack(struct fetch_pack_args *args, * Now that index-pack has succeeded, write the promisor file using the * obtained .keep filename if necessary */ - if (do_keep && pack_lockfile && args->from_promisor) - write_promisor_file(*pack_lockfile, sought, nr_sought); + if (do_keep && pack_lockfiles && pack_lockfiles->nr && args->from_promisor) + write_promisor_file(pack_lockfiles->items[0].string, sought, nr_sought); return 0; } @@ -940,7 +950,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args, const struct ref *orig_ref, struct ref **sought, int nr_sought, struct shallow_info *si, - char **pack_lockfile) + struct string_list *pack_lockfiles) { struct repository *r = the_repository; struct ref *ref = copy_ref_list(orig_ref); @@ -1040,6 +1050,8 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args, print_verbose(args, _("Server supports %s"), "deepen-relative"); else if (args->deepen_relative) die(_("Server does not support --deepen")); + if (!server_supports_hash(the_hash_algo->name, NULL)) + die(_("Server does not support this repository's object format")); if (!args->no_dependents) { mark_complete_and_common_ref(negotiator, args, &ref); @@ -1067,7 +1079,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args, alternate_shallow_file = setup_temporary_shallow(si->shallow); else alternate_shallow_file = NULL; - if (get_pack(args, fd, pack_lockfile, sought, nr_sought)) + if (get_pack(args, fd, pack_lockfiles, 1, sought, nr_sought)) die(_("git fetch-pack: fetch failed.")); all_done: @@ -1178,6 +1190,7 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out, int sideband_all, int seen_ack) { int ret = 0; + const char *hash_name; struct strbuf req_buf = STRBUF_INIT; if (server_supports_v2("fetch", 1)) @@ -1192,6 +1205,17 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out, args->server_options->items[i].string); } + if (server_feature_v2("object-format", &hash_name)) { + int hash_algo = hash_algo_by_name(hash_name); + if (hash_algo_by_ptr(the_hash_algo) != hash_algo) + die(_("mismatched algorithms: client %s; server %s"), + the_hash_algo->name, hash_name); + packet_write_fmt(fd_out, "object-format=%s", the_hash_algo->name); + } else if (hash_algo_by_ptr(the_hash_algo) != GIT_HASH_SHA1) { + die(_("the server does not support algorithm '%s'"), + the_hash_algo->name); + } + packet_buf_delim(&req_buf); if (args->use_thin_pack) packet_buf_write(&req_buf, "thin-pack"); @@ -1221,6 +1245,26 @@ static int send_fetch_request(struct fetch_negotiator *negotiator, int fd_out, warning("filtering not recognized by server, ignoring"); } + if (server_supports_feature("fetch", "packfile-uris", 0)) { + int i; + struct strbuf to_send = STRBUF_INIT; + + for (i = 0; i < uri_protocols.nr; i++) { + const char *s = uri_protocols.items[i].string; + + if (!strcmp(s, "https") || !strcmp(s, "http")) { + if (to_send.len) + strbuf_addch(&to_send, ','); + strbuf_addstr(&to_send, s); + } + } + if (to_send.len) { + packet_buf_write(&req_buf, "packfile-uris %s", + to_send.buf); + strbuf_release(&to_send); + } + } + /* add wants */ add_wants(args->no_dependents, wants, &req_buf); @@ -1443,6 +1487,21 @@ static void receive_wanted_refs(struct packet_reader *reader, die(_("error processing wanted refs: %d"), reader->status); } +static void receive_packfile_uris(struct packet_reader *reader, + struct string_list *uris) +{ + process_section_header(reader, "packfile-uris", 0); + while (packet_reader_read(reader) == PACKET_READ_NORMAL) { + if (reader->pktlen < the_hash_algo->hexsz || + reader->line[the_hash_algo->hexsz] != ' ') + die("expected '<hash> <uri>', got: %s\n", reader->line); + + string_list_append(uris, reader->line); + } + if (reader->status != PACKET_READ_DELIM) + die("expected DELIM"); +} + enum fetch_state { FETCH_CHECK_LOCAL = 0, FETCH_SEND_REQUEST, @@ -1451,13 +1510,20 @@ enum fetch_state { FETCH_DONE, }; +static void do_check_stateless_delimiter(const struct fetch_pack_args *args, + struct packet_reader *reader) +{ + check_stateless_delimiter(args->stateless_rpc, reader, + _("git fetch-pack: expected response end packet")); +} + static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, int fd[2], const struct ref *orig_ref, struct ref **sought, int nr_sought, struct oid_array *shallows, struct shallow_info *si, - char **pack_lockfile) + struct string_list *pack_lockfiles) { struct repository *r = the_repository; struct ref *ref = copy_ref_list(orig_ref); @@ -1469,6 +1535,8 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, struct fetch_negotiator negotiator_alloc; struct fetch_negotiator *negotiator; int seen_ack = 0; + struct string_list packfile_uris = STRING_LIST_INIT_DUP; + int i; if (args->no_dependents) { negotiator = NULL; @@ -1535,6 +1603,10 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, /* Process ACKs/NAKs */ switch (process_acks(negotiator, &reader, &common)) { case READY: + /* + * Don't check for response delimiter; get_pack() will + * read the rest of this response. + */ state = FETCH_GET_PACK; break; case COMMON_FOUND: @@ -1542,6 +1614,7 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, seen_ack = 1; /* fallthrough */ case NO_COMMON_FOUND: + do_check_stateless_delimiter(args, &reader); state = FETCH_SEND_REQUEST; break; } @@ -1557,10 +1630,14 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, if (process_section_header(&reader, "wanted-refs", 1)) receive_wanted_refs(&reader, sought, nr_sought); - /* get the pack */ + /* get the pack(s) */ + if (process_section_header(&reader, "packfile-uris", 1)) + receive_packfile_uris(&reader, &packfile_uris); process_section_header(&reader, "packfile", 0); - if (get_pack(args, fd, pack_lockfile, sought, nr_sought)) + if (get_pack(args, fd, pack_lockfiles, + !packfile_uris.nr, sought, nr_sought)) die(_("git fetch-pack: fetch failed.")); + do_check_stateless_delimiter(args, &reader); state = FETCH_DONE; break; @@ -1569,8 +1646,55 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args, } } + for (i = 0; i < packfile_uris.nr; i++) { + struct child_process cmd = CHILD_PROCESS_INIT; + char packname[GIT_MAX_HEXSZ + 1]; + const char *uri = packfile_uris.items[i].string + + the_hash_algo->hexsz + 1; + + argv_array_push(&cmd.args, "http-fetch"); + argv_array_pushf(&cmd.args, "--packfile=%.*s", + (int) the_hash_algo->hexsz, + packfile_uris.items[i].string); + argv_array_push(&cmd.args, uri); + cmd.git_cmd = 1; + cmd.no_stdin = 1; + cmd.out = -1; + if (start_command(&cmd)) + die("fetch-pack: unable to spawn http-fetch"); + + if (read_in_full(cmd.out, packname, 5) < 0 || + memcmp(packname, "keep\t", 5)) + die("fetch-pack: expected keep then TAB at start of http-fetch output"); + + if (read_in_full(cmd.out, packname, + the_hash_algo->hexsz + 1) < 0 || + packname[the_hash_algo->hexsz] != '\n') + die("fetch-pack: expected hash then LF at end of http-fetch output"); + + packname[the_hash_algo->hexsz] = '\0'; + + close(cmd.out); + + if (finish_command(&cmd)) + die("fetch-pack: unable to finish http-fetch"); + + if (memcmp(packfile_uris.items[i].string, packname, + the_hash_algo->hexsz)) + die("fetch-pack: pack downloaded from %s does not match expected hash %.*s", + uri, (int) the_hash_algo->hexsz, + packfile_uris.items[i].string); + + string_list_append_nodup(pack_lockfiles, + xstrfmt("%s/pack/pack-%s.keep", + get_object_directory(), + packname)); + } + string_list_clear(&packfile_uris, 0); + if (negotiator) negotiator->release(negotiator); + oidset_clear(&common); return ref; } @@ -1607,6 +1731,14 @@ static void fetch_pack_config(void) git_config_get_bool("repack.usedeltabaseoffset", &prefer_ofs_delta); git_config_get_bool("fetch.fsckobjects", &fetch_fsck_objects); git_config_get_bool("transfer.fsckobjects", &transfer_fsck_objects); + if (!uri_protocols.nr) { + char *str; + + if (!git_config_get_string("fetch.uriprotocols", &str) && str) { + string_list_split(&uri_protocols, str, ',', -1); + free(str); + } + } git_config(fetch_pack_config_cb, NULL); } @@ -1759,7 +1891,7 @@ struct ref *fetch_pack(struct fetch_pack_args *args, const struct ref *ref, struct ref **sought, int nr_sought, struct oid_array *shallow, - char **pack_lockfile, + struct string_list *pack_lockfiles, enum protocol_version version) { struct ref *ref_cpy; @@ -1794,11 +1926,11 @@ struct ref *fetch_pack(struct fetch_pack_args *args, memset(&si, 0, sizeof(si)); ref_cpy = do_fetch_pack_v2(args, fd, ref, sought, nr_sought, &shallows_scratch, &si, - pack_lockfile); + pack_lockfiles); } else { prepare_shallow_info(&si, shallow); ref_cpy = do_fetch_pack(args, fd, ref, sought, nr_sought, - &si, pack_lockfile); + &si, pack_lockfiles); } reprepare_packed_git(the_repository); diff --git a/fetch-pack.h b/fetch-pack.h index 67f684229a..85d1e39fe7 100644 --- a/fetch-pack.h +++ b/fetch-pack.h @@ -83,7 +83,7 @@ struct ref *fetch_pack(struct fetch_pack_args *args, struct ref **sought, int nr_sought, struct oid_array *shallow, - char **pack_lockfile, + struct string_list *pack_lockfiles, enum protocol_version version); /* diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c index 72d32bd73b..cfb8ff2f33 100644 --- a/fmt-merge-msg.c +++ b/fmt-merge-msg.c @@ -451,10 +451,7 @@ static void fmt_merge_msg_title(struct strbuf *out, strbuf_addf(out, " of %s", srcs.items[i].string); } - if (!strcmp("master", current_branch)) - strbuf_addch(out, '\n'); - else - strbuf_addf(out, " into %s\n", current_branch); + strbuf_addf(out, " into %s\n", current_branch); } static void fmt_tag_signature(struct strbuf *tagbuf, @@ -598,7 +598,7 @@ static int verify_ordered(unsigned mode1, const char *name1, /* * There can be non-consecutive duplicates due to the implicitly - * add slash, e.g.: + * added slash, e.g.: * * foo * foo.bar @@ -620,7 +620,7 @@ static int verify_ordered(unsigned mode1, const char *name1, if (!f_name) break; if (!skip_prefix(name2, f_name, &p)) - break; + continue; if (!*p) return TREE_HAS_DUPS; if (is_less_than_slash(*p)) { diff --git a/fuzz-commit-graph.c b/fuzz-commit-graph.c index 9fd1c04edd..430817214d 100644 --- a/fuzz-commit-graph.c +++ b/fuzz-commit-graph.c @@ -12,7 +12,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) initialize_the_repository(); g = parse_commit_graph((void *)data, size); repo_clear(the_repository); - free(g); + free_commit_graph(g); return 0; } diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 10fd30ae16..f36c0078ac 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -754,16 +754,18 @@ sub parse_diff_header { my $head = { TEXT => [], DISPLAY => [], TYPE => 'header' }; my $mode = { TEXT => [], DISPLAY => [], TYPE => 'mode' }; my $deletion = { TEXT => [], DISPLAY => [], TYPE => 'deletion' }; + my $addition = { TEXT => [], DISPLAY => [], TYPE => 'addition' }; for (my $i = 0; $i < @{$src->{TEXT}}; $i++) { my $dest = $src->{TEXT}->[$i] =~ /^(old|new) mode (\d+)$/ ? $mode : $src->{TEXT}->[$i] =~ /^deleted file/ ? $deletion : + $src->{TEXT}->[$i] =~ /^new file/ ? $addition : $head; push @{$dest->{TEXT}}, $src->{TEXT}->[$i]; push @{$dest->{DISPLAY}}, $src->{DISPLAY}->[$i]; } - return ($head, $mode, $deletion); + return ($head, $mode, $deletion, $addition); } sub hunk_splittable { @@ -1427,46 +1429,55 @@ my %patch_update_prompt_modes = ( stage => { mode => N__("Stage mode change [y,n,q,a,d%s,?]? "), deletion => N__("Stage deletion [y,n,q,a,d%s,?]? "), + addition => N__("Stage addition [y,n,q,a,d%s,?]? "), hunk => N__("Stage this hunk [y,n,q,a,d%s,?]? "), }, stash => { mode => N__("Stash mode change [y,n,q,a,d%s,?]? "), deletion => N__("Stash deletion [y,n,q,a,d%s,?]? "), + addition => N__("Stash addition [y,n,q,a,d%s,?]? "), hunk => N__("Stash this hunk [y,n,q,a,d%s,?]? "), }, reset_head => { mode => N__("Unstage mode change [y,n,q,a,d%s,?]? "), deletion => N__("Unstage deletion [y,n,q,a,d%s,?]? "), + addition => N__("Unstage addition [y,n,q,a,d%s,?]? "), hunk => N__("Unstage this hunk [y,n,q,a,d%s,?]? "), }, reset_nothead => { mode => N__("Apply mode change to index [y,n,q,a,d%s,?]? "), deletion => N__("Apply deletion to index [y,n,q,a,d%s,?]? "), + addition => N__("Apply addition to index [y,n,q,a,d%s,?]? "), hunk => N__("Apply this hunk to index [y,n,q,a,d%s,?]? "), }, checkout_index => { mode => N__("Discard mode change from worktree [y,n,q,a,d%s,?]? "), deletion => N__("Discard deletion from worktree [y,n,q,a,d%s,?]? "), + addition => N__("Discard addition from worktree [y,n,q,a,d%s,?]? "), hunk => N__("Discard this hunk from worktree [y,n,q,a,d%s,?]? "), }, checkout_head => { mode => N__("Discard mode change from index and worktree [y,n,q,a,d%s,?]? "), deletion => N__("Discard deletion from index and worktree [y,n,q,a,d%s,?]? "), + addition => N__("Discard addition from index and worktree [y,n,q,a,d%s,?]? "), hunk => N__("Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "), }, checkout_nothead => { mode => N__("Apply mode change to index and worktree [y,n,q,a,d%s,?]? "), deletion => N__("Apply deletion to index and worktree [y,n,q,a,d%s,?]? "), + addition => N__("Apply addition to index and worktree [y,n,q,a,d%s,?]? "), hunk => N__("Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "), }, worktree_head => { mode => N__("Discard mode change from worktree [y,n,q,a,d%s,?]? "), deletion => N__("Discard deletion from worktree [y,n,q,a,d%s,?]? "), + addition => N__("Discard addition from worktree [y,n,q,a,d%s,?]? "), hunk => N__("Discard this hunk from worktree [y,n,q,a,d%s,?]? "), }, worktree_nothead => { mode => N__("Apply mode change to worktree [y,n,q,a,d%s,?]? "), deletion => N__("Apply deletion to worktree [y,n,q,a,d%s,?]? "), + addition => N__("Apply addition to worktree [y,n,q,a,d%s,?]? "), hunk => N__("Apply this hunk to worktree [y,n,q,a,d%s,?]? "), }, ); @@ -1476,7 +1487,7 @@ sub patch_update_file { my ($ix, $num); my $path = shift; my ($head, @hunk) = parse_diff($path); - ($head, my $mode, my $deletion) = parse_diff_header($head); + ($head, my $mode, my $deletion, my $addition) = parse_diff_header($head); for (@{$head->{DISPLAY}}) { print; } @@ -1490,6 +1501,12 @@ sub patch_update_file { push @{$deletion->{DISPLAY}}, @{$hunk->{DISPLAY}}; } @hunk = ($deletion); + } elsif (@{$addition->{TEXT}}) { + foreach my $hunk (@hunk) { + push @{$addition->{TEXT}}, @{$hunk->{TEXT}}; + push @{$addition->{DISPLAY}}, @{$hunk->{DISPLAY}}; + } + @hunk = ($addition); } $num = scalar @hunk; diff --git a/git-compat-util.h b/git-compat-util.h index a73632e8e4..5637114b8d 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -869,6 +869,12 @@ FILE *fopen_for_writing(const char *path); FILE *fopen_or_warn(const char *path, const char *mode); /* + * Like strncmp, but only return zero if s is NUL-terminated and exactly len + * characters long. If it is not, consider it greater than t. + */ +int xstrncmpz(const char *s, const char *t, size_t len); + +/* * FREE_AND_NULL(ptr) is like free(ptr) followed by ptr = NULL. Note * that ptr is used twice, so don't pass e.g. ptr++. */ diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl index fc00d5946a..6483d792d3 100755 --- a/git-cvsexportcommit.perl +++ b/git-cvsexportcommit.perl @@ -22,6 +22,10 @@ die "Need at least one commit identifier!" unless @ARGV; my $repo = Git->repository(); $opt_w = $repo->config('cvsexportcommit.cvsdir') unless defined $opt_w; +my $tmpdir = File::Temp->newdir; +my $hash_algo = $repo->config('extensions.objectformat') || 'sha1'; +my $hexsz = $hash_algo eq 'sha256' ? 64 : 40; + if ($opt_w || $opt_W) { # Remember where GIT_DIR is before changing to CVS checkout unless ($ENV{GIT_DIR}) { @@ -96,7 +100,7 @@ foreach my $line (@commit) { } if ($stage eq 'headers') { - if ($line =~ m/^parent (\w{40})$/) { # found a parent + if ($line =~ m/^parent ([0-9a-f]{$hexsz})$/) { # found a parent push @parents, $1; } elsif ($line =~ m/^author (.+) \d+ [-+]\d+$/) { $author = $1; @@ -111,7 +115,7 @@ foreach my $line (@commit) { } } -my $noparent = "0000000000000000000000000000000000000000"; +my $noparent = "0" x $hexsz; if ($parent) { my $found; # double check that it's a valid parent @@ -174,7 +178,7 @@ my $context = $opt_p ? '' : '-C1'; print "Checking if patch will apply\n"; my @stat; -open APPLY, "GIT_DIR= git-apply $context --summary --numstat<.cvsexportcommit.diff|" || die "cannot patch"; +open APPLY, "GIT_INDEX_FILE=$tmpdir/index git-apply $context --summary --numstat<.cvsexportcommit.diff|" || die "cannot patch"; @stat=<APPLY>; close APPLY || die "Cannot patch"; my (@bfiles,@files,@afiles,@dfiles); @@ -329,7 +333,7 @@ print "Applying\n"; if ($opt_W) { system("git checkout -q $commit^0") && die "cannot patch"; } else { - `GIT_DIR= git-apply $context --summary --numstat --apply <.cvsexportcommit.diff` || die "cannot patch"; + `GIT_INDEX_FILE=$tmpdir/index git-apply $context --summary --numstat --apply <.cvsexportcommit.diff` || die "cannot patch"; } print "Patch applied successfully. Adding new files and directories to CVS\n"; @@ -407,7 +411,7 @@ unlink(".cvsexportcommit.diff"); if ($opt_W) { system("git checkout $go_back_to") && die "cannot move back to $go_back_to"; - if (!($go_back_to =~ /^[0-9a-fA-F]{40}$/)) { + if (!($go_back_to =~ /^[0-9a-fA-F]{$hexsz}$/)) { system("git symbolic-ref HEAD $go_back_to") && die "cannot move back to $go_back_to"; } diff --git a/git-cvsimport.perl b/git-cvsimport.perl index 1057f389d3..7bf3c12d67 100755 --- a/git-cvsimport.perl +++ b/git-cvsimport.perl @@ -637,9 +637,9 @@ sub getwd() { return $pwd; } -sub is_sha1 { +sub is_oid { my $s = shift; - return $s =~ /^[a-f0-9]{40}$/; + return $s =~ /^[a-f0-9]{40}(?:[a-f0-9]{24})?$/; } sub get_headref ($) { @@ -810,7 +810,7 @@ sub write_tree () { open(my $fh, '-|', qw(git write-tree)) or die "unable to open git write-tree: $!"; chomp(my $tree = <$fh>); - is_sha1($tree) + is_oid($tree) or die "Cannot get tree id ($tree): $!"; close($fh) or die "Error running git write-tree: $?\n"; @@ -896,7 +896,7 @@ sub commit { print "Committed patch $patchset ($branch $commit_date)\n" if $opt_v; chomp(my $cid = <$commit_read>); - is_sha1($cid) or die "Cannot get commit id ($cid): $!\n"; + is_oid($cid) or die "Cannot get commit id ($cid): $!\n"; print "Commit ID $cid\n" if $opt_v; close($commit_read); diff --git a/git-cvsserver.perl b/git-cvsserver.perl index ae1044273d..f6f3fc192c 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -365,7 +365,7 @@ sub req_Root } foreach my $line ( @gitvars ) { - next unless ( $line =~ /^(gitcvs)\.(?:(ext|pserver)\.)?([\w-]+)=(.*)$/ ); + next unless ( $line =~ /^(gitcvs|extensions)\.(?:(ext|pserver)\.)?([\w-]+)=(.*)$/ ); unless ($2) { $cfg->{$1}{$3} = $4; } else { @@ -392,6 +392,9 @@ sub req_Root $log->nofile(); } + $state->{rawsz} = ($cfg->{'extensions'}{'objectformat'} || 'sha1') eq 'sha256' ? 32 : 20; + $state->{hexsz} = $state->{rawsz} * 2; + return 1; } @@ -1581,7 +1584,7 @@ sub req_ci $parenthash = safe_pipe_capture('git', 'show-ref', '-s', $branchRef); chomp $parenthash; - if ($parenthash !~ /^[0-9a-f]{40}$/) + if ($parenthash !~ /^[0-9a-f]{$state->{hexsz}}$/) { if ( defined($stickyInfo) && defined($stickyInfo->{tag}) ) { @@ -1708,7 +1711,7 @@ sub req_ci chomp($commithash); $log->info("Commit hash : $commithash"); - unless ( $commithash =~ /[a-zA-Z0-9]{40}/ ) + unless ( $commithash =~ /[a-zA-Z0-9]{$state->{hexsz}}/ ) { $log->warn("Commit failed (Invalid commit hash)"); print "error 1 Commit failed (unknown reason)\n"; @@ -2375,7 +2378,7 @@ sub req_annotate print "E ***************\n"; while ( <ANNOTATE> ) { - if (m/^([a-zA-Z0-9]{40})\t\([^\)]*\)(.*)$/i) + if (m/^([a-zA-Z0-9]{$state->{hexsz}})\t\([^\)]*\)(.*)$/i) { my $commithash = $1; my $data = $2; @@ -2852,7 +2855,7 @@ sub transmitfile return; } - die "Need filehash" unless ( defined ( $filehash ) and $filehash =~ /^[a-zA-Z0-9]{40}$/ ); + die "Need filehash" unless ( defined ( $filehash ) and $filehash =~ /^[a-zA-Z0-9]{$state->{hexsz}}$/ ); my $type = safe_pipe_capture('git', 'cat-file', '-t', $filehash); chomp $type; @@ -3042,7 +3045,7 @@ sub ensureWorkTree my $ver = safe_pipe_capture('git', 'show-ref', '-s', "refs/heads/$state->{module}"); chomp $ver; - if ($ver !~ /^[0-9a-f]{40}$/) + if ($ver !~ /^[0-9a-f]{$state->{hexsz}}$/) { $log->warn("Error from git show-ref -s refs/head$state->{module}"); print "error 1 cannot find the current HEAD of module"; @@ -3281,7 +3284,7 @@ sub open_blob_or_die } elsif( $srcType eq "sha1" ) { - unless ( defined ( $name ) and $name =~ /^[a-zA-Z0-9]{40}$/ ) + unless ( defined ( $name ) and $name =~ /^[a-zA-Z0-9]{$state->{hexsz}}$/ ) { $log->warn("Need filehash"); die "Need filehash\n"; @@ -3817,7 +3820,7 @@ sub update chomp $commitsha1; my $commitinfo = ::safe_pipe_capture('git', 'cat-file', 'commit', $self->{module}); - unless ( $commitinfo =~ /tree\s+[a-zA-Z0-9]{40}/ ) + unless ( $commitinfo =~ /tree\s+[a-zA-Z0-9]{$state->{hexsz}}/ ) { die("Invalid module '$self->{module}'"); } @@ -3957,7 +3960,7 @@ sub update while ( <FILELIST> ) { chomp; - unless ( /^:\d{6}\s+([0-7]{6})\s+[a-f0-9]{40}\s+([a-f0-9]{40})\s+(\w)$/o ) + unless ( /^:\d{6}\s+([0-7]{6})\s+[a-f0-9]{$state->{hexsz}}\s+([a-f0-9]{$state->{hexsz}})\s+(\w)$/o ) { die("Couldn't process git-diff-tree line : $_"); } @@ -4625,11 +4628,11 @@ sub getmeta $db_query->execute($filename, $intRev); $meta = $db_query->fetchrow_hashref; } - elsif ( $revision =~ /^2\.1\.1\.2000(\.[1-3][0-9][0-9]){20}$/ ) + elsif ( $revision =~ /^2\.1\.1\.2000(\.[1-3][0-9][0-9]){$state->{rawsz}}$/ ) { my ($commitHash)=($revision=~/^2\.1\.1\.2000(.*)$/); $commitHash=~s/\.([0-9]+)/sprintf("%02x",$1-100)/eg; - if($commitHash=~/^[0-9a-f]{40}$/) + if($commitHash=~/^[0-9a-f]{$state->{hexsz}}$/) { return $self->getMetaFromCommithash($filename,$commitHash); } @@ -4639,7 +4642,7 @@ sub getmeta $log->warning("failed get $revision with commithash=$commitHash"); undef $revision; } - elsif ( $revision =~ /^[0-9a-f]{40}$/ ) + elsif ( $revision =~ /^[0-9a-f]{$state->{hexsz}}$/ ) { # Try DB first. This is mostly only useful for req_annotate(), # which only calls this for stuff that should already be in @@ -4658,7 +4661,7 @@ sub getmeta if(! $meta) { my($revCommit)=$self->lookupCommitRef($revision); - if($revCommit=~/^[0-9a-f]{40}$/) + if($revCommit=~/^[0-9a-f]{$state->{hexsz}}$/) { return $self->getMetaFromCommithash($filename,$revCommit); } @@ -4672,7 +4675,7 @@ sub getmeta else { my($revCommit)=$self->lookupCommitRef($revision); - if($revCommit=~/^[0-9a-f]{40}$/) + if($revCommit=~/^[0-9a-f]{$state->{hexsz}}$/) { return $self->getMetaFromCommithash($filename,$revCommit); } @@ -4767,7 +4770,7 @@ sub getMetaFromCommithash my($fileHash) = ::safe_pipe_capture("git","rev-parse","$revCommit:$filename"); chomp $fileHash; - if(!($fileHash=~/^[0-9a-f]{40}$/)) + if(!($fileHash=~/^[0-9a-f]{$state->{hexsz}}$/)) { die "Invalid fileHash '$fileHash' looking up" ." '$revCommit:$filename'\n"; @@ -4863,7 +4866,7 @@ sub lookupCommitRef $commitHash = ::safe_pipe_capture("git","rev-parse","--verify","--quiet", $self->unescapeRefName($ref)); $commitHash=~s/\s*$//; - if(!($commitHash=~/^[0-9a-f]{40}$/)) + if(!($commitHash=~/^[0-9a-f]{$state->{hexsz}}$/)) { $commitHash=undef; } @@ -4909,7 +4912,7 @@ sub commitmessage my $commithash = shift; my $tablename = $self->tablename("commitmsgs"); - die("Need commithash") unless ( defined($commithash) and $commithash =~ /^[a-zA-Z0-9]{40}$/ ); + die("Need commithash") unless ( defined($commithash) and $commithash =~ /^[a-zA-Z0-9]{$state->{hexsz}}$/ ); my $db_query; $db_query = $self->{dbh}->prepare_cached("SELECT value FROM $tablename WHERE key=?",{},1); @@ -2537,11 +2537,12 @@ class P4Submit(Command, P4UserMap): ok = self.applyCommit(commit) if ok: applied.append(commit) - else: - if self.prepare_p4_only and i < last: - print("Processing only the first commit due to option" \ - " --prepare-p4-only") + if self.prepare_p4_only: + if i < last: + print("Processing only the first commit due to option" \ + " --prepare-p4-only") break + else: if i < last: # prompt for what to do, or use the option/variable if self.conflict_behavior == "ask": diff --git a/git-send-email.perl b/git-send-email.perl index dc95656f75..36c47bae1d 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1699,10 +1699,14 @@ sub process_file { $xfer_encoding = $1 if not defined $xfer_encoding; } elsif (/^In-Reply-To: (.*)/i) { - $in_reply_to = $1; + if (!$initial_in_reply_to || $thread) { + $in_reply_to = $1; + } } elsif (/^References: (.*)/i) { - $references = $1; + if (!$initial_in_reply_to || $thread) { + $references = $1; + } } elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) { push @xh, $_; diff --git a/git-submodule.sh b/git-submodule.sh index 39ebdf25b5..43eb6051d2 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -719,7 +719,7 @@ cmd_update() # $@ = requested path # cmd_set_branch() { - unset_branch=false + default= branch= while test $# -ne 0 @@ -729,7 +729,7 @@ cmd_set_branch() { # we don't do anything with this but we need to accept it ;; -d|--default) - unset_branch=true + default=1 ;; -b|--branch) case "$2" in '') usage ;; esac @@ -750,33 +750,7 @@ cmd_set_branch() { shift done - if test $# -ne 1 - then - usage - fi - - # we can't use `git submodule--helper name` here because internally, it - # hashes the path so a trailing slash could lead to an unintentional no match - name="$(git submodule--helper list "$1" | cut -f2)" - if test -z "$name" - then - exit 1 - fi - - test -n "$branch"; has_branch=$? - test "$unset_branch" = true; has_unset_branch=$? - - if test $((!$has_branch != !$has_unset_branch)) -eq 0 - then - usage - fi - - if test $has_branch -eq 0 - then - git submodule--helper config submodule."$name".branch "$branch" - else - git submodule--helper config --unset submodule."$name".branch - fi + git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper set-branch ${GIT_QUIET:+--quiet} ${branch:+--branch "$branch"} ${default:+--default} -- "$@" } # diff --git a/git-svn.perl b/git-svn.perl index 4aa208ff5f..58f5a7ac8f 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -5,7 +5,8 @@ use 5.008; use warnings; use strict; use vars qw/ $AUTHOR $VERSION - $sha1 $sha1_short $_revision $_repository + $oid $oid_short $oid_length + $_revision $_repository $_q $_authors $_authors_prog %users/; $AUTHOR = 'Eric Wong <normalperson@yhbt.net>'; $VERSION = '@@GIT_VERSION@@'; @@ -103,8 +104,9 @@ sub _req_svn { } } -$sha1 = qr/[a-f\d]{40}/; -$sha1_short = qr/[a-f\d]{4,40}/; +$oid = qr/(?:[a-f\d]{40}(?:[a-f\d]{24})?)/; +$oid_short = qr/[a-f\d]{4,64}/; +$oid_length = 40; my ($_stdin, $_help, $_edit, $_message, $_file, $_branch_dest, $_template, $_shared, @@ -498,6 +500,7 @@ sub do_git_init_db { command_noisy('config', "$pfx.preserve-empty-dirs", 'true'); command_noisy('config', "$pfx.placeholder-filename", $$fname); } + load_object_format(); } sub init_subdir { @@ -582,7 +585,7 @@ sub cmd_set_tree { print "Reading from stdin...\n"; @commits = (); while (<STDIN>) { - if (/\b($sha1_short)\b/o) { + if (/\b($oid_short)\b/o) { unshift @commits, $1; } } @@ -1831,7 +1834,7 @@ sub get_tree_from_treeish { if ($type eq 'commit') { $expected = (grep /^tree /, command(qw/cat-file commit/, $treeish))[0]; - ($expected) = ($expected =~ /^tree ($sha1)$/o); + ($expected) = ($expected =~ /^tree ($oid)$/o); die "Unable to get tree from $treeish\n" unless $expected; } elsif ($type eq 'tree') { $expected = $treeish; @@ -1975,9 +1978,15 @@ sub read_git_config { } } } + load_object_format(); delete @$opts{@config_only} if @config_only; } +sub load_object_format { + chomp(my $hash = `git config --get extensions.objectformat`); + $::oid_length = 64 if $hash eq 'sha256'; +} + sub extract_metadata { my $id = shift or return (undef, undef, undef); my ($url, $rev, $uuid) = ($id =~ /^\s*git-svn-id:\s+(.*)\@(\d+) @@ -2006,10 +2015,10 @@ sub cmt_sha2rev_batch { print $out $sha, "\n"; while (my $line = <$in>) { - if ($first && $line =~ /^[[:xdigit:]]{40}\smissing$/) { + if ($first && $line =~ /^$::oid\smissing$/) { last; } elsif ($first && - $line =~ /^[[:xdigit:]]{40}\scommit\s(\d+)$/) { + $line =~ /^$::oid\scommit\s(\d+)$/) { $first = 0; $size = $1; next; @@ -2036,7 +2045,7 @@ sub working_head_info { my $hash; my %max; while (<$fh>) { - if ( m{^commit ($::sha1)$} ) { + if ( m{^commit ($::oid)$} ) { unshift @$refs, $hash if $hash and $refs; $hash = $1; next; @@ -574,7 +574,7 @@ static struct cmd_struct commands[] = { { "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER }, { "show", cmd_show, RUN_SETUP }, { "show-branch", cmd_show_branch, RUN_SETUP }, - { "show-index", cmd_show_index }, + { "show-index", cmd_show_index, RUN_SETUP_GENTLY }, { "show-ref", cmd_show_ref, RUN_SETUP }, { "sparse-checkout", cmd_sparse_checkout, RUN_SETUP | NEED_WORK_TREE }, { "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE }, @@ -641,6 +641,7 @@ void get_version_info(struct strbuf *buf, int show_build_options) strbuf_addstr(buf, "no commit associated with this build\n"); strbuf_addf(buf, "sizeof-long: %d\n", (int)sizeof(long)); strbuf_addf(buf, "sizeof-size_t: %d\n", (int)sizeof(size_t)); + strbuf_addf(buf, "shell-path: %s\n", SHELL_PATH); /* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */ } } diff --git a/http-fetch.c b/http-fetch.c index a32ac118d9..1df376e745 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -5,22 +5,90 @@ #include "walker.h" static const char http_fetch_usage[] = "git http-fetch " -"[-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url"; +"[-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin | --packfile=hash | commit-id] url"; -int cmd_main(int argc, const char **argv) +static int fetch_using_walker(const char *raw_url, int get_verbosely, + int get_recover, int commits, char **commit_id, + const char **write_ref, int commits_on_stdin) { + char *url = NULL; struct walker *walker; + int rc; + + str_end_url_with_slash(raw_url, &url); + + http_init(NULL, url, 0); + + walker = get_http_walker(url); + walker->get_verbosely = get_verbosely; + walker->get_recover = get_recover; + walker->get_progress = 0; + + rc = walker_fetch(walker, commits, commit_id, write_ref, url); + + if (commits_on_stdin) + walker_targets_free(commits, commit_id, write_ref); + + if (walker->corrupt_object_found) { + fprintf(stderr, +"Some loose object were found to be corrupt, but they might be just\n" +"a false '404 Not Found' error message sent with incorrect HTTP\n" +"status code. Suggest running 'git fsck'.\n"); + } + + walker_free(walker); + http_cleanup(); + free(url); + + return rc; +} + +static void fetch_single_packfile(struct object_id *packfile_hash, + const char *url) { + struct http_pack_request *preq; + struct slot_results results; + int ret; + + http_init(NULL, url, 0); + + preq = new_direct_http_pack_request(packfile_hash->hash, xstrdup(url)); + if (preq == NULL) + die("couldn't create http pack request"); + preq->slot->results = &results; + preq->generate_keep = 1; + + if (start_active_slot(preq->slot)) { + run_active_slot(preq->slot); + if (results.curl_result != CURLE_OK) { + die("Unable to get pack file %s\n%s", preq->url, + curl_errorstr); + } + } else { + die("Unable to start request"); + } + + if ((ret = finish_http_pack_request(preq))) + die("finish_http_pack_request gave result %d", ret); + + release_http_pack_request(preq); + http_cleanup(); +} + +int cmd_main(int argc, const char **argv) +{ int commits_on_stdin = 0; int commits; const char **write_ref = NULL; char **commit_id; - char *url = NULL; int arg = 1; - int rc = 0; int get_verbosely = 0; int get_recover = 0; + int packfile = 0; + struct object_id packfile_hash; while (arg < argc && argv[arg][0] == '-') { + const char *p; + if (argv[arg][1] == 't') { } else if (argv[arg][1] == 'c') { } else if (argv[arg][1] == 'a') { @@ -35,46 +103,34 @@ int cmd_main(int argc, const char **argv) get_recover = 1; } else if (!strcmp(argv[arg], "--stdin")) { commits_on_stdin = 1; + } else if (skip_prefix(argv[arg], "--packfile=", &p)) { + const char *end; + + packfile = 1; + if (parse_oid_hex(p, &packfile_hash, &end) || *end) + die(_("argument to --packfile must be a valid hash (got '%s')"), p); } arg++; } - if (argc != arg + 2 - commits_on_stdin) + if (argc != arg + 2 - (commits_on_stdin || packfile)) usage(http_fetch_usage); - if (commits_on_stdin) { - commits = walker_targets_stdin(&commit_id, &write_ref); - } else { - commit_id = (char **) &argv[arg++]; - commits = 1; - } - - if (argv[arg]) - str_end_url_with_slash(argv[arg], &url); setup_git_directory(); git_config(git_default_config, NULL); - http_init(NULL, url, 0); - walker = get_http_walker(url); - walker->get_verbosely = get_verbosely; - walker->get_recover = get_recover; - - rc = walker_fetch(walker, commits, commit_id, write_ref, url); - - if (commits_on_stdin) - walker_targets_free(commits, commit_id, write_ref); - - if (walker->corrupt_object_found) { - fprintf(stderr, -"Some loose object were found to be corrupt, but they might be just\n" -"a false '404 Not Found' error message sent with incorrect HTTP\n" -"status code. Suggest running 'git fsck'.\n"); + if (packfile) { + fetch_single_packfile(&packfile_hash, argv[arg]); + return 0; } - walker_free(walker); - http_cleanup(); - - free(url); - - return rc; + if (commits_on_stdin) { + commits = walker_targets_stdin(&commit_id, &write_ref); + } else { + commit_id = (char **) &argv[arg++]; + commits = 1; + } + return fetch_using_walker(argv[arg], get_verbosely, get_recover, + commits, commit_id, write_ref, + commits_on_stdin); } diff --git a/http-push.c b/http-push.c index 822f326599..1ff1883cdd 100644 --- a/http-push.c +++ b/http-push.c @@ -70,10 +70,10 @@ enum XML_Status { #define LOCK_REFRESH 30 /* Remember to update object flag allocation in object.h */ -#define LOCAL (1u<<16) -#define REMOTE (1u<<17) -#define FETCHING (1u<<18) -#define PUSHING (1u<<19) +#define LOCAL (1u<<11) +#define REMOTE (1u<<12) +#define FETCHING (1u<<13) +#define PUSHING (1u<<14) /* We allow "recursive" symbolic refs. Only within reason, though */ #define MAXDEPTH 5 @@ -117,6 +117,7 @@ enum transfer_state { struct transfer_request { struct object *obj; + struct packed_git *target; char *url; char *dest; struct remote_lock *lock; @@ -314,17 +315,18 @@ static void start_fetch_packed(struct transfer_request *request) release_request(request); return; } + close_pack_index(target); + request->target = target; fprintf(stderr, "Fetching pack %s\n", hash_to_hex(target->hash)); fprintf(stderr, " which contains %s\n", oid_to_hex(&request->obj->oid)); - preq = new_http_pack_request(target, repo->url); + preq = new_http_pack_request(target->hash, repo->url); if (preq == NULL) { repo->can_update_info_refs = 0; return; } - preq->lst = &repo->packs; /* Make sure there isn't another open request for this pack */ while (check_request) { @@ -597,6 +599,8 @@ static void finish_request(struct transfer_request *request) } if (fail) repo->can_update_info_refs = 0; + else + http_install_packfile(request->target, &repo->packs); release_request(request); } } diff --git a/http-walker.c b/http-walker.c index fe15e325fa..4fb1235cd4 100644 --- a/http-walker.c +++ b/http-walker.c @@ -439,6 +439,7 @@ static int http_fetch_pack(struct walker *walker, struct alt_base *repo, unsigne target = find_sha1_pack(sha1, repo->packs); if (!target) return -1; + close_pack_index(target); if (walker->get_verbosely) { fprintf(stderr, "Getting pack %s\n", @@ -447,10 +448,9 @@ static int http_fetch_pack(struct walker *walker, struct alt_base *repo, unsigne hash_to_hex(sha1)); } - preq = new_http_pack_request(target, repo->base); + preq = new_http_pack_request(target->hash, repo->base); if (preq == NULL) goto abort; - preq->lst = &repo->packs; preq->slot->results = &results; if (start_active_slot(preq->slot)) { @@ -469,6 +469,7 @@ static int http_fetch_pack(struct walker *walker, struct alt_base *repo, unsigne release_http_pack_request(preq); if (ret) return ret; + http_install_packfile(target, &repo->packs); return 0; @@ -18,7 +18,7 @@ static struct trace_key trace_curl = TRACE_KEY_INIT(CURL); static int trace_curl_data = 1; -static struct string_list cookies_to_redact = STRING_LIST_INIT_DUP; +static int trace_curl_redact = 1; #if LIBCURL_VERSION_NUM >= 0x070a08 long int git_curl_ipresolve = CURL_IPRESOLVE_WHATEVER; #else @@ -642,8 +642,9 @@ static void redact_sensitive_header(struct strbuf *header) { const char *sensitive_header; - if (skip_prefix(header->buf, "Authorization:", &sensitive_header) || - skip_prefix(header->buf, "Proxy-Authorization:", &sensitive_header)) { + if (trace_curl_redact && + (skip_prefix(header->buf, "Authorization:", &sensitive_header) || + skip_prefix(header->buf, "Proxy-Authorization:", &sensitive_header))) { /* The first token is the type, which is OK to log */ while (isspace(*sensitive_header)) sensitive_header++; @@ -652,20 +653,15 @@ static void redact_sensitive_header(struct strbuf *header) /* Everything else is opaque and possibly sensitive */ strbuf_setlen(header, sensitive_header - header->buf); strbuf_addstr(header, " <redacted>"); - } else if (cookies_to_redact.nr && + } else if (trace_curl_redact && skip_prefix(header->buf, "Cookie:", &sensitive_header)) { struct strbuf redacted_header = STRBUF_INIT; - char *cookie; + const char *cookie; while (isspace(*sensitive_header)) sensitive_header++; - /* - * The contents of header starting from sensitive_header will - * subsequently be overridden, so it is fine to mutate this - * string (hence the assignment to "char *"). - */ - cookie = (char *) sensitive_header; + cookie = sensitive_header; while (cookie) { char *equals; @@ -678,14 +674,8 @@ static void redact_sensitive_header(struct strbuf *header) strbuf_addstr(&redacted_header, cookie); continue; } - *equals = 0; /* temporarily set to NUL for lookup */ - if (string_list_lookup(&cookies_to_redact, cookie)) { - strbuf_addstr(&redacted_header, cookie); - strbuf_addstr(&redacted_header, "=<redacted>"); - } else { - *equals = '='; - strbuf_addstr(&redacted_header, cookie); - } + strbuf_add(&redacted_header, cookie, equals - cookie); + strbuf_addstr(&redacted_header, "=<redacted>"); if (semicolon) { /* * There are more cookies. (Or, for some @@ -804,6 +794,12 @@ static int curl_trace(CURL *handle, curl_infotype type, char *data, size_t size, return 0; } +void http_trace_curl_no_data(void) +{ + trace_override_envvar(&trace_curl, "1"); + trace_curl_data = 0; +} + void setup_curl_trace(CURL *handle) { if (!trace_want(&trace_curl)) @@ -993,15 +989,12 @@ static CURL *get_curl_handle(void) warning(_("Protocol restrictions not supported with cURL < 7.19.4")); #endif if (getenv("GIT_CURL_VERBOSE")) - curl_easy_setopt(result, CURLOPT_VERBOSE, 1L); + http_trace_curl_no_data(); setup_curl_trace(result); if (getenv("GIT_TRACE_CURL_NO_DATA")) trace_curl_data = 0; - if (getenv("GIT_REDACT_COOKIES")) { - string_list_split(&cookies_to_redact, - getenv("GIT_REDACT_COOKIES"), ',', -1); - string_list_sort(&cookies_to_redact); - } + if (!git_env_bool("GIT_TRACE_REDACT", 1)) + trace_curl_redact = 0; curl_easy_setopt(result, CURLOPT_USERAGENT, user_agent ? user_agent : git_user_agent()); @@ -2268,70 +2261,74 @@ void release_http_pack_request(struct http_pack_request *preq) int finish_http_pack_request(struct http_pack_request *preq) { - struct packed_git **lst; - struct packed_git *p = preq->target; - char *tmp_idx; - size_t len; struct child_process ip = CHILD_PROCESS_INIT; - - close_pack_index(p); + int tmpfile_fd; + int ret = 0; fclose(preq->packfile); preq->packfile = NULL; - lst = preq->lst; - while (*lst != p) - lst = &((*lst)->next); - *lst = (*lst)->next; - - if (!strip_suffix(preq->tmpfile.buf, ".pack.temp", &len)) - BUG("pack tmpfile does not end in .pack.temp?"); - tmp_idx = xstrfmt("%.*s.idx.temp", (int)len, preq->tmpfile.buf); + tmpfile_fd = xopen(preq->tmpfile.buf, O_RDONLY); argv_array_push(&ip.args, "index-pack"); - argv_array_pushl(&ip.args, "-o", tmp_idx, NULL); - argv_array_push(&ip.args, preq->tmpfile.buf); + argv_array_push(&ip.args, "--stdin"); ip.git_cmd = 1; - ip.no_stdin = 1; - ip.no_stdout = 1; + ip.in = tmpfile_fd; + if (preq->generate_keep) { + argv_array_pushf(&ip.args, "--keep=git %"PRIuMAX, + (uintmax_t)getpid()); + ip.out = 0; + } else { + ip.no_stdout = 1; + } if (run_command(&ip)) { - unlink(preq->tmpfile.buf); - unlink(tmp_idx); - free(tmp_idx); - return -1; + ret = -1; + goto cleanup; } - unlink(sha1_pack_index_name(p->hash)); +cleanup: + close(tmpfile_fd); + unlink(preq->tmpfile.buf); + return ret; +} - if (finalize_object_file(preq->tmpfile.buf, sha1_pack_name(p->hash)) - || finalize_object_file(tmp_idx, sha1_pack_index_name(p->hash))) { - free(tmp_idx); - return -1; - } +void http_install_packfile(struct packed_git *p, + struct packed_git **list_to_remove_from) +{ + struct packed_git **lst = list_to_remove_from; + + while (*lst != p) + lst = &((*lst)->next); + *lst = (*lst)->next; install_packed_git(the_repository, p); - free(tmp_idx); - return 0; } struct http_pack_request *new_http_pack_request( - struct packed_git *target, const char *base_url) + const unsigned char *packed_git_hash, const char *base_url) { + + struct strbuf buf = STRBUF_INIT; + + end_url_with_slash(&buf, base_url); + strbuf_addf(&buf, "objects/pack/pack-%s.pack", + hash_to_hex(packed_git_hash)); + return new_direct_http_pack_request(packed_git_hash, + strbuf_detach(&buf, NULL)); +} + +struct http_pack_request *new_direct_http_pack_request( + const unsigned char *packed_git_hash, char *url) { off_t prev_posn = 0; - struct strbuf buf = STRBUF_INIT; struct http_pack_request *preq; preq = xcalloc(1, sizeof(*preq)); strbuf_init(&preq->tmpfile, 0); - preq->target = target; - end_url_with_slash(&buf, base_url); - strbuf_addf(&buf, "objects/pack/pack-%s.pack", - hash_to_hex(target->hash)); - preq->url = strbuf_detach(&buf, NULL); + preq->url = url; - strbuf_addf(&preq->tmpfile, "%s.temp", sha1_pack_name(target->hash)); + strbuf_addf(&preq->tmpfile, "%s.temp", sha1_pack_name(packed_git_hash)); preq->packfile = fopen(preq->tmpfile.buf, "a"); if (!preq->packfile) { error("Unable to open local file %s for pack", @@ -2355,7 +2352,7 @@ struct http_pack_request *new_http_pack_request( if (http_is_verbose) fprintf(stderr, "Resuming fetch of pack %s at byte %"PRIuMAX"\n", - hash_to_hex(target->hash), + hash_to_hex(packed_git_hash), (uintmax_t)prev_posn); http_opt_request_remainder(preq->slot->curl, prev_posn); } @@ -216,18 +216,36 @@ int http_get_info_packs(const char *base_url, struct http_pack_request { char *url; - struct packed_git *target; - struct packed_git **lst; + + /* + * If this is true, finish_http_pack_request() will pass "--keep" to + * index-pack, resulting in the creation of a keep file, and will not + * suppress its stdout (that is, the "keep\t<hash>\n" line will be + * printed to stdout). + */ + unsigned generate_keep : 1; + FILE *packfile; struct strbuf tmpfile; struct active_request_slot *slot; }; struct http_pack_request *new_http_pack_request( - struct packed_git *target, const char *base_url); + const unsigned char *packed_git_hash, const char *base_url); +struct http_pack_request *new_direct_http_pack_request( + const unsigned char *packed_git_hash, char *url); int finish_http_pack_request(struct http_pack_request *preq); void release_http_pack_request(struct http_pack_request *preq); +/* + * Remove p from the given list, and invoke install_packed_git() on it. + * + * This is a convenience function for users that have obtained a list of packs + * from http_get_info_packs() and have chosen a specific pack to fetch. + */ +void http_install_packfile(struct packed_git *p, + struct packed_git **list_to_remove_from); + /* Helpers for fetching object */ struct http_object_request { char *url; @@ -252,6 +270,13 @@ int finish_http_object_request(struct http_object_request *freq); void abort_http_object_request(struct http_object_request *freq); void release_http_object_request(struct http_object_request *freq); +/* + * Instead of using environment variables to determine if curl tracing happens, + * behave as if GIT_TRACE_CURL=1 and GIT_TRACE_CURL_NO_DATA=1 is set. Call this + * before calling setup_curl_trace(). + */ +void http_trace_curl_no_data(void); + /* setup routine for curl_easy_setopt CURLOPT_DEBUGFUNCTION */ void setup_curl_trace(CURL *handle); #endif /* HTTP_H */ diff --git a/imap-send.c b/imap-send.c index 6c54d8c29d..52737546f3 100644 --- a/imap-send.c +++ b/imap-send.c @@ -1464,7 +1464,7 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred) curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); if (0 < verbosity || getenv("GIT_CURL_VERBOSE")) - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); + http_trace_curl_no_data(); setup_curl_trace(curl); return curl; diff --git a/line-log.c b/line-log.c index 40e1738dbb..c53692834d 100644 --- a/line-log.c +++ b/line-log.c @@ -15,6 +15,7 @@ #include "userdiff.h" #include "line-log.h" #include "argv-array.h" +#include "bloom.h" static void range_set_grow(struct range_set *rs, size_t extra) { @@ -1146,6 +1147,37 @@ int line_log_print(struct rev_info *rev, struct commit *commit) return 1; } +static int bloom_filter_check(struct rev_info *rev, + struct commit *commit, + struct line_log_data *range) +{ + struct bloom_filter *filter; + struct bloom_key key; + int result = 0; + + if (!commit->parents) + return 1; + + if (!rev->bloom_filter_settings || + !(filter = get_bloom_filter(rev->repo, commit, 0))) + return 1; + + if (!range) + return 0; + + while (!result && range) { + fill_bloom_key(range->path, strlen(range->path), &key, rev->bloom_filter_settings); + + if (bloom_filter_contains(filter, &key, rev->bloom_filter_settings)) + result = 1; + + clear_bloom_key(&key); + range = range->next; + } + + return result; +} + static int process_ranges_ordinary_commit(struct rev_info *rev, struct commit *commit, struct line_log_data *range) { @@ -1159,6 +1191,7 @@ static int process_ranges_ordinary_commit(struct rev_info *rev, struct commit *c queue_diffs(range, &rev->diffopt, &queue, commit, parent); changed = process_all_files(&parent_range, rev, &queue, range); + if (parent) add_line_range(rev, parent, parent_range); free_line_log_data(parent_range); @@ -1227,13 +1260,17 @@ static int process_ranges_merge_commit(struct rev_info *rev, struct commit *comm /* NEEDSWORK leaking like a sieve */ } -static int process_ranges_arbitrary_commit(struct rev_info *rev, struct commit *commit) +int line_log_process_ranges_arbitrary_commit(struct rev_info *rev, struct commit *commit) { struct line_log_data *range = lookup_line_range(rev, commit); int changed = 0; if (range) { - if (!commit->parents || !commit->parents->next) + if (commit->parents && !bloom_filter_check(rev, commit, range)) { + struct line_log_data *prange = line_log_data_copy(range); + add_line_range(rev, commit->parents->item, prange); + clear_commit_line_range(rev, commit); + } else if (!commit->parents || !commit->parents->next) changed = process_ranges_ordinary_commit(rev, commit, range); else changed = process_ranges_merge_commit(rev, commit, range); @@ -1270,7 +1307,7 @@ int line_log_filter(struct rev_info *rev) while (list) { struct commit_list *to_free = NULL; commit = list->item; - if (process_ranges_arbitrary_commit(rev, commit)) { + if (line_log_process_ranges_arbitrary_commit(rev, commit)) { *pp = list; pp = &list->next; } else diff --git a/line-log.h b/line-log.h index 8ee7a2bd4a..82ae8d98a4 100644 --- a/line-log.h +++ b/line-log.h @@ -46,10 +46,7 @@ void sort_and_merge_range_set(struct range_set *); struct line_log_data { struct line_log_data *next; char *path; - char status; struct range_set ranges; - int arg_alloc, arg_nr; - const char **args; struct diff_filepair *pair; struct diff_ranges diff; }; @@ -57,6 +54,8 @@ struct line_log_data { void line_log_init(struct rev_info *rev, const char *prefix, struct string_list *args); int line_log_filter(struct rev_info *rev); +int line_log_process_ranges_arbitrary_commit(struct rev_info *rev, + struct commit *commit); int line_log_print(struct rev_info *rev, struct commit *commit); diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c index 256bcfbdfe..3553ad7b0a 100644 --- a/list-objects-filter-options.c +++ b/list-objects-filter-options.c @@ -326,7 +326,8 @@ void partial_clone_register( /* Check if it is already registered */ if (!promisor_remote_find(remote)) { - git_config_set("core.repositoryformatversion", "1"); + if (upgrade_repository_format(1) < 0) + die(_("unable to upgrade repository format to support partial clone")); /* Add promisor config for the remote */ cfg_name = xstrfmt("remote.%s.promisor", remote); diff --git a/object-store.h b/object-store.h index d1e490f203..f439d47af8 100644 --- a/object-store.h +++ b/object-store.h @@ -70,6 +70,7 @@ struct packed_git { size_t index_size; uint32_t num_objects; uint32_t num_bad_objects; + uint32_t crc_offset; unsigned char *bad_object_sha1; int index_version; time_t mtime; @@ -157,13 +157,13 @@ void *create_object(struct repository *r, const struct object_id *oid, void *o) return obj; } -void *object_as_type(struct repository *r, struct object *obj, enum object_type type, int quiet) +void *object_as_type(struct object *obj, enum object_type type, int quiet) { if (obj->type == type) return obj; else if (obj->type == OBJ_NONE) { if (type == OBJ_COMMIT) - init_commit_node(r, (struct commit *) obj); + init_commit_node((struct commit *) obj); else obj->type = type; return obj; @@ -15,7 +15,6 @@ struct parsed_object_pool { struct alloc_state *commit_state; struct alloc_state *tag_state; struct alloc_state *object_state; - unsigned commit_count; /* parent substitutions from .git/info/grafts and .git/shallow */ struct commit_graft **grafts; @@ -26,6 +25,7 @@ struct parsed_object_pool { char *alternate_shallow_file; int commit_graft_prepared; + int substituted_parent; struct buffer_slab *buffer_slab; }; @@ -59,7 +59,7 @@ struct object_array { /* * object flag allocation: - * revision.h: 0---------10 15 25----28 + * revision.h: 0---------10 15 23------26 * fetch-pack.c: 01 * negotiator/default.c: 2--5 * walker.c: 0-2 @@ -67,7 +67,7 @@ struct object_array { * builtin/blame.c: 12-13 * bisect.c: 16 * bundle.c: 16 - * http-push.c: 16-----19 + * http-push.c: 11-----14 * commit-graph.c: 15 * commit-reach.c: 16-----19 * sha1-name.c: 20 @@ -79,7 +79,7 @@ struct object_array { * builtin/show-branch.c: 0-------------------------------------------26 * builtin/unpack-objects.c: 2021 */ -#define FLAG_BITS 29 +#define FLAG_BITS 28 /* * The object type is stored in 3 bits. @@ -121,7 +121,7 @@ struct object *lookup_object(struct repository *r, const struct object_id *oid); void *create_object(struct repository *r, const struct object_id *oid, void *obj); -void *object_as_type(struct repository *r, struct object *obj, enum object_type type, int quiet); +void *object_as_type(struct object *obj, enum object_type type, int quiet); /* * Returns the object, having parsed it to find out what it is. diff --git a/packfile.c b/packfile.c index f4e752996d..6ab5233613 100644 --- a/packfile.c +++ b/packfile.c @@ -178,6 +178,7 @@ int load_idx(const char *path, const unsigned int hashsz, void *idx_map, */ (sizeof(off_t) <= 4)) return error("pack too large for current definition of off_t in %s", path); + p->crc_offset = 8 + 4 * 256 + nr * hashsz; } p->index_version = version; diff --git a/perl/Git/IndexInfo.pm b/perl/Git/IndexInfo.pm index a43108c985..2a7b4908f3 100644 --- a/perl/Git/IndexInfo.pm +++ b/perl/Git/IndexInfo.pm @@ -5,13 +5,15 @@ use Git qw/command_input_pipe command_close_pipe/; sub new { my ($class) = @_; + my $hash_algo = Git::config('extensions.objectformat') || 'sha1'; my ($gui, $ctx) = command_input_pipe(qw/update-index -z --index-info/); - bless { gui => $gui, ctx => $ctx, nr => 0}, $class; + bless { gui => $gui, ctx => $ctx, nr => 0, hash_algo => $hash_algo}, $class; } sub remove { my ($self, $path) = @_; - if (print { $self->{gui} } '0 ', 0 x 40, "\t", $path, "\0") { + my $length = $self->{hash_algo} eq 'sha256' ? 64 : 40; + if (print { $self->{gui} } '0 ', 0 x $length, "\t", $path, "\0") { return ++$self->{nr}; } undef; diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index 4b28b87784..d1c352f92b 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -2,7 +2,7 @@ package Git::SVN; use strict; use warnings; use Fcntl qw/:DEFAULT :seek/; -use constant rev_map_fmt => 'NH40'; +use constant rev_map_fmt => 'NH*'; use vars qw/$_no_metadata $_repack $_repack_flags $_use_svm_props $_head $_use_svnsync_props $no_reuse_existing @@ -874,7 +874,7 @@ sub assert_index_clean { command_noisy('read-tree', $treeish) unless -e $self->{index}; my $x = command_oneline('write-tree'); my ($y) = (command(qw/cat-file commit/, $treeish) =~ - /^tree ($::sha1)/mo); + /^tree ($::oid)/mo); return if $y eq $x; warn "Index mismatch: $y != $x\nrereading $treeish\n"; @@ -1020,7 +1020,7 @@ sub do_git_commit { $tree = $self->tmp_index_do(sub { command_oneline('write-tree') }); } - die "Tree is not a valid sha1: $tree\n" if $tree !~ /^$::sha1$/o; + die "Tree is not a valid oid $tree\n" if $tree !~ /^$::oid$/o; my @exec = ('git', 'commit-tree', $tree); foreach ($self->get_commit_parents($log_entry)) { @@ -1048,8 +1048,8 @@ sub do_git_commit { close $out_fh or croak $!; waitpid $pid, 0; croak $? if $?; - if ($commit !~ /^$::sha1$/o) { - die "Failed to commit, invalid sha1: $commit\n"; + if ($commit !~ /^$::oid$/o) { + die "Failed to commit, invalid oid: $commit\n"; } $self->rev_map_set($log_entry->{revision}, $commit, 1); @@ -2087,10 +2087,10 @@ sub rebuild_from_rev_db { open my $fh, '<', $path or croak "open: $!"; binmode $fh or croak "binmode: $!"; while (<$fh>) { - length($_) == 41 or croak "inconsistent size in ($_) != 41"; + length($_) == $::oid_length + 1 or croak "inconsistent size in ($_)"; chomp($_); ++$r; - next if $_ eq ('0' x 40); + next if $_ eq ('0' x $::oid_length); $self->rev_map_set($r, $_); print "r$r = $_\n"; } @@ -2150,7 +2150,7 @@ sub rebuild { my $svn_uuid = $self->rewrite_uuid || $self->ra_uuid; my $c; while (<$log>) { - if ( m{^commit ($::sha1)$} ) { + if ( m{^commit ($::oid)$} ) { $c = $1; next; } @@ -2196,9 +2196,9 @@ sub rebuild { # (mainly tags) # # The format is this: -# - 24 bytes for every record, +# - 24 or 36 bytes for every record, # * 4 bytes for the integer representing an SVN revision number -# * 20 bytes representing the sha1 of a git commit +# * 20 or 32 bytes representing the oid of a git commit # - No empty padding records like the old format # (except the last record, which can be overwritten) # - new records are written append-only since SVN revision numbers @@ -2207,7 +2207,7 @@ sub rebuild { # - Piping the file to xxd -c24 is a good way of dumping it for # viewing or editing (piped back through xxd -r), should the need # ever arise. -# - The last record can be padding revision with an all-zero sha1 +# - The last record can be padding revision with an all-zero oid # This is used to optimize fetch performance when using multiple # "fetch" directives in .git/config # @@ -2215,38 +2215,39 @@ sub rebuild { sub _rev_map_set { my ($fh, $rev, $commit) = @_; + my $record_size = ($::oid_length / 2) + 4; binmode $fh or croak "binmode: $!"; my $size = (stat($fh))[7]; - ($size % 24) == 0 or croak "inconsistent size: $size"; + ($size % $record_size) == 0 or croak "inconsistent size: $size"; my $wr_offset = 0; if ($size > 0) { - sysseek($fh, -24, SEEK_END) or croak "seek: $!"; - my $read = sysread($fh, my $buf, 24) or croak "read: $!"; - $read == 24 or croak "read only $read bytes (!= 24)"; + sysseek($fh, -$record_size, SEEK_END) or croak "seek: $!"; + my $read = sysread($fh, my $buf, $record_size) or croak "read: $!"; + $read == $record_size or croak "read only $read bytes (!= $record_size)"; my ($last_rev, $last_commit) = unpack(rev_map_fmt, $buf); - if ($last_commit eq ('0' x40)) { - if ($size >= 48) { - sysseek($fh, -48, SEEK_END) or croak "seek: $!"; - $read = sysread($fh, $buf, 24) or + if ($last_commit eq ('0' x $::oid_length)) { + if ($size >= ($record_size * 2)) { + sysseek($fh, -($record_size * 2), SEEK_END) or croak "seek: $!"; + $read = sysread($fh, $buf, $record_size) or croak "read: $!"; - $read == 24 or - croak "read only $read bytes (!= 24)"; + $read == $record_size or + croak "read only $read bytes (!= $record_size)"; ($last_rev, $last_commit) = unpack(rev_map_fmt, $buf); - if ($last_commit eq ('0' x40)) { + if ($last_commit eq ('0' x $::oid_length)) { croak "inconsistent .rev_map\n"; } } if ($last_rev >= $rev) { croak "last_rev is higher!: $last_rev >= $rev"; } - $wr_offset = -24; + $wr_offset = -$record_size; } } sysseek($fh, $wr_offset, SEEK_END) or croak "seek: $!"; - syswrite($fh, pack(rev_map_fmt, $rev, $commit), 24) == 24 or + syswrite($fh, pack(rev_map_fmt, $rev, $commit), $record_size) == $record_size or croak "write: $!"; } @@ -2271,7 +2272,7 @@ sub mkfile { sub rev_map_set { my ($self, $rev, $commit, $update_ref, $uuid) = @_; defined $commit or die "missing arg3\n"; - length $commit == 40 or die "arg3 must be a full SHA1 hexsum\n"; + $commit =~ /^$::oid$/ or die "arg3 must be a full hex object ID\n"; my $db = $self->map_path($uuid); my $db_lock = "$db.lock"; my $sigmask; @@ -2344,29 +2345,30 @@ sub rev_map_max { sub rev_map_max_norebuild { my ($self, $want_commit) = @_; + my $record_size = ($::oid_length / 2) + 4; my $map_path = $self->map_path; stat $map_path or return $want_commit ? (0, undef) : 0; sysopen(my $fh, $map_path, O_RDONLY) or croak "open: $!"; binmode $fh or croak "binmode: $!"; my $size = (stat($fh))[7]; - ($size % 24) == 0 or croak "inconsistent size: $size"; + ($size % $record_size) == 0 or croak "inconsistent size: $size"; if ($size == 0) { close $fh or croak "close: $!"; return $want_commit ? (0, undef) : 0; } - sysseek($fh, -24, SEEK_END) or croak "seek: $!"; - sysread($fh, my $buf, 24) == 24 or croak "read: $!"; + sysseek($fh, -$record_size, SEEK_END) or croak "seek: $!"; + sysread($fh, my $buf, $record_size) == $record_size or croak "read: $!"; my ($r, $c) = unpack(rev_map_fmt, $buf); - if ($want_commit && $c eq ('0' x40)) { - if ($size < 48) { + if ($want_commit && $c eq ('0' x $::oid_length)) { + if ($size < $record_size * 2) { return $want_commit ? (0, undef) : 0; } - sysseek($fh, -48, SEEK_END) or croak "seek: $!"; - sysread($fh, $buf, 24) == 24 or croak "read: $!"; + sysseek($fh, -($record_size * 2), SEEK_END) or croak "seek: $!"; + sysread($fh, $buf, $record_size) == $record_size or croak "read: $!"; ($r, $c) = unpack(rev_map_fmt, $buf); - if ($c eq ('0'x40)) { + if ($c eq ('0' x $::oid_length)) { croak "Penultimate record is all-zeroes in $map_path"; } } @@ -2387,30 +2389,31 @@ sub rev_map_get { sub _rev_map_get { my ($fh, $rev) = @_; + my $record_size = ($::oid_length / 2) + 4; binmode $fh or croak "binmode: $!"; my $size = (stat($fh))[7]; - ($size % 24) == 0 or croak "inconsistent size: $size"; + ($size % $record_size) == 0 or croak "inconsistent size: $size"; if ($size == 0) { return undef; } - my ($l, $u) = (0, $size - 24); + my ($l, $u) = (0, $size - $record_size); my ($r, $c, $buf); while ($l <= $u) { - my $i = int(($l/24 + $u/24) / 2) * 24; + my $i = int(($l/$record_size + $u/$record_size) / 2) * $record_size; sysseek($fh, $i, SEEK_SET) or croak "seek: $!"; - sysread($fh, my $buf, 24) == 24 or croak "read: $!"; + sysread($fh, my $buf, $record_size) == $record_size or croak "read: $!"; my ($r, $c) = unpack(rev_map_fmt, $buf); if ($r < $rev) { - $l = $i + 24; + $l = $i + $record_size; } elsif ($r > $rev) { - $u = $i - 24; + $u = $i - $record_size; } else { # $r == $rev - return $c eq ('0' x 40) ? undef : $c; + return $c eq ('0' x $::oid_length) ? undef : $c; } } undef; diff --git a/perl/Git/SVN/Editor.pm b/perl/Git/SVN/Editor.pm index 0df16ed726..c961444d4c 100644 --- a/perl/Git/SVN/Editor.pm +++ b/perl/Git/SVN/Editor.pm @@ -63,7 +63,7 @@ sub generate_diff { my @mods; while (defined($_ = get_record($diff_fh, "\0"))) { if ($state eq 'meta' && /^:(\d{6})\s(\d{6})\s - ($::sha1)\s($::sha1)\s + ($::oid)\s($::oid)\s ([MTCRAD])\d*$/xo) { push @mods, { mode_a => $1, mode_b => $2, sha1_a => $3, sha1_b => $4, @@ -400,12 +400,12 @@ sub T { ($m->{mode_b} !~ /^120/ && $m->{mode_a} =~ /^120/)) { $self->D({ mode_a => $m->{mode_a}, mode_b => '000000', - sha1_a => $m->{sha1_a}, sha1_b => '0' x 40, + sha1_a => $m->{sha1_a}, sha1_b => '0' x $::oid_length, chg => 'D', file_b => $m->{file_b} }, $deletions); $self->A({ mode_a => '000000', mode_b => $m->{mode_b}, - sha1_a => '0' x 40, sha1_b => $m->{sha1_b}, + sha1_a => '0' x $::oid_length, sha1_b => $m->{sha1_b}, chg => 'A', file_b => $m->{file_b} }, $deletions); return; @@ -434,7 +434,7 @@ sub _chg_file_get_blob ($$$$) { $self->change_file_prop($fbat,'svn:special',undef); } my $blob = $m->{"sha1_$which"}; - return ($fh,) if ($blob =~ /^0{40}$/); + return ($fh,) if ($blob =~ /^0+$/); my $size = $::_repository->cat_blob($blob, $fh); croak "Failed to read object $blob" if ($size < 0); $fh->flush == 0 or croak $!; diff --git a/perl/Git/SVN/Fetcher.pm b/perl/Git/SVN/Fetcher.pm index 64e900a0e9..729e5337df 100644 --- a/perl/Git/SVN/Fetcher.pm +++ b/perl/Git/SVN/Fetcher.pm @@ -173,7 +173,7 @@ sub delete_entry { # remove entire directories. my ($tree) = (command('ls-tree', '-z', $self->{c}, "./$gpath") - =~ /\A040000 tree ([a-f\d]{40})\t\Q$gpath\E\0/); + =~ /\A040000 tree ($::oid)\t\Q$gpath\E\0/); if ($tree) { my ($ls, $ctx) = command_output_pipe(qw/ls-tree -r --name-only -z/, @@ -203,7 +203,7 @@ sub open_file { my $gpath = $self->git_path($path); ($mode, $blob) = (command('ls-tree', '-z', $self->{c}, "./$gpath") - =~ /\A(\d{6}) blob ([a-f\d]{40})\t\Q$gpath\E\0/); + =~ /\A(\d{6}) blob ($::oid)\t\Q$gpath\E\0/); unless (defined $mode && defined $blob) { die "$path was not found in commit $self->{c} (r$rev)\n"; } @@ -413,7 +413,7 @@ sub close_file { $hash = $::_repository->hash_and_insert_object( Git::temp_path($fh)); - $hash =~ /^[a-f\d]{40}$/ or die "not a sha1: $hash\n"; + $hash =~ /^$::oid$/ or die "not an object ID: $hash\n"; Git::temp_release($fb->{base}, 1); Git::temp_release($fh, 1); diff --git a/perl/Git/SVN/Log.pm b/perl/Git/SVN/Log.pm index 664105357c..3858fcf27d 100644 --- a/perl/Git/SVN/Log.pm +++ b/perl/Git/SVN/Log.pm @@ -285,7 +285,7 @@ sub cmd_show_log { my (@k, $c, $d, $stat); my $esc_color = qr/(?:\033\[(?:(?:\d+;)*\d*)?m)*/; while (<$log>) { - if (/^${esc_color}commit (?:- )?($::sha1_short)/o) { + if (/^${esc_color}commit (?:- )?($::oid_short)/o) { my $cmt = $1; if ($c && cmt_showable($c) && $c->{r} != $r_last) { $r_last = $c->{r}; diff --git a/perl/Git/SVN/Ra.pm b/perl/Git/SVN/Ra.pm index 56ad9870bc..2cfe055a9a 100644 --- a/perl/Git/SVN/Ra.pm +++ b/perl/Git/SVN/Ra.pm @@ -486,11 +486,11 @@ sub gs_fetch_loop_common { $reload_ra->() if $ra_invalid; } # pre-fill the .rev_db since it'll eventually get filled in - # with '0' x40 if something new gets committed + # with '0' x $oid_length if something new gets committed foreach my $gs (@$gsv) { next if $gs->rev_map_max >= $max; next if defined $gs->rev_map_get($max); - $gs->rev_map_set($max, 0 x40); + $gs->rev_map_set($max, 0 x $::oid_length); } foreach my $g (@$globs) { my $k = "svn-remote.$g->{remote}.$g->{t}-maxRev"; diff --git a/pkt-line.c b/pkt-line.c index a0e87b1e81..844c253ccd 100644 --- a/pkt-line.c +++ b/pkt-line.c @@ -99,6 +99,13 @@ void packet_delim(int fd) die_errno(_("unable to write delim packet")); } +void packet_response_end(int fd) +{ + packet_trace("0002", 4, 1); + if (write_in_full(fd, "0002", 4) < 0) + die_errno(_("unable to write stateless separator packet")); +} + int packet_flush_gently(int fd) { packet_trace("0000", 4, 1); @@ -306,10 +313,10 @@ static int get_packet_data(int fd, char **src_buf, size_t *src_size, return ret; } -static int packet_length(const char *linelen) +int packet_length(const char lenbuf_hex[4]) { - int val = hex2chr(linelen); - return (val < 0) ? val : (val << 8) | hex2chr(linelen + 2); + int val = hex2chr(lenbuf_hex); + return (val < 0) ? val : (val << 8) | hex2chr(lenbuf_hex + 2); } enum packet_read_status packet_read_with_status(int fd, char **src_buffer, @@ -337,6 +344,10 @@ enum packet_read_status packet_read_with_status(int fd, char **src_buffer, packet_trace("0001", 4, 0); *pktlen = 0; return PACKET_READ_DELIM; + } else if (len == 2) { + packet_trace("0002", 4, 0); + *pktlen = 0; + return PACKET_READ_RESPONSE_END; } else if (len < 4) { die(_("protocol error: bad line length %d"), len); } @@ -479,6 +490,7 @@ void packet_reader_init(struct packet_reader *reader, int fd, reader->buffer_size = sizeof(packet_buffer); reader->options = options; reader->me = "git"; + reader->hash_algo = &hash_algos[GIT_HASH_SHA1]; } enum packet_read_status packet_reader_read(struct packet_reader *reader) diff --git a/pkt-line.h b/pkt-line.h index fef3a0d792..8c90daa59e 100644 --- a/pkt-line.h +++ b/pkt-line.h @@ -22,6 +22,7 @@ */ void packet_flush(int fd); void packet_delim(int fd); +void packet_response_end(int fd); void packet_write_fmt(int fd, const char *fmt, ...) __attribute__((format (printf, 2, 3))); void packet_buf_flush(struct strbuf *buf); void packet_buf_delim(struct strbuf *buf); @@ -75,6 +76,15 @@ int packet_read(int fd, char **src_buffer, size_t *src_len, char *buffer, unsigned size, int options); /* + * Convert a four hex digit packet line length header into its numeric + * representation. + * + * If lenbuf_hex contains non-hex characters, return -1. Otherwise, return the + * numeric value of the length header. + */ +int packet_length(const char lenbuf_hex[4]); + +/* * Read a packetized line into a buffer like the 'packet_read()' function but * returns an 'enum packet_read_status' which indicates the status of the read. * The number of bytes read will be assigned to *pktlen if the status of the @@ -85,6 +95,7 @@ enum packet_read_status { PACKET_READ_NORMAL, PACKET_READ_FLUSH, PACKET_READ_DELIM, + PACKET_READ_RESPONSE_END, }; enum packet_read_status packet_read_with_status(int fd, char **src_buffer, size_t *src_len, char *buffer, @@ -166,6 +177,9 @@ struct packet_reader { unsigned use_sideband : 1; const char *me; + + /* hash algorithm in use */ + const struct git_hash_algo *hash_algo; }; /* @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-24 15:57+0100\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-12 13:20+0100\n" "Last-Translator: Matthias Rüster <matthias.ruester@gmail.com>\n" "Language-Team: Matthias Rüster <matthias.ruester@gmail.com>\n" "Language: de\n" @@ -111,21 +111,21 @@ msgstr[1] "%d Pfade hinzugefügt\n" msgid "ignoring unmerged: %s" msgstr "Ignoriere nicht zusammengeführte Datei: %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Nur Binärdateien geändert.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "Keine Änderungen.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Patch Aktualisierung" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "Diff überprüfen" @@ -193,11 +193,11 @@ msgstr "Ein nummeriertes Element auswählen" msgid "(empty) select nothing" msgstr "(leer) nichts auswählen" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Befehle ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Was nun" @@ -214,7 +214,7 @@ msgstr "aus Staging-Area entfernt" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "Pfad" @@ -223,27 +223,32 @@ msgstr "Pfad" msgid "could not refresh index" msgstr "Index konnte nicht aktualisiert werden" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Tschüss.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "Modusänderung der Staging-Area hinzufügen [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "Löschung der Staging-Area hinzufügen [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "Ergänzung der Staging-Area hinzufügen [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "Diesen Patch-Block der Staging-Area hinzufügen [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -251,7 +256,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-" "Block direkt für die Staging-Area markiert." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -267,22 +272,27 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke in dieser Datei nicht zum Commit " "vormerken\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "Modusänderung stashen [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "Löschung stashen [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "Ergänzung stashen [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "Diesen Patch-Block stashen [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -290,7 +300,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-" "Block direkt zum Stashen markiert." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -304,22 +314,27 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke dieser Datei stashen\n" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht stashen\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "Modusänderung aus der Staging-Area entfernen [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "Löschung aus der Staging-Area entfernen [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "Ergänzung aus der Staging-Area entfernen [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "Diesen Patch-Block aus der Staging-Area entfernen [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -327,7 +342,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-" "Block direkt zum Entfernen aus der Staging-Area markiert." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -344,22 +359,27 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht aus Staging-" "Area entfernen\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "Modusänderung auf Index anwenden [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "Löschung auf Index anwenden [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "Ergänzung auf Index anwenden [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "Diesen Patch-Block auf Index anwenden [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -367,7 +387,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-" "Block direkt zum Anwenden markiert." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -384,25 +404,31 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht auf den Index " "anwenden\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "Modusänderung im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "Löschung im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "Ergänzung im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "Diesen Patch-Block im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -410,7 +436,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-" "Block direkt zum Verwerfen markiert." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -427,25 +453,30 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht im " "Arbeitsverzeichnis verwerfen\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Modusänderung vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "Löschung vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "Ergänzung im Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Diesen Patch-Block vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d" "%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -459,25 +490,30 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei verwerfen\n" "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht verwerfen\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Modusänderung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "Löschung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "Ergänzung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Diesen Patch-Block auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d" "%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -492,7 +528,7 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n" "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht anwenden\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -506,34 +542,34 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n" "d - diesen und alle weiteren Patch-Blöcke in der Datei nicht anwenden\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "Konnte Block-Header '%.*s' nicht parsen." -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "Konnte farbigen Block-Header '%.*s' nicht parsen." -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "Konnte Differenz nicht parsen." -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "Konnte farbige Differenz nicht parsen." -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "'%s' konnte nicht ausgeführt werden" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "nicht übereinstimmende Ausgabe von interactive.diffFilter" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -541,7 +577,7 @@ msgstr "" "Der Filter muss eine Eins-zu-Eins-Beziehung\n" "zwischen den Ein- und Ausgabe-Zeilen einhalten." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -550,7 +586,7 @@ msgstr "" "Erwartete Kontextzeile #%d in\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -563,13 +599,13 @@ msgstr "" "\tendet nicht mit:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "" "Manueller Editiermodus für Patch-Blöcke -- siehe nach unten für eine\n" "Kurzanleitung.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -583,7 +619,7 @@ msgstr "" "Zeilen, die mit %c beginnen, werden entfernt.\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -594,11 +630,11 @@ msgstr "" "werden,\n" "wird die Bearbeitung abgebrochen und der Patch-Block bleibt unverändert.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "Konnte Block-Header nicht parsen." -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "'git apply --cached' schlug fehl." @@ -614,27 +650,27 @@ msgstr "'git apply --cached' schlug fehl." #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "Ihr bearbeiteter Patch-Block kann nicht angewendet werden.\n" "Erneut bearbeiten? (\"n\" verwirft Bearbeitung!) [y/n]?" -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "" "Die ausgewählten Patch-Blöcke können nicht auf den Index angewendet werden!" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "Trotzdem auf Arbeitsverzeichnis anwenden? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Nichts angewendet.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -658,69 +694,69 @@ msgstr "" "e - aktuellen Patch-Block manuell editieren\n" "? - Hilfe anzeigen\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "Kein vorheriger Patch-Block" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "Kein folgender Patch-Block" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "Keine anderen Patch-Blöcke verbleibend" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "zu welchem Patch-Block springen (<Enter> für mehr Informationen)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "zu welchem Patch-Block springen? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Ungültige Nummer: '%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Entschuldigung, nur %d Patch-Block verfügbar." msgstr[1] "Entschuldigung, nur %d Patch-Blöcke verfügbar." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "Keine anderen Patch-Blöcke zum Durchsuchen" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "Suche nach regulärem Ausdruck? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Fehlerhafter regulärer Ausdruck für Suche %s: %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "Kein Patch-Block entspricht dem angegebenen Muster" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Entschuldigung, kann diesen Patch-Block nicht aufteilen" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "In %d Patch-Block aufgeteilt." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Entschuldigung, kann diesen Patch-Block nicht bearbeiten" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' schlug fehl" @@ -1438,7 +1474,7 @@ msgstr "" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "Aktion" @@ -1528,7 +1564,7 @@ msgstr "Pfad ist kein gültiges UTF-8: %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "Pfad zu lang (%d Zeichen, SHA1: %s): %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "Fehler beim Komprimieren (%d)" @@ -1598,8 +1634,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "einen Präfix vor jeden Pfadnamen in dem Archiv stellen" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1828,10 +1864,10 @@ msgstr "" "endgültigen\n" "Commits" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "Einrichtung des Revisionsgangs fehlgeschlagen" @@ -1995,84 +2031,88 @@ msgstr "'%s' ist bereits in '%s' ausgecheckt" msgid "HEAD of working tree %s is not updated" msgstr "HEAD des Arbeitsverzeichnisses %s ist nicht aktualisiert." -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "unbekannte Länge des Hash-Algorithmus" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "nicht erkannter Kopfbereich: %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "Konnte '%s' nicht öffnen" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "Um ein Paket zu überprüfen wird ein Repository benötigt." -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "Das Paket enthält diese Referenz:" msgstr[1] "Das Paket enthält diese %d Referenzen:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "Das Paket speichert eine komplette Historie." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "Das Paket benötigt diese Referenz:" msgstr[1] "Das Paket benötigt diese %d Referenzen:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "Konnte dup für Descriptor des Pakets nicht ausführen." -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "Konnte Paketobjekte nicht erstellen" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "Erstellung der Paketobjekte abgebrochen" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "\"rev-list\" abgebrochen" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "nicht erkanntes Argument: %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "Erstellung eines leeren Pakets zurückgewiesen." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "kann '%s' nicht erstellen" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "Erstellung der Paketindexdatei abgebrochen" @@ -2081,258 +2121,250 @@ msgstr "Erstellung der Paketindexdatei abgebrochen" msgid "invalid color value: %.*s" msgstr "Ungültiger Farbwert: %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "Commit-Graph-Datei ist zu klein." -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "Commit-Graph-Signatur %X stimmt nicht mit Signatur %X überein." -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "Commit-Graph-Version %X stimmt nicht mit Version %X überein." -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "Hash-Version des Commit-Graph %X stimmt nicht mit Version %X überein." -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "fehlender Tabelleneintrag für Commit-Graph Chunk-Lookup; Datei " "möglicherweise unvollständig" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "Unzulässiger Commit-Graph Chunk-Offset %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "Commit-Graph Chunk-Id %08x kommt mehrfach vor." -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "Commit-Graph hat keinen Basis-Graph-Chunk" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "Commit-Graph Verkettung stimmt nicht überein." -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "Ungültige Commit-Graph Verkettung: Zeile '%s' ist kein Hash" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "Konnte nicht alle Commit-Graph-Dateien finden." -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "Ungültige Commit-Position. Commit-Graph ist wahrscheinlich beschädigt." -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "Konnte Commit %s nicht finden." -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "Konnte Commit '%s' nicht parsen." -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "Schreibe Index für veränderte Pfade Bloom-Filter" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "Schreibe Daten für veränderte Pfade Bloom-Filter" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "Konnte Art von Objekt '%s' nicht bestimmen." -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Lade bekannte Commits in Commit-Graph" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "Erweitere erreichbare Commits in Commit-Graph" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Lösche Commit-Markierungen in Commit-Graph" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Commit-Graph Generationsnummern berechnen" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "Berechnung der Bloom-Filter für veränderte Pfade des Commits" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "Sammle referenzierte Commits" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Suche Commits für Commit-Graph in %d Paket" msgstr[1] "Suche Commits für Commit-Graph in %d Paketen" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "Fehler beim Hinzufügen von Paket %s." -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "Fehler beim Öffnen des Index für %s." -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "Suche Commits für Commit-Graph in %d Referenz" -msgstr[1] "Suche Commits für Commit-Graph in %d Referenzen" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "ungültige Commit-Objekt-ID: %s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "Suche Commits für Commit-Graph in gepackten Objekten" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Zähle Commits in Commit-Graph" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Suche zusätzliche Ränder in Commit-Graph" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "Fehler beim Schreiben der korrekten Anzahl von Basis-Graph-IDs." -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "konnte temporäre Graphen-Schicht nicht erstellen" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "konnte geteilte Zugriffsberechtigungen für '%s' nicht ändern" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Schreibe Commit-Graph in %d Durchgang" msgstr[1] "Schreibe Commit-Graph in %d Durchgängen" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "Konnte Commit-Graph Chain-Datei nicht öffnen." -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "Konnte Basis-Commit-Graph-Datei nicht umbenennen." -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "Konnte temporäre Commit-Graph-Datei nicht umbenennen." -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "Durchsuche zusammengeführte Commits" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "Unerwartete doppelte Commit-ID %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "Zusammenführen von Commit-Graph" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "Das Commit-Graph Format kann nicht %d Commits schreiben." -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "Zu viele Commits zum Schreiben des Graphen." -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "Die Commit-Graph-Datei hat eine falsche Prüfsumme und ist wahrscheinlich " "beschädigt." -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "Commit-Graph hat fehlerhafte OID-Reihenfolge: %s dann %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "Commit-Graph hat fehlerhaften Fanout-Wert: fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "Konnte Commit %s von Commit-Graph nicht parsen." -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Commit in Commit-Graph überprüfen" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "Fehler beim Parsen des Commits %s von Objekt-Datenbank für Commit-Graph" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" "OID des Wurzelverzeichnisses für Commit %s in Commit-Graph ist %s != %s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "Commit-Graph Vorgänger-Liste für Commit %s ist zu lang" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "Commit-Graph-Vorgänger für %s ist %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "Commit-Graph Vorgänger-Liste für Commit %s endet zu früh" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2340,7 +2372,7 @@ msgstr "" "Commit-Graph hat Generationsnummer null für Commit %s, aber sonst ungleich " "null" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2348,12 +2380,12 @@ msgstr "" "Commit-Graph hat Generationsnummer ungleich null für Commit %s, aber sonst " "null" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "Commit-Graph Erstellung für Commit %s ist %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2391,28 +2423,28 @@ msgstr "" "Sie können diese Meldung unterdrücken, indem Sie\n" "\"git config advice.graftFileDeprecated false\" ausführen." -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" "Commit %s hat eine nicht vertrauenswürdige GPG-Signatur, angeblich von %s." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "Commit %s hat eine ungültige GPG-Signatur, angeblich von %s." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Commit %s hat keine GPG-Signatur." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "Commit %s hat eine gültige GPG-Signatur von %s\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2614,7 +2646,7 @@ msgid "must be one of nothing, matching, simple, upstream or current" msgstr "" "Muss einer von diesen sein: nothing, matching, simple, upstream, current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "ungültiger Komprimierungsgrad (%d) für Paketierung" @@ -2770,74 +2802,83 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "Der Server unterstützt kein '%s'." -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "Der Server unterstützt das Feature '%s' nicht." -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "Erwartete Flush nach Fähigkeiten." -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "Ignoriere Fähigkeiten nach der ersten Zeile '%s'." -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "Protokollfehler: unerwartetes capabilities^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "Protokollfehler: shallow SHA-1 erwartet, '%s' bekommen" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "" "Repository auf der Gegenseite kann keine unvollständige Historie (shallow) " "enthalten" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" -msgstr "Ungültiges Paket." +msgstr "ungültiges Paket" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "Protokollfehler: unerwartetes '%s'" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "unbekanntes Objekt-Format '%s' vom Server angegeben" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" -msgstr "Ungültige ls-refs Antwort: %s" +msgstr "ungültige ls-refs Antwort: %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" -msgstr "Erwartete Flush nach Auflistung der Referenzen." +msgstr "Flush nach Auflistung der Referenzen erwartet" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "Antwort-Endpaket nach Auflistung der Referenzen erwartet" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" -msgstr "Protokoll '%s' wird nicht unterstützt." +msgstr "Protokoll '%s' wird nicht unterstützt" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" -msgstr "Kann SO_KEEPALIVE bei Socket nicht setzen." +msgstr "kann SO_KEEPALIVE bei Socket nicht setzen" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "Suche nach %s ..." -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "Fehler bei Suche nach %s (Port %s) (%s)." #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2846,7 +2887,7 @@ msgstr "" "Fertig.\n" "Verbinde nach %s (Port %s) ... " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2856,76 +2897,76 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "Fertig." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "Fehler bei der Suche nach %s (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "Unbekannter Port %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "Merkwürdigen Hostnamen '%s' blockiert." -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "Merkwürdigen Port '%s' blockiert." -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "Kann Proxy %s nicht starten." -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "" "Kein Pfad angegeben; siehe 'git help pull' für eine gültige URL-Syntax." -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "SSH-Variante 'simple' unterstützt kein -4." -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "SSH-Variante 'simple' unterstützt kein -6." -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "SSH-Variante 'simple' unterstützt nicht das Setzen eines Ports." -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "Merkwürdigen Pfadnamen '%s' blockiert." -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "Kann Prozess nicht starten." -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Prüfe Konnektivität" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "Konnte 'git rev-list' nicht ausführen" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "Fehler beim Schreiben nach rev-list" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" -msgstr "Fehler beim Schließen von rev-list's Standard-Eingabe" +msgstr "Fehler beim Schließen von rev-lists Standard-Eingabe" #: convert.c:194 #, c-format @@ -3191,18 +3232,18 @@ msgstr "" "Kein Git-Repository. Nutzen Sie --no-index, um zwei Pfade außerhalb des " "Arbeitsverzeichnisses zu vergleichen." -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Unbekannter \"dirstat\" Parameter '%s'\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3210,7 +3251,7 @@ msgstr "" "\"color moved\"-Einstellung muss eines von diesen sein: 'no', 'default', " "'blocks', 'zebra', 'dimmed_zebra', 'plain'" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3219,7 +3260,7 @@ msgstr "" "Unbekannter color-moved-ws Modus '%s', mögliche Werte sind 'ignore-space-" "change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-identation-change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3227,12 +3268,12 @@ msgstr "" "color-moved-ws: allow-indentation-change kann nicht mit anderen\n" "Whitespace-Modi kombiniert werden." -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3241,36 +3282,36 @@ msgstr "" "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "" "--name-only, --name-status, --check und -s schließen sich gegenseitig aus" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-G, -S und --find-object schließen sich gegenseitig aus" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow erfordert genau eine Pfadspezifikation" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "Ungültiger --stat Wert: %s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s erwartet einen numerischen Wert." -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3279,42 +3320,42 @@ msgstr "" "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "Unbekannte Änderungsklasse '%c' in --diff-filter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "Unbekannter Wert nach ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "konnte '%s' nicht auflösen" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s erwartet die Form <n>/<m>" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s erwartet ein Zeichen, '%s' bekommen" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "Ungültiges --color-moved Argument: %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "Ungültiger Modus '%s' in --color-moved-ws" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3322,152 +3363,152 @@ msgstr "" "Option diff-algorithm akzeptiert: \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "Ungültiges Argument für %s" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "Ungültiges --word-diff Argument: %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Diff-Optionen zu Ausgabeformaten" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "Erzeuge Patch" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "Ausgabe der Unterschiede unterdrücken" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "Erstelle Unterschiede mit <n> Zeilen des Kontextes" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "Erstelle Unterschiede im Rohformat" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "Synonym für '-p --raw'" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "Synonym für '-p --stat'" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "maschinenlesbare Ausgabe von --stat" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "nur die letzte Zeile von --stat ausgeben" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<Parameter1,Parameter2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" "Gebe die Verteilung des relativen Umfangs der Änderungen für jedes " "Unterverzeichnis aus" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "Synonym für --dirstat=cumulative" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "Synonym für --dirstat=files,Parameter1,Parameter2..." -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "Warnen, wenn Änderungen Konfliktmarker oder Whitespace-Fehler einbringen" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "" "Gekürzte Zusammenfassung, wie z.B. Erstellungen, Umbenennungen und " "Änderungen der Datei-Rechte" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "nur Dateinamen der geänderten Dateien anzeigen" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "nur Dateinamen und Status der geänderten Dateien anzeigen" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<Breite>[,<Namens-Breite>[,<Anzahl>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "Generiere Zusammenfassung der Unterschiede" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<Breite>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Breite" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Namens-Breite" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Graph-Breite" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<Anzahl>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "Erzeuge Zusammenfassung der Unterschiede mit begrenzten Zeilen" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "Erzeuge kompakte Zusammenstellung in Zusammenfassung der Unterschiede" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "Gebe eine binäre Differenz aus, dass angewendet werden kann" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "Zeige vollständige Objekt-Namen in den \"index\"-Zeilen" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "Zeige farbige Unterschiede" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<Art>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3475,7 +3516,7 @@ msgstr "" "Hebe Whitespace-Fehler in den Zeilen 'context', 'old' oder 'new' bei den " "Unterschieden hervor" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3483,91 +3524,91 @@ msgstr "" "Verschleiere nicht die Pfadnamen und nutze NUL-Zeichen als Schlusszeichen in " "Ausgabefeldern bei --raw oder --numstat" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<Präfix>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "Zeige den gegebenen Quell-Präfix statt \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "Zeige den gegebenen Ziel-Präfix statt \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "Stelle einen zusätzlichen Präfix bei jeder Ausgabezeile voran" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "Zeige keine Quell- oder Ziel-Präfixe an" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "" "Zeige Kontext zwischen Unterschied-Blöcken bis zur angegebenen Anzahl von " "Zeilen." -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<Zeichen>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "Das Zeichen festlegen, das eine neue Zeile kennzeichnet (statt '+')" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "Das Zeichen festlegen, das eine alte Zeile kennzeichnet (statt '-')" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "Das Zeichen festlegen, das den Kontext kennzeichnet (statt ' ')" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Diff-Optionen zur Umbenennung" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "" "Teile komplette Rewrite-Änderungen in Änderungen mit \"löschen\" und " "\"erstellen\"" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "Umbenennungen erkennen" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "Preimage für Löschungen weglassen." -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "Kopien erkennen" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "Nutze ungeänderte Dateien als Quelle zum Finden von Kopien" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "Erkennung von Umbenennungen deaktivieren" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "Nutze leere Blobs als Quelle von Umbennungen" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "Fortführen der Auflistung der Historie einer Datei nach Umbennung" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3575,159 +3616,159 @@ msgstr "" "Verhindere die Erkennung von Umbennungen und Kopien, wenn die Anzahl der " "Ziele für Umbennungen und Kopien das gegebene Limit überschreitet" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Diff Algorithmus-Optionen" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "Erzeuge die kleinstmöglichen Änderungen" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "Whitespace-Änderungen beim Vergleich von Zeilen ignorieren" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "Änderungen bei der Anzahl von Whitespace ignorieren" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "Whitespace-Änderungen am Zeilenende ignorieren" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "Ignoriere den Zeilenumbruch am Ende der Zeile" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "Ignoriere Änderungen in leeren Zeilen" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "" "Heuristik, um Grenzen der Änderungsblöcke für bessere Lesbarkeit zu " "verschieben" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Patience Diff\"" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Histogram Diff\"" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<Algorithmus>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "Ein Algorithmus für Änderungen wählen" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<Text>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Anchored Diff\"" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<Modus>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "Zeige Wort-Änderungen, nutze <Modus>, um Wörter abzugrenzen" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<Regex>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "Nutze <Regex>, um zu entscheiden, was ein Wort ist" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "Entsprechend wie --word-diff=color --word-diff-regex=<Regex>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "Verschobene Codezeilen sind andersfarbig" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "Wie Whitespaces in --color-moved ignoriert werden" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "Andere Diff-Optionen" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "Wenn vom Unterverzeichnis aufgerufen, schließe Änderungen außerhalb aus und " "zeige relative Pfade an" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "alle Dateien als Text behandeln" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "Vertausche die beiden Eingaben und drehe die Änderungen um" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "" "Beende mit Exit-Status 1, wenn Änderungen vorhanden sind, andernfalls mit 0" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "Keine Ausgaben vom Programm" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "Erlaube die Ausführung eines externes Programms für Änderungen" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" "Führe externe Text-Konvertierungsfilter aus, wenn binäre Dateien vergleicht " "werden" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<wann>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "" "Änderungen in Submodulen während der Erstellung der Unterschiede ignorieren" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<Format>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "Angeben, wie Unterschiede in Submodulen gezeigt werden" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "verstecke 'git add -N' Einträge vom Index" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "Behandle 'git add -N' Einträge im Index als echt" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<Zeichenkette>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" @@ -3735,7 +3776,7 @@ msgstr "" "Suche nach Unterschieden, welche die Anzahl des Vorkommens der angegebenen " "Zeichenkette verändern" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -3743,25 +3784,25 @@ msgstr "" "Suche nach Unterschieden, welche die Anzahl des Vorkommens des angegebenen " "regulären Ausdrucks verändern" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "zeige alle Änderungen im Changeset mit -S oder -G" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "" "behandle <Zeichenkette> bei -S als erweiterten POSIX regulären Ausdruck" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "" "kontrolliere die Reihenfolge, in der die Dateien in der Ausgabe erscheinen" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<Objekt-ID>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" @@ -3769,33 +3810,33 @@ msgstr "" "Suche nach Unterschieden, welche die Anzahl des Vorkommens des angegebenen " "Objektes verändern" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "Wähle Dateien anhand der Art der Änderung" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<Datei>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "Ausgabe zu einer bestimmten Datei" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "Ungenaue Erkennung für Umbenennungen wurde aufgrund zu vieler Dateien\n" "übersprungen." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "nur Kopien von geänderten Pfaden, aufgrund zu vieler Dateien, gefunden" -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3812,64 +3853,64 @@ msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'." msgid "Performing inexact rename detection" msgstr "Führe Erkennung für ungenaue Umbenennung aus" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "" "Pfadspezifikation '%s' stimmt mit keinen git-bekannten Dateien überein." -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "Unbekanntes Muster: '%s'" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "Unbekanntes verneinendes Muster: '%s'" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "" "Ihre Datei für den partiellen Checkout hat eventuell Probleme:\n" "Muster '%s' wiederholt sich." -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "Deaktiviere Cone-Muster-Ãœbereinstimmung" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "Kann %s nicht als exclude-Filter benutzen." -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "Konnte Verzeichnis '%s' nicht öffnen." -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "" "Cache für unversionierte Dateien ist auf diesem System oder\n" "für dieses Verzeichnis deaktiviert." -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "Index-Datei in Repository %s beschädigt." -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "Konnte Verzeichnisse für '%s' nicht erstellen." -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "Konnte Git-Verzeichnis nicht von '%s' nach '%s' migrieren." @@ -3879,11 +3920,11 @@ msgstr "Konnte Git-Verzeichnis nicht von '%s' nach '%s' migrieren." msgid "hint: Waiting for your editor to close the file...%c" msgstr "Hinweis: Warte auf das Schließen der Datei durch Ihren Editor...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "Filtere Inhalt" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "Konnte Datei '%s' nicht lesen." @@ -3903,227 +3944,245 @@ msgstr "Konnte GIT_DIR nicht zu '%s' setzen." msgid "too many args to run %s" msgstr "Zu viele Argumente angegeben, um %s auszuführen." -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: erwartete shallow-Liste" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack: erwartete ein Flush-Paket nach der shallow-Liste" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack: ACK/NAK erwartet, Flush-Paket bekommen" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: ACK/NAK erwartet, '%s' bekommen" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "konnte nicht zum Remote schreiben" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc benötigt multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "Ungültige shallow-Zeile: %s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "Ungültige unshallow-Zeile: %s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "Objekt nicht gefunden: %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "Fehler in Objekt: %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "Kein shallow-Objekt gefunden: %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "shallow/unshallow erwartet, %s bekommen" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "%s %d %s bekommen" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "Ungültiger Commit %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "Gebe auf" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "Fertig" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "%s (%d) %s bekommen" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "Markiere %s als vollständig" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "habe %s (%s) bereits" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack: Fehler beim Starten des sideband demultiplexer" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "Protokollfehler: ungültiger Pack-Header" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack: konnte %s nicht starten" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s fehlgeschlagen" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "Fehler in sideband demultiplexer" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "Server-Version ist %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "Server unterstützt %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "Server unterstützt keine shallow-Clients" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "Server unterstützt kein --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "Server unterstützt kein --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "Server unterstützt kein --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "Server unterstützt das Objekt-Format dieses Repositories nicht" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "keine gemeinsamen Commits" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack: Abholen fehlgeschlagen." #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "Algorithmen stimmen nicht überein: Client %s; Server %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "der Server unterstützt Algorithmus '%s' nicht" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" -msgstr "Server unterstützt keine shallow-Anfragen." +msgstr "Server unterstützt keine shallow-Anfragen" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "Server unterstützt Filter" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "konnte Anfrage nicht zum Remote schreiben" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "Fehler beim Lesen von Sektionskopf '%s'." -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "'%s' erwartet, '%s' empfangen" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "Unerwartete Acknowledgment-Zeile: '%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "Fehler beim Verarbeiten von ACKS: %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "Erwartete Versand einer Packdatei nach 'ready'." -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "Erwartete keinen Versand einer anderen Sektion ohne 'ready'." -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "Fehler beim Verarbeiten von Shallow-Informationen: %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "wanted-ref erwartet, '%s' bekommen" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" -msgstr "Unerwartetes wanted-ref: '%s'" +msgstr "unerwartetes wanted-ref: '%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "Fehler beim Verarbeiten von wanted-refs: %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: Antwort-Endpaket erwartet" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "kein übereinstimmender Remote-Branch" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" -msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet." +msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "keine solche Remote-Referenz %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "Der Server lehnt Anfrage nach nicht angebotenem Objekt %s ab." @@ -4159,7 +4218,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s': konnte %s nicht lesen" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4306,16 +4365,16 @@ msgstr[1] "" "\n" "Die ähnlichsten Befehle sind" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<Optionen>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4412,7 +4471,13 @@ msgstr "erwartete etwas nach 'combine:'" #: list-objects-filter-options.c:226 msgid "multiple filter-specs cannot be combined" -msgstr "Mehrere filter-specs können nicht kombiniert werden." +msgstr "mehrere filter-specs können nicht kombiniert werden" + +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "" +"Repository-Format konnte nicht erweitert werden, um partielles Klonen zu " +"unterstützen" #: list-objects-filter.c:492 #, c-format @@ -4422,7 +4487,7 @@ msgstr "konnte nicht auf partiellen Blob '%s' zugreifen" #: list-objects-filter.c:495 #, c-format msgid "unable to parse sparse filter data in %s" -msgstr "Konnte partielle Filter-Daten in %s nicht parsen." +msgstr "konnte partielle Filter-Daten in %s nicht parsen" #: list-objects.c:127 #, c-format @@ -4792,7 +4857,7 @@ msgstr "hinzufügen/hinzufügen" msgid "Skipped %s (merged same as existing)" msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "Submodul" @@ -4921,7 +4986,7 @@ msgid "failed to read the cache" msgstr "Lesen des Zwischenspeichers fehlgeschlagen" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "Konnte neue Index-Datei nicht schreiben." @@ -5176,21 +5241,21 @@ msgstr "Konnte Objekt '%s' nicht parsen." msgid "hash mismatch %s" msgstr "Hash stimmt nicht mit %s überein." -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "Konnte Größe von %s nicht bestimmen." -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "Offset vor Ende der Packdatei (fehlerhafte Indexdatei?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "Offset vor Beginn des Pack-Index für %s (beschädigter Index?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "Offset hinter Ende des Pack-Index für %s (abgeschnittener Index?)" @@ -5391,52 +5456,56 @@ msgstr "Zeile enthält falsche Anführungszeichen: %s" #: pkt-line.c:92 msgid "unable to write flush packet" -msgstr "Konnte Flush-Paket nicht schreiben." +msgstr "konnte Flush-Paket nicht schreiben" #: pkt-line.c:99 msgid "unable to write delim packet" -msgstr "Konnte Delim-Paket nicht schreiben." +msgstr "konnte Delim-Paket nicht schreiben" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "konnte zustandsloses Separator-Paket nicht schreiben" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "Flush beim Schreiben des Pakets fehlgeschlagen." -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "Protokollfehler: unmöglich lange Zeile" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "Schreiben des Pakets mit Format fehlgeschlagen." -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "" "Schreiben des Pakets fehlgeschlagen - Daten überschreiten maximale Paketgröße" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "Schreiben des Pakets fehlgeschlagen." -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "Lesefehler" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "Die Gegenseite hat unerwartet abgebrochen." -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "Protokollfehler: ungültiges Zeichen für Zeilenlänge: %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "Protokollfehler: ungültige Zeilenlänge %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "Fehler am anderen Ende: %s" @@ -5617,7 +5686,7 @@ msgstr "Ungeordnete Stage-Einträge für '%s'." #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5674,7 +5743,7 @@ msgstr "Konnte geteilten Index '%s' nicht aktualisieren." msgid "broken index, expect %s in %s, got %s" msgstr "Fehlerhafter Index. Erwartete %s in %s, erhielt %s." -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "Konnte '%s' nicht schließen." @@ -5860,7 +5929,7 @@ msgstr "" msgid "could not read '%s'." msgstr "Konnte '%s' nicht lesen." -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "entfernt" @@ -6085,7 +6154,7 @@ msgstr "fehlerhaftes Objekt bei '%s'" msgid "ignoring ref with broken name %s" msgstr "Ignoriere Referenz mit fehlerhaftem Namen %s" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "Ignoriere fehlerhafte Referenz %s" @@ -6098,137 +6167,151 @@ msgstr "Format: %%(end) Atom fehlt" #: ref-filter.c:2495 #, c-format msgid "option `%s' is incompatible with --merged" -msgstr "Die Option `%s' ist inkompatibel mit --merged." +msgstr "die Option `%s' ist inkompatibel mit --merged" #: ref-filter.c:2498 #, c-format msgid "option `%s' is incompatible with --no-merged" -msgstr "Die Option `%s' ist inkompatibel mit --no-merged." +msgstr "die Option `%s' ist inkompatibel mit --no-merged" #: ref-filter.c:2508 #, c-format msgid "malformed object name %s" -msgstr "Missgebildeter Objektname %s" +msgstr "missgebildeter Objektname %s" #: ref-filter.c:2513 #, c-format msgid "option `%s' must point to a commit" -msgstr "Die Option `%s' muss auf einen Commit zeigen." +msgstr "die Option `%s' muss auf einen Commit zeigen" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "%s zeigt auf kein gültiges Objekt!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "konnte `%s` nicht abrufen" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "ungültiger Branchname: %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "Ignoriere unreferenzierte symbolische Referenz %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "Konnte '%s' nicht zum Schreiben öffnen: %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "Konnte Referenz '%s' nicht lesen." -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "Referenz '%s' existiert bereits." -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "Unerwartete Objekt-ID beim Schreiben von '%s'." -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "Konnte nicht nach '%s' schreiben." -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "Unerwartete Objekt-ID beim Löschen von '%s'." -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "Log für Referenz %s hat eine Lücke nach %s." -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "Log für Referenz %s unerwartet bei %s beendet." -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "Log für %s ist leer." -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" -msgstr "Verweigere Aktualisierung einer Referenz mit fehlerhaftem Namen '%s'." +msgstr "verweigere Aktualisierung einer Referenz mit fehlerhaftem Namen '%s'" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "update_ref für Referenz '%s' fehlgeschlagen: %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" -msgstr "Mehrere Aktualisierungen für Referenz '%s' nicht erlaubt." +msgstr "mehrere Aktualisierungen für Referenz '%s' nicht erlaubt" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "" "Aktualisierungen von Referenzen ist innerhalb der Quarantäne-Umgebung " -"verboten." +"verboten" + +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "Aktualisierungen von Referenzen durch Hook abgebrochen" -#: refs.c:2107 refs.c:2137 +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' existiert; kann '%s' nicht erstellen" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" -msgstr "Kann '%s' und '%s' nicht zur selben Zeit verarbeiten." +msgstr "kann '%s' und '%s' nicht zur selben Zeit verarbeiten" #: refs/files-backend.c:1233 #, c-format msgid "could not remove reference %s" -msgstr "Konnte Referenz %s nicht löschen" +msgstr "konnte Referenz %s nicht löschen" #: refs/files-backend.c:1247 refs/packed-backend.c:1541 #: refs/packed-backend.c:1551 #, c-format msgid "could not delete reference %s: %s" -msgstr "Konnte Referenz %s nicht entfernen: %s" +msgstr "konnte Referenz %s nicht entfernen: %s" #: refs/files-backend.c:1250 refs/packed-backend.c:1554 #, c-format msgid "could not delete references: %s" -msgstr "Konnte Referenzen nicht entfernen: %s" +msgstr "konnte Referenzen nicht entfernen: %s" #: refspec.c:137 #, c-format msgid "invalid refspec '%s'" -msgstr "Ungültige Refspec '%s'" +msgstr "ungültige Refspec '%s'" #: remote.c:355 #, c-format @@ -6501,7 +6584,7 @@ msgstr "" " (benutzen Sie \"git pull\", um Ihren Branch mit dem Remote-Branch " "zusammenzuführen)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "Kann erwarteten Objektnamen '%s' nicht parsen." @@ -6628,20 +6711,20 @@ msgstr "Konnte HEAD-Commit nicht bestimmen." msgid "failed to find tree of %s" msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s." -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein." -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "Ihr aktueller Branch '%s' hat noch keine Commits." -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "Die Optionen --first-parent und --bisect sind inkompatibel." -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L unterstützt noch keine anderen Diff-Formate außer -p und -s" @@ -6682,12 +6765,17 @@ msgstr "Entpacken auf der Gegenseite fehlgeschlagen: %s" msgid "failed to sign the push certificate" msgstr "Fehler beim Signieren des \"push\"-Zertifikates" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "" +"die Gegenseite unterstützt nicht den Hash-Algorithmus dieses Repositories" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "" "die Gegenseite unterstützt keinen signierten Versand (\"--signed push\")" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6695,11 +6783,11 @@ msgstr "" "kein Versand des \"push\"-Zertifikates, da die Gegenseite keinen signierten\n" "Versand (\"--signed push\") unterstützt" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "die Gegenseite unterstützt keinen atomaren Versand (\"--atomic push\")" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "die Gegenseite unterstützt keine Push-Optionen" @@ -6821,7 +6909,7 @@ msgstr "Kein Schlüssel in '%.*s' vorhanden." msgid "unable to dequote value of '%s'" msgstr "Konnte Anführungszeichen von '%s' nicht entfernen." -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7672,84 +7760,84 @@ msgstr "" msgid "this operation must be run in a work tree" msgstr "Diese Operation muss in einem Arbeitsverzeichnis ausgeführt werden." -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Erwartete Git-Repository-Version <= %d, %d gefunden" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "Unbekannte Repository-Erweiterungen gefunden:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "Fehler beim Öffnen von '%s'." -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "Zu groß, um eine .git-Datei zu sein: '%s'" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "Fehler beim Lesen von '%s'." -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "Ungültiges gitfile-Format: %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "Kein Pfad in gitfile: %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "Kein Git-Repository: %s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' zu groß" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "Kein Git-Repository: '%s'" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "Kann nicht in Verzeichnis '%s' wechseln." -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "Kann nicht zum aktuellen Arbeitsverzeichnis zurückwechseln." -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "Konnte '%*s%s%s' nicht lesen." -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Konnte aktuelles Arbeitsverzeichnis nicht lesen." -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "Kann nicht nach '%s' wechseln." -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "Kein Git-Repository (oder irgendeines der Elternverzeichnisse): %s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7759,7 +7847,7 @@ msgstr "" "%s)\n" "Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7768,15 +7856,15 @@ msgstr "" "Problem mit Wert für Dateimodus (0%.3o) von core.sharedRepository.\n" "Der Besitzer der Dateien muss immer Lese- und Schreibrechte haben." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "Öffnen von /dev/null oder dup fehlgeschlagen." -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "fork fehlgeschlagen" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "setsid fehlgeschlagen" @@ -7964,7 +8052,7 @@ msgstr "deflateEnd auf Objekt %s fehlgeschlagen (%d)" msgid "confused by unstable object source data for %s" msgstr "Fehler wegen instabilen Objektquelldaten für %s" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "Fehler beim Aufruf von utime() auf '%s'." @@ -8145,43 +8233,43 @@ msgid "invalid object name '%.*s'." msgstr "ungültiger Objektname '%.*s'." #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8189,14 +8277,14 @@ msgstr[0] "%u Byte" msgstr[1] "%u Bytes" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u Byte/s" msgstr[1] "%u Bytes/s" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "Konnte '%s' nicht editieren." @@ -8446,7 +8534,7 @@ msgstr "Konnte Eingabe-Datei '%s' nicht lesen" msgid "could not read from stdin" msgstr "konnte nicht von der Standard-Eingabe lesen" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "Konnte '%s' nicht lesen" @@ -8470,22 +8558,22 @@ msgstr "konnte temporäre Datei '%s' nicht öffnen" msgid "could not rename temporary file to %s" msgstr "konnte temporäre Datei nicht zu %s umbenennen" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "Vollständiges Schreiben zu Remote-Helper fehlgeschlagen." -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "Konnte Remote-Helper für '%s' nicht finden." -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "" "Konnte dup() auf Dateideskriptor für Ausgaben des Remote-Helpers nicht " "ausführen." -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8494,158 +8582,163 @@ msgstr "" "Unbekannte erforderliche Fähigkeit %s; dieser Remote-Helper benötigt\n" "wahrscheinlich eine neuere Version von Git." -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "Dieser Remote-Helper sollte die \"refspec\"-Fähigkeit implementieren." -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "unerwartete Ausgabe von %s: '%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s sperrte auch %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "Konnte \"fast-import\" nicht ausführen." -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "Fehler beim Ausführen von 'fast-import'." -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "Konnte Referenz %s nicht lesen." -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "Unbekannte Antwort auf 'connect': %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "" "Setzen des Remote-Service Pfads wird von dem Protokoll nicht unterstützt." -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "Ungültiger Remote-Service Pfad." -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "Die Operation wird von dem Protokoll nicht unterstützt." -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "Kann keine Verbindung zu Subservice %s herstellen." -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "Erwartete ok/error, Remote-Helper gab '%s' aus." -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "Remote-Helper meldete unerwarteten Status von %s." -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "Remote-Helper %s unterstützt kein Trockenlauf." -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "Remote-Helper %s unterstützt kein --signed." -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "Remote-Helper %s unterstützt kein --signed=if-asked." -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "Remote-Helper %s unterstützt kein --atomic." -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "Remote-Helper %s unterstützt nicht 'push-option'." -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "Remote-Helper unterstützt kein Push; Refspec benötigt" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "Remote-Helper %s unterstützt kein 'force'." -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "Konnte \"fast-export\" nicht ausführen." -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "Fehler beim Ausführen von \"fast-export\"." -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "Keine gemeinsamen Referenzen und nichts spezifiziert; keine Ausführung.\n" -"Vielleicht sollten Sie einen Branch wie 'master' angeben.\n" +"Vielleicht sollten Sie einen Branch angeben.\n" -#: transport-helper.c:1121 +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "nicht unterstütztes Objekt-Format '%s'" + +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "Ungültige Antwort in Referenzliste: %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "Lesen von %s fehlgeschlagen." -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "Schreiben von %s fehlgeschlagen." -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "Thread %s fehlgeschlagen." -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "Fehler beim Beitreten zu Thread %s: %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "Kann Thread zum Kopieren von Daten nicht starten: %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "Fehler beim Warten von Prozess %s." -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "Prozess %s fehlgeschlagen" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "Kann Thread zum Kopieren von Daten nicht starten." @@ -8659,33 +8752,33 @@ msgstr "Würde Upstream-Branch von '%s' zu '%s' von '%s' setzen\n" msgid "could not read bundle '%s'" msgstr "Konnte Paket '%s' nicht lesen." -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "transport: ungültige --depth Option '%s'" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "Siehe protocol.version in 'git help config' für weitere Informationen" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "Server-Optionen benötigen Protokoll-Version 2 oder höher" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "Konnte transport.color.* Konfiguration nicht parsen." -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "Unterstützung für Protokoll v2 noch nicht implementiert." -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "Unbekannter Wert für Konfiguration '%s': %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "Ãœbertragungsart '%s' nicht erlaubt." @@ -8694,7 +8787,7 @@ msgstr "Ãœbertragungsart '%s' nicht erlaubt." msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync wird nicht länger unterstützt." -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8703,7 +8796,7 @@ msgstr "" "Die folgenden Submodul-Pfade enthalten Änderungen, die in keinem\n" "Remote-Repository gefunden wurden:\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8730,11 +8823,11 @@ msgstr "" "zum Versenden zu einem Remote-Repository.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Abbruch." -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "Fehler beim Versand aller erforderlichen Submodule." @@ -9028,7 +9121,7 @@ msgstr "" msgid "Updating index flags" msgstr "Aktualisiere Index-Markierungen" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "erwartete Flush nach Abrufen der Argumente" @@ -9065,47 +9158,47 @@ msgstr "ungültiges '..' Pfadsegment" msgid "Fetching objects" msgstr "Anfordern der Objekte" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "Fehler beim Lesen von '%s'" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "'%s' im Hauptarbeitsverzeichnis ist nicht das Repository-Verzeichnis." -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "'%s' Datei enthält nicht den absoluten Pfad zum Arbeitsverzeichnis." -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' existiert nicht." -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' ist keine .git-Datei, Fehlercode %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' zeigt nicht zurück auf '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "Konnte '%s' nicht zum Lesen und Schreiben öffnen." -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "konnte nicht auf '%s' zugreifen" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "Konnte aktuelles Arbeitsverzeichnis nicht bekommen." @@ -9526,39 +9619,46 @@ msgstr "" " (benutzen Sie \"git bisect reset\", um zum ursprünglichen Branch " "zurückzukehren)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "" +"Sie sind in einem partiellen Checkout mit %d%% vorhandenen versionierten " +"Dateien." + +#: wt-status.c:1733 msgid "On branch " msgstr "Auf Branch " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "interaktives Rebase im Gange; auf " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "Rebase im Gange; auf " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Im Moment auf keinem Branch." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Initialer Commit" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "Noch keine Commits" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "Unversionierte Dateien" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "Ignorierte Dateien" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9569,32 +9669,32 @@ msgstr "" "'status -uno' könnte das beschleunigen, aber Sie müssen darauf achten,\n" "neue Dateien selbstständig hinzuzufügen (siehe 'git help status')." -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "Unversionierte Dateien nicht aufgelistet%s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (benutzen Sie die Option -u, um unversionierte Dateien anzuzeigen)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "Keine Änderungen" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "keine Änderungen zum Commit vorgemerkt (benutzen Sie \"git add\" und/oder " "\"git commit -a\")\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "keine Änderungen zum Commit vorgemerkt\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9603,67 +9703,67 @@ msgstr "" "nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien\n" "(benutzen Sie \"git add\" zum Versionieren)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "nichts zu committen (erstellen/kopieren Sie Dateien und benutzen\n" "Sie \"git add\" zum Versionieren)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "nichts zu committen\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "nichts zu committen (benutzen Sie die Option -u, um unversionierte Dateien " "anzuzeigen)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "Noch keine Commits in " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (kein Branch)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "unterschiedlich" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "hinterher " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "voraus " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "" "%s nicht möglich: Sie haben Änderungen, die nicht zum Commit vorgemerkt sind." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "Zusätzlich enthält die Staging-Area nicht committete Änderungen." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "" @@ -9744,7 +9844,7 @@ msgstr "Probelauf" msgid "interactive picking" msgstr "interaktives Auswählen" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "Blöcke interaktiv auswählen" @@ -9882,14 +9982,14 @@ msgstr "" msgid "--chmod param '%s' must be either -x or +x" msgstr "--chmod Parameter '%s' muss entweder -x oder +x sein" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "" "Die Option --pathspec-from-file ist inkompatibel mit\n" "Pfadspezifikation-Argumenten." -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "Die Option --pathspec-file-nul benötigt --pathspec-from-file" @@ -10162,7 +10262,7 @@ msgstr "historische Option -- kein Effekt" msgid "allow fall back on 3way merging if needed" msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "weniger Ausgaben" @@ -10217,7 +10317,7 @@ msgstr "Anzahl" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "Format" @@ -10514,114 +10614,118 @@ msgstr "" "Ungültiges Argument %s für 'git bisect terms'.\n" "Unterstützte Optionen sind: --term-good|--term-old und --term-bad|--term-new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' ist kein gültiger Begriff" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "Nicht erkannte Position: '%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "'%s' scheint kein gültiger Commit zu sein." -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "Ungültiger HEAD - HEAD wird benötigt." -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "" "Auschecken von '%s' fehlgeschlagen. Versuchen Sie 'git bisect start " "<gültiger-Branch>'." -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "" "binäre Suche auf einem durch 'cg-seek' geändertem Verzeichnis nicht möglich" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "Ungültiger HEAD - merkwürdige symbolische Referenz." -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "Ungültige Referenz: '%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "'git bisect next' ausführen" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "die Begriffe nach .git/BISECT_TERMS schreiben" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "den Zustand der binären Suche aufräumen" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "auf erwartete Commits prüfen" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "den Zustand der binären Suche zurücksetzen" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "den Zustand der binären Suche nach BISECT_LOG schreiben" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "Begriffe innerhalb einer binären Suche prüfen und setzen" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "prüfen, ob Begriffe für gute und schlechte Commits existieren" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "die Begriffe für die binäre Suche ausgeben" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "Sitzung für binäre Suche starten" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "BISECT_HEAD aktualisieren, anstatt den aktuellen Commit auszuchecken" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "kein Log für BISECT_WRITE" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms benötigt zwei Argumente." -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state erwartet keine Argumente." -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset benötigt entweder kein Argument oder ein Commit." -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write benötigt entweder 4 oder 5 Argumente." -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms benötigt 3 Argumente." -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check benötigt 2 oder 3 Argumente." -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms benötigt 0 oder 1 Argument." @@ -11239,19 +11343,19 @@ msgstr "git bundle list-heads <Datei> [<Referenzname>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <Datei> [<Referenzname>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "keine Fortschrittsanzeige anzeigen" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "Fortschrittsanzeige anzeigen" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "Forschrittsanzeige während des Schreibens von Objekten anzeigen" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird" @@ -11291,11 +11395,11 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<Format>] | --batch-check[=<Format>]) [--follow-" +"symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11329,7 +11433,7 @@ msgstr "eine Textkonvertierung auf den Inhalt von Blob-Objekten ausführen" msgid "for blob objects, run filters on object's content" msgstr "für Blob-Objekte, Filter auf Objekt-Inhalte ausführen" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "Blob" @@ -11394,8 +11498,8 @@ msgstr "Dateinamen von der Standard-Eingabe lesen" msgid "terminate input and output records by a NUL character" msgstr "Einträge von Ein- und Ausgabe mit NUL-Zeichen abschließen" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "Fortschrittsanzeige unterdrücken" @@ -11490,7 +11594,7 @@ msgstr "den Inhalt in temporäre Dateien schreiben" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "Zeichenkette" @@ -11607,11 +11711,11 @@ msgstr "'%s' oder '%s' kann nicht mit %s verwendet werden" msgid "path '%s' is unmerged" msgstr "Pfad '%s' ist nicht zusammengeführt." -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "Sie müssen zuerst die Konflikte in Ihrem aktuellen Index auflösen." -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11620,50 +11724,50 @@ msgstr "" "Kann nicht mit vorgemerkten Änderungen in folgenden Dateien fortsetzen:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Kann \"reflog\" für '%s' nicht durchführen: %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD ist jetzt bei" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "Konnte HEAD nicht aktualisieren." -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "Setze Branch '%s' neu\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Bereits auf '%s'\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Zu umgesetztem Branch '%s' gewechselt\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Zu neuem Branch '%s' gewechselt\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "Zu Branch '%s' gewechselt\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ... und %d weitere.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11686,7 +11790,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11713,19 +11817,19 @@ msgstr[1] "" " git branch <neuer-Branchname> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "interner Fehler im Revisionsgang" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "Vorherige Position von HEAD war" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Sie sind auf einem Branch, der noch nicht geboren ist" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11735,7 +11839,7 @@ msgstr "" "Bitte benutzen Sie -- (und optional --no-guess), um diese\n" "eindeutig voneinander zu unterscheiden." -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11758,51 +11862,51 @@ msgstr "" "bevorzugen möchten, z.B. 'origin', können Sie die Einstellung\n" "checkout.defaultRemote=origin in Ihrer Konfiguration setzen." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' entspricht mehreren (%d) Remote-Tracking-Branches" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "nur eine Referenz erwartet" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "nur eine Referenz erwartet, %d gegeben." -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "Ungültige Referenz: %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "Referenz ist kein \"Tree\"-Objekt: %s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "Ein Branch wird erwartet, Tag '%s' bekommen" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "Ein Branch wird erwartet, Remote-Branch '%s' bekommen" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "Ein Branch wird erwartet, '%s' bekommen" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "Ein Branch wird erwartet, Commit '%s' bekommen" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11810,7 +11914,7 @@ msgstr "" "Der Branch kann nicht während eines Merges gewechselt werden.\n" "Ziehen Sie \"git merge --quit\" oder \"git worktree add\" in Betracht." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11819,7 +11923,7 @@ msgstr "" "werden.\n" "Ziehen Sie \"git am --quit\" oder \"git worktree add\" in Betracht." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11828,7 +11932,7 @@ msgstr "" "werden.\n" "Ziehen Sie \"git rebase --quit\" oder \"git worktree add\" in Betracht." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11837,7 +11941,7 @@ msgstr "" "gewechselt werden.\n" "Ziehen Sie \"git cherry-pick --quit\" oder \"git worktree add\" in Betracht." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11846,147 +11950,147 @@ msgstr "" "werden.\n" "Ziehen Sie \"git revert --quit\" oder \"git worktree add\" in Betracht." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "Sie wechseln den Branch während einer binären Suche" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' kann nicht mit '%s' verwendet werden" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s' kann nicht <Startpunkt> bekommen" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "Branch- oder Commit-Argument fehlt" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "Fortschrittsanzeige erzwingen" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "Stil" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "Konfliktstil (merge oder diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "HEAD bei benanntem Commit loslösen" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "Informationen zum Upstream-Branch für den neuen Branch setzen" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "Auschecken erzwingen (verwirft lokale Änderungen)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "neuer Branch" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "neuer Branch ohne Eltern-Commit" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "ignorierte Dateien aktualisieren (Standard)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "" "Prüfung, ob die Referenz bereits in einem anderen Arbeitsverzeichnis " "ausgecheckt wurde, deaktivieren" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "unsere Variante für nicht zusammengeführte Dateien auschecken" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "ihre Variante für nicht zusammengeführte Dateien auschecken" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "keine Einschränkung bei Pfadspezifikationen zum partiellen Auschecken" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "die Optionen -%c, -%c und --orphan schließen sich gegenseitig aus" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p und --overlay schließen sich gegenseitig aus." -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "Bei der Option --track muss ein Branchname angegeben werden." -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "kein Branchname; versuchen Sie -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "Konnte %s nicht auflösen." -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "ungültige Pfadspezifikation" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "" "'%s' ist kein Commit und es kann kein Branch '%s' aus diesem erstellt werden." -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach nimmt kein Pfad-Argument '%s'" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "Die Optionen --pathspec-from-file und --detach sind inkompatibel." -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "Die Optionen --pathspec-from-file und --patch sind inkompatibel." -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11994,69 +12098,70 @@ msgstr "" "git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n" "Sie aus dem Index auschecken." -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "Sie müssen Pfad(e) zur Wiederherstellung angeben." -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "Branch" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "einen neuen Branch erzeugen und auschecken" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "einen Branch erstellen/umsetzen und auschecken" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "das Reflog für den neuen Branch erzeugen" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "Zweite Vermutung 'git checkout <kein-solcher-Branch>' (Standard)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "benutze Overlay-Modus (Standard)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "einen neuen Branch erzeugen und dahin wechseln" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "einen Branch erstellen/umsetzen und dahin wechseln" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "Zweite Vermutung 'git switch <kein-solcher-Branch>'" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "lokale Änderungen verwerfen" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "Von welcher Commit-Referenz ausgecheckt werden soll" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "Index wiederherstellen" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "das Arbeitsverzeichnis wiederherstellen (Standard)" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "ignoriere nicht zusammengeführte Einträge" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "benutze Overlay-Modus" @@ -12219,11 +12324,7 @@ msgstr "auch ignorierte Dateien löschen" msgid "remove only ignored files" msgstr "nur ignorierte Dateien löschen" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden." - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -12231,7 +12332,7 @@ msgstr "" "clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; " "\"clean\" verweigert" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -12239,6 +12340,10 @@ msgstr "" "clean.requireForce standardmäßig auf \"true\" gesetzt und weder -i, -n noch -" "f gegeben; \"clean\" verweigert" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden." + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]" @@ -12247,7 +12352,7 @@ msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]" msgid "don't create a checkout" msgstr "kein Auschecken" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "ein Bare-Repository erstellen" @@ -12279,11 +12384,11 @@ msgstr "Submodule im Klon initialisieren" msgid "number of submodules cloned in parallel" msgstr "Anzahl der parallel zu klonenden Submodule" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "Vorlagenverzeichnis" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden" @@ -12297,8 +12402,8 @@ msgstr "Repository referenzieren" msgid "use --reference only while cloning" msgstr "--reference nur während des Klonens benutzen" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "Name" @@ -12324,7 +12429,7 @@ msgid "create a shallow clone of that depth" msgstr "" "einen Klon mit unvollständiger Historie (shallow) in dieser Tiefe erstellen" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "Zeit" @@ -12360,11 +12465,11 @@ msgstr "keine Tags klonen, und auch bei späteren Abrufen nicht beachten" msgid "any cloned submodules will be shallow" msgstr "jedes geklonte Submodul mit unvollständiger Historie (shallow)" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr ".git-Verzeichnis" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren" @@ -12495,7 +12600,7 @@ msgstr "Kann \"repack\" zum Aufräumen nicht aufrufen" msgid "cannot unlink temporary alternates file" msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "Zu viele Argumente." @@ -12512,48 +12617,48 @@ msgstr "Die Optionen --bare und --origin %s sind inkompatibel." msgid "--bare and --separate-git-dir are incompatible." msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "Repository '%s' existiert nicht." -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "Tiefe %s ist keine positive Zahl" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "Zielpfad '%s' existiert bereits und ist kein leeres Verzeichnis." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "Arbeitsverzeichnis '%s' existiert bereits." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klone in Bare-Repository '%s' ...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klone nach '%s' ...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" @@ -12561,45 +12666,45 @@ msgstr "" "'clone --recursive' ist nicht kompatibel mit --reference und --reference-if-" "able" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "" "Die Option --depth wird in lokalen Klonen ignoriert; benutzen Sie " "stattdessen file://" -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "" "--shallow-since wird in lokalen Klonen ignoriert; benutzen Sie stattdessen " "file://" -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" "--shallow-exclude wird in lokalen Klonen ignoriert; benutzen Sie stattdessen " "file://" -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "" "--filter wird in lokalen Klonen ignoriert; benutzen Sie stattdessen file://" -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "" "Quelle ist ein Repository mit unvollständiger Historie (shallow),\n" "ignoriere --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local wird ignoriert" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "Sie scheinen ein leeres Repository geklont zu haben." @@ -12635,14 +12740,14 @@ msgstr "Abstand zwischen Spalten" msgid "--command must be the first argument" msgstr "Die Option --command muss an erster Stelle stehen." -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <Objektverzeichnis>] [--shallow] [--" "[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12652,86 +12757,95 @@ msgstr "" "split[=<Strategie>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <Split-Optionen>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "konnte Objekt-Verzeichnis nicht finden, dass '%s' entsprechen soll" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "Verzeichnis" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "Das Objektverzeichnis zum Speichern des Graphen." -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "" "Wenn der Commit-Graph aufgeteilt ist, nur die Datei an der Spitze überprüfen" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "Konnte Commit-Graph '%s' nicht öffnen." -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "nicht erkanntes --split Argument, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "unerwartete nicht-hexadezimale Objekt-ID: %s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "ungültiges Objekt: %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "Durchlauf auf allen Referenzen beginnen" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "durch Standard-Eingabe gelistete Pack-Indexe nach Commits scannen" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "Lauf bei Commits beginnen, die über die Standard-Eingabe gelistet sind" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "" "alle Commits einschließen, die sich bereits in der Commit-Graph-Datei " "befinden" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "Berechnung für veränderte Pfade aktivieren" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "Erlaube das Schreiben einer inkrementellen Commit-Graph-Datei" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "" "Maximale Anzahl von Commits in einem aufgeteilten Commit-Graph ohne Basis" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "" "Maximales Verhältnis zwischen zwei Ebenen eines aufgeteilten Commit-Graph" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "nur Objekte älter als angegebene Zeit verfallen lassen" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "" "Benutzen Sie mindestens eins von --reachable, --stdin-commits, oder --stdin-" "packs." -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "unerwartete nicht-hexadezimale Objekt-ID: %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "Sammle Commits von der Standard-Eingabe" #: builtin/commit-tree.c:18 msgid "" @@ -13145,7 +13259,7 @@ msgid "version" msgstr "Version" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "maschinenlesbare Ausgabe" @@ -13158,8 +13272,8 @@ msgid "terminate entries with NUL" msgstr "Einträge mit NUL-Zeichen abschließen" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "Modus" @@ -13587,7 +13701,7 @@ msgid "" "#\tname = %s\n" "#\temail = %s\n" msgstr "" -"# Das ist Git's benutzerspezifische Konfigurationsdatei.\n" +"# Das ist Gits benutzerspezifische Konfigurationsdatei.\n" "[user]\n" "# Bitte passen Sie die folgenden Zeilen an und kommentieren Sie diese aus:\n" "#\tname = %s\n" @@ -13857,35 +13971,45 @@ msgstr "Die Option --dirty kann nicht mit Commits verwendet werden." msgid "--broken is incompatible with commit-ishes" msgstr "Die Option --broken kann nicht mit Commits verwendet werden." -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s': keine reguläre Datei oder symbolische Verknüpfung" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "Ungültige Option: %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: keine Merge-Basis" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "Kein Git-Repository" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "Objekt '%s' ist ungültig." -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "Mehr als zwei Blobs angegeben: '%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "unbehandeltes Objekt '%s' angegeben" +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s: mehrere Merge-Basen, nutze %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<Optionen>] [<Commit> [<Commit>]] [--] [<Pfad>...]" @@ -14038,89 +14162,110 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "" "Fehler: Verschachtelte Tags können nicht exportiert werden, außer --mark-" "tags wurde angegeben." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "Token für --anonymize-map kann nicht leer sein" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "Fortschritt nach <n> Objekten anzeigen" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "Behandlung von signierten Tags wählen" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "Behandlung von Tags wählen, die gefilterte Objekte markieren" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "" "Auswählen der Behandlung von Commit-Beschreibungen bei wechselndem Encoding" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "Markierungen in diese Datei schreiben" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "Markierungen von dieser Datei importieren" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "Markierungen von dieser Datei importieren, wenn diese existiert" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "künstlich einen Tag-Ersteller erzeugen, wenn das Tag keinen hat" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "für jeden Commit das gesamte Verzeichnis ausgeben" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "die \"done\"-Funktion benutzen, um den Datenstrom abzuschließen" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "Ausgabe von Blob-Daten überspringen" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "Refspec" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "Refspec auf exportierte Referenzen anwenden" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "Ausgabe anonymisieren" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "von:nach" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "konvertiere <von> zu <nach> in anonymisierter Ausgabe" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "" "Eltern, die nicht im Fast-Export-Stream sind, anhand ihrer Objekt-ID " "referenzieren" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "originale Objekt-IDs von Blobs/Commits anzeigen" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "Tags mit Markierungs-IDs beschriften" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map ohne --anonymize ist nicht sinnvoll" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "" "--import-marks und --import-marks-if-exists können nicht zusammen " "weitergegeben werden" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "Lock-Datei erstellt, aber nicht gemeldet: %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<Optionen>] [<Repository> [<Refspec>...]]" @@ -14461,45 +14606,45 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Sie müssen den Namen des Tags angeben." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "Negative Tiefe wird von --deepen nicht unterstützt." -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen und --depth schließen sich gegenseitig aus" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "" "Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden." -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "" "Die Option --unshallow kann nicht in einem Repository mit vollständiger " "Historie verwendet werden." -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all akzeptiert kein Repository als Argument" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kann nicht mit Refspecs verwendet werden." -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "Das Abholen einer Gruppe von Remote-Repositories kann nicht mit der Angabe\n" "von Refspecs verwendet werden." -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14961,8 +15106,8 @@ msgstr "ungültige Anzahl von Threads (%d) für %s angegeben" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "keine Unterstützung von Threads, '%s' wird ignoriert" @@ -15195,11 +15340,11 @@ msgstr "--untracked zusammen mit --recurse-submodules wird nicht unterstützt" msgid "invalid option combination, ignoring --threads" msgstr "Ungültige Kombination von Optionen, --threads wird ignoriert." -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "Keine Unterstützung für Threads, --threads wird ignoriert." -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "ungültige Anzahl von Threads angegeben (%d)" @@ -15406,7 +15551,7 @@ msgstr "Fehler beim Lesen der Eingabe" msgid "used more bytes than were available" msgstr "verwendete mehr Bytes als verfügbar waren" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "Paket ist zu groß für die aktuelle Definition von off_t" @@ -15478,8 +15623,8 @@ msgstr "ernsthafte Inkonsistenz nach Dekomprimierung" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "SHA1 KOLLISION MIT %s GEFUNDEN !" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "kann %s nicht lesen" @@ -15540,7 +15685,7 @@ msgstr "Fehler beim Ausführen von \"parse_pack_objects()\"" msgid "Resolving deltas" msgstr "Löse Unterschiede auf" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "kann Thread nicht erzeugen: %s" @@ -15605,58 +15750,67 @@ msgstr "Kann Paketdatei nicht speichern" msgid "cannot store index file" msgstr "Kann Indexdatei nicht speichern" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kann existierende Paketdatei '%s' nicht öffnen" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Kann existierende Indexdatei für Paket '%s' nicht öffnen" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "kein Unterschied: %d Objekt" msgstr[1] "kein Unterschied: %d Objekte" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "Länge der Objekt-Liste = %d: %lu Objekt" msgstr[1] "Länge der Objekt-Liste = %d: %lu Objekte" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "Kann nicht zurück zum Arbeitsverzeichnis wechseln" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "%s ist ungültig" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "unbekannter Hash-Algorithmus '%s'" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "Die Option --fix-thin kann nicht ohne --stdin verwendet werden." -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin erfordert ein Git-Repository" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "Die Option --object-format kann nicht mit --stdin verwendet werden." + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben." -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "fsck Fehler beim Packen von Objekten" @@ -15700,51 +15854,56 @@ msgstr "Keine Vorlagen in %s gefunden." msgid "not copying templates from '%s': %s" msgstr "kopiere keine Vorlagen von '%s': %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "ungültiger initialer Branchname: '%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "kann nicht mit Dateityp %d umgehen" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "Konnte %s nicht nach %s verschieben" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "Versuch, das Repository mit einem anderen Hash zu reinitialisieren" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "unbekannter Hash-Algorithmus '%s'" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s existiert bereits" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "Neu-Initialisierung: --initial-branch=%s ignoriert" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "Bestehendes verteiltes Git-Repository in %s%s neuinitialisiert\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Bestehendes Git-Repository in %s%s neuinitialisiert\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Leeres verteiltes Git-Repository in %s%s initialisiert\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Leeres Git-Repository in %s%s initialisiert\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15752,33 +15911,37 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<Vorlagenverzeichnis>] [--" "shared[=<Berechtigungen>]] [<Verzeichnis>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "Berechtigungen" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "angeben, dass das Git-Repository mit mehreren Benutzern geteilt wird" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "den Namen des initialen Branches überschreiben" + +#: builtin/init-db.c:564 msgid "hash" msgstr "Hash" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "den zu verwendenen Hash-Algorithmus angeben" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "kann Verzeichnis %s nicht erstellen" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "kann nicht in Verzeichnis %s wechseln" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15787,7 +15950,7 @@ msgstr "" "%s (oder --work-tree=<Verzeichnis>) nicht erlaubt ohne Spezifizierung von %s " "(oder --git-dir=<Verzeichnis>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "Kann nicht auf Arbeitsverzeichnis '%s' zugreifen." @@ -17567,7 +17730,7 @@ msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler" msgid "read object names from the standard input" msgstr "Objektnamen von der Standard-Eingabe lesen" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "nicht löschen, nur anzeigen" @@ -17602,357 +17765,384 @@ msgstr "" "git pack-objects [<Optionen>...] <Basis-Name> [< <Referenzliste> | < " "<Objektliste>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "Ungültiges CRC für gepacktes Objekt %s." -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "Fehlerhaftes gepacktes Objekt für %s." -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "Rekursiver Unterschied für Objekt %s festgestellt." -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "%u Objekte geordnet, %<PRIu32> erwartet." -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" "Deaktiviere Schreiben der Bitmap, Pakete wurden durch pack.packSizeLimit\n" "aufgetrennt." -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Schreibe Objekte" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "Konnte '%s' nicht lesen" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "Schrieb %<PRIu32> Objekte während %<PRIu32> erwartet waren." -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" "Deaktiviere Schreiben der Bitmap, da einige Objekte nicht in eine Pack-" "Datei\n" "geschrieben wurden." -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "\"delta base offset\" Ãœberlauf in Paket für %s" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "\"delta base offset\" liegt außerhalb des gültigen Bereichs für %s" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Zähle Objekte" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "Konnte Kopfbereich von Objekt '%s' nicht parsen." -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "Objekt %s kann nicht gelesen werden." -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "Inkonsistente Objektlänge bei Objekt %s (%<PRIuMAX> vs %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "ungünstiges Packet - Speicher voll" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Delta-Kompression verwendet bis zu %d Threads." -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "Konnte keine Objekte packen, die von Tag %s erreichbar sind." -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Komprimiere Objekte" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "Inkonsistenz mit der Anzahl von Deltas" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" +"Wert für uploadpack.blobpackfileuri muss in der Form '<Objekt-Hash> <Pack-" +"Hash> <URI>' vorliegen ('%s' erhalten)" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" +"Objekt bereits in einem anderen uploadpack.blobpackfileuri konfiguriert " +"('%s' erhalten)" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" " %s" msgstr "" -"Erwartete Randobjekt-ID, erhielt nutzlose Daten:\n" +"erwartete Randobjekt-ID, erhielt nutzlose Daten:\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" " %s" msgstr "" -"Erwartete Objekt-ID, erhielt nutzlose Daten:\n" +"erwartete Objekt-ID, erhielt nutzlose Daten:\n" " %s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" -msgstr "Ungültiger Wert für --missing." +msgstr "ungültiger Wert für --missing" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" -msgstr "Kann Paketindex nicht öffnen." +msgstr "kann Paketindex nicht öffnen" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" -msgstr "Loses Objekt bei %s konnte nicht untersucht werden." +msgstr "loses Objekt bei %s konnte nicht untersucht werden" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" -msgstr "Konnte loses Objekt nicht erzwingen." +msgstr "konnte loses Objekt nicht erzwingen" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" -msgstr "'%s' ist kein Commit." +msgstr "'%s' ist kein Commit" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" -msgstr "Ungültiger Commit '%s'." +msgstr "ungültiger Commit '%s'" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" -msgstr "Konnte jüngste Objekte nicht hinzufügen." +msgstr "konnte neuere Objekte nicht hinzufügen" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" -msgstr "Nicht unterstützte Index-Version %s" +msgstr "nicht unterstützte Index-Version %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" -msgstr "Ungültige Index-Version '%s'" +msgstr "ungültige Index-Version '%s'" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<Version>[,<Offset>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "" "die Index-Datei des Paketes in der angegebenen Indexformat-Version schreiben" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "maximale Größe für jede ausgegebene Paketdatei" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "geliehene Objekte von alternativem Objektspeicher ignorieren" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "gepackte Objekte ignorieren" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "Paketfenster durch Objekte begrenzen" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "" "Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher begrenzen" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "" "maximale Länge der erlaubten Differenzverkettung im resultierenden Paket" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "existierende Unterschiede wiederverwenden" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "existierende Objekte wiederverwenden" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "OFS_DELTA Objekte verwenden" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "" "Threads bei der Suche nach den besten Ãœbereinstimmungen bei Unterschieden " "verwenden" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "keine leeren Pakete erzeugen" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "Argumente bezüglich Commits von der Standard-Eingabe lesen" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "die Objekte zu solchen, die noch nicht gepackt wurden, begrenzen" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "Objekte einschließen, die von jeder Referenz erreichbar sind" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "" "Objekte einschließen, die von Einträgen des Reflogs referenziert werden" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "Objekte einschließen, die vom Index referenziert werden" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "Paket in die Standard-Ausgabe schreiben" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "Tag-Objekte einschließen, die auf gepackte Objekte referenzieren" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "nicht erreichbare Objekte behalten" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "nicht erreichbare lose Objekte packen" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "nicht erreichbare Objekte entpacken, die neuer als <Zeit> sind" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "den \"sparse\" Algorithmus zur Bestimmung der Erreichbarkeit benutzen" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "dünnere Pakete erzeugen" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "" "Pakete geeignet für Abholung mit unvollständiger Historie (shallow) erzeugen" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "Pakete ignorieren, die .keep Dateien haben" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "dieses Paket ignorieren" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "Komprimierungsgrad für Paketierung" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "keine künstlichen Vorgänger-Commits (\"grafts\") verbergen" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "" "Bitmap-Index (falls verfügbar) zur Optimierung der Objektzählung benutzen" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "Bitmap-Index zusammen mit Pack-Index schreiben" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "Bitmap-Index schreiben, wenn möglich" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "Behandlung für fehlende Objekte" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "" "keine Objekte aus Packdateien von partiell geklonten Remote-Repositories " "packen" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "Delta-Islands bei Delta-Kompression beachten" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "Protokoll" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "" +"jegliche konfigurierte uploadpack.blobpackfileuri für dieses Protkoll " +"ausschließen" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "Tiefe für Verkettung von Unterschieden %d ist zu tief, erzwinge %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "pack.deltaCacheLimit ist zu hoch, erzwinge %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" "--max-pack-size kann nicht für die Erstellung eines Pakets für eine " "Ãœbertragung\n" "benutzt werden." -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "Minimales Limit für die Paketgröße ist 1 MiB." -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "" "--thin kann nicht benutzt werden, um ein indizierbares Paket zu erstellen." -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable und --unpack-unreachable sind inkompatibel" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "Kann --filter nicht ohne --stdout benutzen." -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Objekte aufzählen" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -19292,7 +19482,7 @@ msgstr "Spule %s vor zu %s.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <Git-Verzeichnis>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -19324,7 +19514,7 @@ msgstr "" "setzen Sie die Konfigurationsvariable 'receive.denyCurrentBranch' auf\n" "'refuse'." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -19345,11 +19535,11 @@ msgstr "" "\n" "Um diese Meldung zu unterdrücken, setzen Sie die Variable auf 'refuse'." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "weniger Ausgaben" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Sie müssen ein Repository angeben." @@ -20931,6 +21121,14 @@ msgstr "'%s' ist keine gültige Referenz." msgid "cannot find commit %s (%s)" msgstr "kann Commit %s (%s) nicht finden" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "Hash-Algorithmus" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "Unbekannter Hash-Algorithmus" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20986,55 +21184,61 @@ msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <Optionen>" #: builtin/sparse-checkout.c:64 msgid "this worktree is not sparse (sparse-checkout file may not exist)" msgstr "" -"Dieses Arbeitsverzeichnis ist nicht partiell (Datei für partieller Checkout " -"existiert eventuell nicht)." +"dieses Arbeitsverzeichnis ist nicht partiell (Datei für partieller Checkout " +"existiert eventuell nicht)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "" "Fehler beim Erstellen eines Verzeichnisses für Datei eines partiellen " "Checkouts" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "" +"Repository-Format konnte nicht erweitert werden, um worktreeConfig zu " +"aktivieren" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "Einstellung für extensions.worktreeConfig konnte nicht gesetzt werden" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" -msgstr "Initialisiere den partiellen Checkout im Cone-Modus" +msgstr "initialisiere den partiellen Checkout im Cone-Modus" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "Fehler beim Öffnen von '%s'" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "konnte Pfad '%s' nicht normalisieren" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <Muster>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "konnte Anführungszeichen von C-Style Zeichenkette '%s' nicht entfernen" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "konnte die existierenden Muster des partiellen Checkouts nicht laden" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "Muster von der Standard-Eingabe lesen" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "Fehler während der Aktualisierung des Arbeitsverzeichnisses." @@ -21757,12 +21961,38 @@ msgstr "Ausgaben beim Setzen der URL eines Submoduls unterdrücken" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <Pfad> <neue URL>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "Standard-Tracking-Branch auf master setzen" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "Standard-Tracking-Branch setzen" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) [<Pfad>]" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <Branch> <Pfad>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "Option --branch oder --default erforderlich" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch und --default schließen sich gegenseitig aus" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s unterstützt kein --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' ist kein gültiger Unterbefehl von submodule--helper" @@ -22418,206 +22648,198 @@ msgstr "git worktree remove [<Optionen>] <Arbeitsverzeichnis>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <Pfad>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "Fehler beim Löschen von '%s'" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "Lösche worktrees/%s: kein gültiges Verzeichnis" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "Lösche worktrees/%s: gitdir-Datei existiert nicht" +msgid "not a valid directory" +msgstr "kein gültiges Verzeichnis" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "Lösche worktrees/%s: konnte gitdir-Datei (%s) nicht lesen" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "gitdir-Datei existiert nicht" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "" -"Lösche worktrees/%s: read() zu kurz (%<PRIuMAX> Bytes erwartet, %<PRIuMAX> " -"gelesen)" +msgid "unable to read gitdir file (%s)" +msgstr "konnte gitdir-Datei nicht lesen (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "Lösche worktrees/%s: ungültige gitdir-Datei" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "read() zu kurz (%<PRIuMAX> Bytes erwartet, %<PRIuMAX> gelesen)" -#: builtin/worktree.c:126 +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "ungültige gitdir-Datei" + +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "gitdir-Datei verweist auf nicht existierenden Ort" + +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "Lösche worktrees/%s: gitdir-Datei verweist auf nicht existierenden Ort" +msgid "Removing %s/%s: %s" +msgstr "Entferne %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "entfernte Arbeitsverzeichnisse ausgeben" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "Arbeitsverzeichnisse älter als <Zeit> verfallen lassen" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' existiert bereits" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "Konnte Arbeitsverzeichnis '%s' nicht neu hinzufügen." +msgid "unusable worktree destination '%s'" +msgstr "nicht nutzbares Ziel des Arbeitsverzeichnisses '%s'" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "'%s' ist ein fehlendes, aber gesperrtes Arbeitsverzeichnis;\n" -"Benutzen Sie 'add -f -f' zum Ãœberschrieben, oder 'unlock' und 'prune'\n" +"Benutzen Sie '%s -f -f' zum Ãœberschreiben, oder 'unlock' und 'prune'\n" "oder 'remove' zum Löschen." -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "'%s' ist ein fehlendes, aber bereits registriertes Arbeitsverzeichnis;\n" -"Benutzen Sie 'add -f' zum Ãœberschreiben, oder 'prune' oder 'remove' zum\n" +"Benutzen Sie '%s -f' zum Ãœberschreiben, oder 'prune' oder 'remove' zum\n" "Löschen." -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "Konnte Verzeichnis '%s' nicht erstellen." -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Bereite Arbeitsverzeichnis vor (neuer Branch '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "Bereite Arbeitsverzeichnis vor (setze Branch '%s' um; war bei %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Bereite Arbeitsverzeichnis vor (checke '%s' aus)" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Bereite Arbeitsverzeichnis vor (losgelöster HEAD %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" "<Branch> auschecken, auch wenn dieser bereits in einem anderen " "Arbeitsverzeichnis ausgecheckt ist" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "neuen Branch erstellen" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "Branch erstellen oder umsetzen" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "das neue Arbeitsverzeichnis auschecken" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "das neue Arbeitsverzeichnis gesperrt lassen" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "Modus zum Folgen von Branches einstellen (siehe git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "" "versuchen, eine Ãœbereinstimmung des Branch-Namens mit einem\n" "Remote-Tracking-Branch herzustellen" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B und --detach schließen sich gegenseitig aus" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "" "--[no]-track kann nur verwendet werden, wenn ein neuer Branch erstellt wird." -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "Sperrgrund" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' ist kein Arbeitsverzeichnis" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "Das Hauptarbeitsverzeichnis kann nicht gesperrt oder entsperrt werden." -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' ist bereits gesperrt, Grund: %s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' ist bereits gesperrt" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' ist nicht gesperrt" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "" "Arbeitsverzeichnisse, die Submodule enthalten, können nicht verschoben oder\n" "entfernt werden." -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "" "Verschieben erzwingen, auch wenn das Arbeitsverzeichnis geändert oder " "gesperrt ist" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' ist ein Hauptarbeitsverzeichnis" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "Konnte Zielname aus '%s' nicht bestimmen." -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "Ziel '%s' existiert bereits." - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22627,7 +22849,7 @@ msgstr "" "Benutzen Sie 'move -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n" "das Arbeitsverzeichnis." -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22636,40 +22858,40 @@ msgstr "" "Benutzen Sie 'move -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n" "das Arbeitsverzeichnis." -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "Validierung fehlgeschlagen, kann Arbeitszeichnis nicht verschieben: %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "Fehler beim Verschieben von '%s' nach '%s'" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "Fehler beim Ausführen von 'git status' auf '%s'" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "'%s' enthält geänderte oder nicht versionierte Dateien, benutzen Sie --force " "zum Löschen" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "Fehler beim Ausführen von 'git status' auf '%s'. Code: %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "" "Löschen erzwingen, auch wenn das Arbeitsverzeichnis geändert oder gesperrt " "ist" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22679,7 +22901,7 @@ msgstr "" "Benutzen Sie 'remove -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n" "das Arbeitsverzeichnis." -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22688,7 +22910,7 @@ msgstr "" "Benutzen Sie 'remove -f -f' zum Ãœberschreiben oder entsperren Sie zuerst\n" "das Arbeitsverzeichnis." -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "Validierung fehlgeschlagen, kann Arbeitsverzeichnis nicht löschen: %s" @@ -22709,32 +22931,32 @@ msgstr "das Tree-Objekt für ein Unterverzeichnis <Präfix> schreiben" msgid "only useful for debugging" msgstr "nur nützlich für Fehlersuche" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "git Version:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() ist fehlgeschlagen mit Fehler '%s' (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "Compiler Info: " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "libc Info: " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "nicht in einem Git-Repository ausgeführt - keine Hooks zum Anzeigen\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <Datei>] [-s|--suffix <Format>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22771,66 +22993,76 @@ msgstr "" "Bitte überprüfen Sie den restlichen Teil des Fehlerberichts unten.\n" "Sie können jede Zeile löschen, die Sie nicht mitteilen möchten.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "Speicherort für die Datei des Fehlerberichts angeben" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "Dateiendung im strftime-Format für den Dateinamen angeben" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "konnte vorangehende Verzeichnisse für '%s' nicht erstellen" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "System Info" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Aktivierte Hooks" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "konnte keine neue Datei unter '%s' erstellen" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "konnte nicht nach %s schreiben" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Neuer Bericht unter '%s' erstellt.\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "Fehlende 'from'-Markierungen für Submodul '%s'" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "Fehlende 'to'-Markierungen für Submodul '%s'" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "'mark' Befehl erwartet, '%s' bekommen" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "'to' Befehl erwartet, '%s' bekommen" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "Format 'Name:Dateiname' für Submodul-Rewrite-Option erwartet" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "Feature '%s' verboten in Eingabe ohne Option --allow-unsafe-features" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "Argument für --packfile muss ein gültiger Hash sein ('%s' erhalten)" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -23012,31 +23244,31 @@ msgstr "" "Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n" "nicht unterstützt." -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REVOKE wird mit cURL < 7.44.0 nicht unterstützt." -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Protokollbeschränkungen werden mit cURL < 7.19.4 nicht unterstützt." -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "Nicht unterstütztes SSL-Backend '%s'. Unterstützte SSL-Backends:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" "Konnte SSL-Backend nicht zu '%s' setzen: cURL wurde ohne SSL-Backends gebaut." -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "Konnte SSL-Backend nicht zu '%s' setzen: bereits gesetzt" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -23047,113 +23279,136 @@ msgstr "" " gefragt nach: %s\n" " umgeleitet: %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "Ungültiges Quoting beim \"push-option\"-Wert: '%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs nicht gültig: Ist das ein Git-Repository?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "Ungültige Antwort des Servers. Service erwartet, Flush-Paket bekommen" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "Ungültige Serverantwort; '%s' bekommen" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "Repository '%s' nicht gefunden." -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "Authentifizierung fehlgeschlagen für '%s'" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "konnte nicht auf '%s' zugreifen: %s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" -msgstr "Leite nach %s um" +msgstr "Umleitung nach %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "sollte kein EOF haben, wenn nicht behutsam mit EOF" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "Server sendete zustandslosen Separator" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "" -"Konnte nicht RPC-POST-Daten zurückspulen - Versuchen Sie http.postBuffer zu " +"konnte nicht RPC-POST-Daten zurückspulen - Versuchen Sie http.postBuffer zu " "erhöhen" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: ungültiges Zeichen für Zeilenlänge: %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: unerwartetes Antwort-Endpaket" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC fehlgeschlagen; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "Kann solche großen Ãœbertragungen nicht verarbeiten." -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "Kann Request nicht komprimieren; \"zlib deflate\"-Fehler %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "Kann Request nicht komprimieren; \"zlib end\"-Fehler %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "%d Bytes des Längen-Headers wurden empfangen" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "%d Bytes des Bodys werden noch erwartet" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "Dumb HTTP-Transport unterstützt keine shallow-Funktionen" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "\"fetch\" fehlgeschlagen." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "Kann SHA-1 nicht über Smart-HTTP anfordern" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "Protokollfehler: SHA-1/Referenz erwartet, '%s' bekommen" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "HTTP-Transport unterstützt nicht %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "\"git-http-push\" fehlgeschlagen" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: Verwendung: git remote-curl <Remote-Repository> [<URL>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl: Fehler beim Lesen des Kommando-Streams von Git" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl: \"fetch\" ohne lokales Repository versucht" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl: Unbekannter Befehl '%s' von Git" @@ -23741,7 +23996,7 @@ msgstr "Referenzen in einem lokales Repository auflisten" #: command-list.h:170 msgid "Git's i18n setup code for shell scripts" -msgstr "Git's i18n-Konfigurationscode für Shell-Skripte" +msgstr "Gits i18n-Konfigurationscode für Shell-Skripte" #: command-list.h:171 msgid "Common Git shell script setup code" @@ -24213,27 +24468,27 @@ msgstr "Submodul-Pfad '$displaypath': '$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "" "Die Optionen --cached und --files können nicht gemeinsam verwendet werden." -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "unerwarteter Modus $mod_dst" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_src" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_dst" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -24672,7 +24927,7 @@ msgid_plural "touched %d paths\n" msgstr[0] "%d Pfad angefasst\n" msgstr[1] "%d Pfade angefasst\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24680,7 +24935,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n" "Patch-Block direkt zum Hinzufügen zur Staging-Area markiert." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24688,7 +24943,7 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n" "Patch-Block direkt zum Hinzufügen zum Stash markiert." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24696,8 +24951,8 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n" "Patch-Block direkt zum Entfernen aus der Staging-Area markiert." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24705,8 +24960,8 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n" "Patch-Block direkt zum Anwenden markiert." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24714,13 +24969,13 @@ msgstr "" "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n" "Patch-Block direkt zum Verwerfen markiert." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "" "Fehler beim Öffnen von Editier-Datei eines Patch-Blocks zum Schreiben: %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24733,12 +24988,12 @@ msgstr "" "Um '%s' Zeilen zu entfernen, löschen Sie diese.\n" "Zeilen, die mit %s beginnen, werden entfernt.\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "Fehler beim Öffnen von Editier-Datei eines Patch-Blocks zum Lesen: %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24754,7 +25009,7 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke in dieser Datei nicht zum Commit " "vormerken" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24768,7 +25023,7 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke dieser Datei stashen\n" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht stashen" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24782,7 +25037,7 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke dieser Datei unstashen\n" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht unstashen" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24799,7 +25054,7 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht auf den Index " "anwenden" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24816,7 +25071,7 @@ msgstr "" "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht im " "Arbeitsverzeichnis verwerfen" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24831,7 +25086,7 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei verwerfen\n" "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht verwerfen" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24845,7 +25100,7 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n" "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht anwenden" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24859,7 +25114,7 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n" "d - diesen und alle weiteren Patch-Blöcke in der Datei nicht anwenden" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24883,87 +25138,92 @@ msgstr "" "e - aktuellen Patch-Block manuell editieren\n" "? - Hilfe anzeigen\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "" "Die ausgewählten Patch-Blöcke können nicht auf den Index angewendet werden!\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "ignoriere nicht zusammengeführte Datei: %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "Modusänderung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "Löschung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Ergänzung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "" "Diesen Patch-Block auf das Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "Keine anderen Patch-Blöcke verbleibend\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Ungültige Nummer: '%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Entschuldigung, nur %d Patch-Block verfügbar.\n" msgstr[1] "Entschuldigung, nur %d Patch-Blöcke verfügbar.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "Keine anderen Patch-Blöcke zum Durchsuchen\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Fehlerhafter regulärer Ausdruck für Suche %s: %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "Kein Patch-Block entspricht dem angegebenen Muster\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "Kein vorheriger Patch-Block\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "Kein folgender Patch-Block\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Entschuldigung, kann diesen Patch-Block nicht aufteilen.\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "In %d Patch-Block aufgeteilt.\n" msgstr[1] "In %d Patch-Blöcke aufgeteilt.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Entschuldigung, kann diesen Patch-Block nicht bearbeiten.\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24982,19 +25242,19 @@ msgstr "" "diff - Unterschiede zwischen HEAD und Index anzeigen\n" "add untracked - Inhalte von unversionierten Dateien zum Commit vormerken\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "-- fehlt" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "Unbekannter --patch Modus: %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "ungültiges Argument %s, erwarte --" @@ -25325,56 +25585,56 @@ msgstr "(mbox) Füge cc: hinzu: %s von Zeile '%s'\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) Füge to: hinzu: %s von Zeile '%s'\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) Füge cc: hinzu: %s von Zeile '%s'\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(body) Füge cc: hinzu: %s von Zeile '%s'\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) Konnte '%s' nicht ausführen" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) Füge %s: %s hinzu von: '%s'\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) Fehler beim Schließen der Pipe nach '%s'" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "Kann Nachricht nicht als 7bit versenden." -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "Ungültiges Transfer-Encoding" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "konnte %s nicht öffnen: %s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s: Patch enthält eine Zeile, die länger als 998 Zeichen ist" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "Lasse %s mit Backup-Suffix '%s' aus.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "Wollen Sie %s wirklich versenden? [y|N]: " @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-15 09:11+0800\n" -"PO-Revision-Date: 2020-05-17 18:49-0500\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-26 10:11-0500\n" "Last-Translator: christopher.diaz.riv@gmail.com\n" "Language-Team: CodeLabora <codelabora@gmail.com>\n" "Language: es\n" @@ -111,21 +111,21 @@ msgstr[1] "agregadas %d rutas\n" msgid "ignoring unmerged: %s" msgstr "ignorando lo no fusionado: %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Solo cambiaron archivos binarios.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "Sin cambios.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Actualización del parche" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "Revisión de diff" @@ -194,11 +194,11 @@ msgstr "selecciona un objeto numerado" msgid "(empty) select nothing" msgstr "(vacÃo) selecciona nada" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Comandos ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Ahora que" @@ -215,7 +215,7 @@ msgstr "no rastreado" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "ruta" @@ -224,27 +224,32 @@ msgstr "ruta" msgid "could not refresh index" msgstr "no se pudo refrescar el index" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Adiós.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "¿Cambio de modo de stage [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "¿Aplicar stage al borrado [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "¿Agregar al stage [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "¿Aplicar stage a este hunk [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -252,7 +257,7 @@ msgstr "" "Si el parche aplica limpiamente, el hunk editado sera marcado inmediatamente " "para el área de stage." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -267,22 +272,27 @@ msgstr "" "d - no aplicar stage a este hunk o a ninguno de los posteriores en este " "archivo\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "¿Aplicar stash al cambio de modo [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "¿Aplicar stash al borrado [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "¿Agregar al stash [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "¿Aplicar stash a este hunk [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -290,7 +300,7 @@ msgstr "" "Si el parche aplica limpiamente, el hunk editado sera marcado inmediatamente " "para aplicar stash." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -304,22 +314,27 @@ msgstr "" "a - aplicar stash a este hunk y a todos los posteriores en el archivo\n" "d - no aplicar stash a este hunk o ninguno de los posteriores en el archivo\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "¿Sacar cambio de modo del stage [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "¿Sacar borrado del stage [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "¿Quitar adición al stage [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "¿Sacar este hunk del stage [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -327,7 +342,7 @@ msgstr "" "Si el parche aplica limpiamente, el hunk editado sera marcado inmediatamente " "para sacar del área de stage." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -342,22 +357,27 @@ msgstr "" "d - no sacar del area de stage este hunk o ninguno de los posteriores en el " "archivo\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "¿Aplicar cambio de modo al Ãndice [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "¿Aplicar borrado al Ãndice [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "¿Aplicar adición al Ãndice [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "¿Aplicar este hunk al Ãndice [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -365,7 +385,7 @@ msgstr "" "Si el parche aplica de forma limpia, el hunk editado sera marcado " "inmediatamente para aplicar." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -379,25 +399,31 @@ msgstr "" "a - aplicar este hunk y todos los posteriores en el archivo\n" "d - no aplicar este hunko ninguno de los posteriores en el archivo\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "¿Descartar cambio de modo del árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "¿Descartar borrado del árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "¿Descartar adición del árbol de trabajo [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "¿Descartar este hunk del árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -405,7 +431,7 @@ msgstr "" "Si el parche aplica de forma limpia, el hunk editado sera marcado " "inmediatamente para descarte." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -419,24 +445,29 @@ msgstr "" "a - descartar este hunk y todos los posteriores en este archivo\n" "d - no descartar este hunk o ninguno de los posteriores en el archivo\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "¿Descartar cambio de modo del Ãndice y el árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "¿Descartar borrado del Ãndice y el árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "¿Descartar adición del Ãndice y el árbol de trabajo [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "¿Descartar este hunk del Ãndice y el árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -450,24 +481,29 @@ msgstr "" "a - descartar este hunk y todos los posteriores en este archivo\n" "d - no descartar este hunk o ninguno posterior en el archivo\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "¿Aplicar cambio de modo para el Ãndice y el árbol de trabajo [y,n,q,a,d" "%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "¿Aplicar borrado al Ãndice y al árbol de trabajo [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "¿Aplicar adición al Ãndice y al árbol de trabajo [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "¿Aplicar este hunk al Ãndice y árbol de trabajo [y,n,q,a,d,/%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -481,7 +517,7 @@ msgstr "" "a - aplicar este hunk y todos los posteriores en el archivo\n" "d - no aplicar este hunk o ninguno de los siguientes en este archivo\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -495,34 +531,34 @@ msgstr "" "a - aplicar este hunk y todos los posteriores en el archivo\n" "d - no aplicar este hunk o ninguno de los siguientes en este archivo\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "no se puede analizar hunk header '%.*s'" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "no se puede analizar hunk header '%.*s'" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "no se puede analizar diff" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "no se pudo analizar diff a colores" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "falló al ejecutar '%s'" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "output de interactive.diffFilter no concuerda" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -530,7 +566,7 @@ msgstr "" "Tu filtro tiene que mantener correspondencia de uno a uno\n" "entre las lÃneas de entrada y salida." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -539,7 +575,7 @@ msgstr "" "se esperaba lÃnea de contexto #%d en\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -552,11 +588,11 @@ msgstr "" "\tno acaba con:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "Modo de edición manual de hunk -- vea abajo para una guÃa rápida.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -570,7 +606,7 @@ msgstr "" "Lineas comenzando con %c serán eliminadas.\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -580,11 +616,11 @@ msgstr "" "editar nuevamente. Si todas las lÃneas del hunk son eliminadas, entonces \n" "la edición es abortada y el hunk queda sin cambios.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "no se puede analizar hunk header" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "falló 'git apply --cached'" @@ -600,26 +636,26 @@ msgstr "falló 'git apply --cached'" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "Tu hunk editado no aplica. ¿Editar nuevamente (¡decir \"no\" descarta!) [y/" "n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "¡Los hunks seleccionados no aplican al Ãndice!" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "¿Aplicarlos al árbol de trabajo de todas maneras? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Nada fue aplicado.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -641,69 +677,69 @@ msgstr "" "e - editar manualmente el hunk actual\n" "? - imprimir ayuda\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "No el anterior hunk" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "No el siguiente hunk" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "No hay más pedazos para el ir" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "¿a que hunk ir (<enter> para ver más)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "¿a que hunk ir? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Numero inválido: '%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Lo siento, solo %d hunk disponible." msgstr[1] "Lo siento, solo %d hunks disponibles." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "No hay más pedazos para buscar" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "¿buscar para regexp? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Regexp para la búsqueda mal formado %s: %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "No hay hunks que concuerden con el patrón entregado." -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Perdón, no se puede dividir este pedazo" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "Cortar en %d hunk." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Perdón, no se puede editar este pedazo" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "falló 'git apply'" @@ -1404,7 +1440,7 @@ msgstr "asegurar que al menos concuerden <n> lÃneas del contexto concuerden" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "acción" @@ -1436,7 +1472,7 @@ msgid "allow overlapping hunks" msgstr "permitir solapamiento de hunks" #: apply.c:5025 builtin/add.c:323 builtin/check-ignore.c:22 -#: builtin/commit.c:1366 builtin/count-objects.c:98 builtin/fsck.c:774 +#: builtin/commit.c:1366 builtin/count-objects.c:98 builtin/fsck.c:775 #: builtin/log.c:2186 builtin/mv.c:123 builtin/read-tree.c:128 msgid "be verbose" msgstr "ser verboso" @@ -1498,7 +1534,7 @@ msgstr "ruta no válida UTF-8: %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "ruta muy larga (%d chars, SHA1: %s): %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "error al desinflar (%d)" @@ -1568,8 +1604,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "anteponer prefijo a cada ruta en el archivo" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1794,10 +1830,10 @@ msgid "--reverse and --first-parent together require specified latest commit" msgstr "" "--reverse y --first-parent juntos requieren especificar el último commit" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "falló la configuración del camino de revisión" @@ -1968,84 +2004,88 @@ msgstr "'%s' ya ha sido marcado en '%s'" msgid "HEAD of working tree %s is not updated" msgstr "HEAD del árbol de trabajo %s no está actualizada" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' no se ve como un archivo bundle v2" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "largo del algoritmo hash desconocido" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "header no reconocido %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "no se pudo abrir '%s'" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Al repositorio le falta estos commits prerrequisito:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "se necesita un repositorio para verificar un bundle" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "El bundle contiene esta referencia:" msgstr[1] "El bundle contiene estas %d referencias:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "El bundle registra una historia completa." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "El bundle requiere esta referencia:" msgstr[1] "El bundle requiere estas %d referencias:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "incapaz de duplicar bundle descriptor" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "No se pudo crear los pack-objetcts" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "pack-objects murió" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list murió" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "referencia '%s' es excluida por las opciones de rev-list" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "argumento no reconocido: %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "Rechazando crear un bundle vacÃo." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "no se puede crear '%s'" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "index-pack murió" @@ -2054,277 +2094,269 @@ msgstr "index-pack murió" msgid "invalid color value: %.*s" msgstr "color inválido: %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "archivo commit-graph es muy pequeño" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "firma %X en commit-graph no concuerda con firma %X" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "versión de commit-graph %X no concuerda con versión %X" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "versión de hash de commit-graph %X no concuerda con versión %X" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "falta tabla de lookup del chunk en commit-graph; el archivo puede estar " "incompleto" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "offset del chunk de commit-graph inapropiado %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "id de chunk de commit-graph %08x parece tener múltiples tiempos" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "commit-graph no tiene una chunk base de graphs" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "cadena commit-graph no concuerda" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "cadena de commit-graph inválida: lÃnea '%s' no es un hash" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "no es posible encontrar los archivos commit-graph" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "posición de commit inválida. commit-graph está probablemente corrupto" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "no se pudo encontrar commit %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "no es posible analizar el commit %s" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "Escribiendo cambios de ruta del Ãndice de filtros Bloom" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "Escribiendo cambios de ruta de datos de filtros Bloom" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "incapaz de obtener el tipo de objeto: %s" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Cargando commits conocidos en commit graph" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "Expandiendo commits alcanzables en commit graph" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Limpiando marcas de commits en commit graph" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Calculando números de generación de commit graph" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "Calculando números de generación de commit graph" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "Recolectando commits referenciados" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Encontrando commits para commit graph en %d pack" msgstr[1] "Encontrando commits para commit graph en %d packs" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "error agregando pack %s" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "error abriendo index para %s" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "Encontrando commits para commit graph de %d ref" -msgstr[1] "Encontrando commits para commit graph de %d refs" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "id de objeto commit: %s inválido" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "Encontrando commits para commit graph entre los objetos empaquetados" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Contando commits distintos en commit graph" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Encontrando esquinas extra en commit graph" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "falló al escribir el número correcto de ids de base graph" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "no se pudo crear directorios principales para %s" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "no es posible crear un una capa de gráfico temporal" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "no se pudo poner permisos a '%s'" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Escribiendo commit graph en %d paso" msgstr[1] "Escribiendo commit graph en %d pasos" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "no se pudo abrir la cadena de archivos commit-graph" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "no se pudo renombrar el archivo base commit-graph" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "falló al renombrar el archivo temporal commit-graph" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "Escaneando commits fusionados" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "id de commit duplicado inesperado %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "Fusionando commit-graph" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "el formato de gráficos de commit no pudede escribir %d commits" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "demasiados commits para escribir el gráfico" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "el archivo de commit-graph tiene checksums incorrectos y probablemente está " "corrupto" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "commit-graph tiene un orden de OID incorrecto: %s luego %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "commit-graph tiene un valor fanout incorrecto: fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "falló al analizar commit %s para commit-graph" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Verificando commits en commit graph" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "falló al analizar el commit %s de la base de datos de objetos para commit-" "graph" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "árbol raÃz OID para commit %s en commit-graph es %s != %s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "lista padre de commit-graph para commit %s es muy larga" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "padre de commit-graph para %s es %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "lista padre de commit-graph para commit %s termina antes" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" msgstr "" "commit-graph ha generado número cero para %s, pero no-cero para los demás" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" msgstr "" "commit-graph tiene generación no-cero para %s, pero cero para los demás" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "generación commit-graph para commit %s es %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2361,27 +2393,27 @@ msgstr "" "Apapa este mensaje ejecutando\n" "\"git config advice.graftFileDeprecated false\"" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "Commit %s tiene una firma GPG no confiable, pretendidamente por %s." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "Commit %s tiene una mala firma GPG pretendidamente por %s." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Commit %s no tiene una firma GPG." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "El Commit %s tiene una buena firma GPG por %s\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2573,7 +2605,7 @@ msgstr "valor malformado para %s: %s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "debe ser uno de nothing, matching, simple, upstream o current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "nivel de compresión de pack erróneo %d" @@ -2723,72 +2755,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "servidor no soporta '%s'" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "servidor no soporta feature '%s'" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "se espera flush tras capacidades" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "ignorando capacidades tras primera lÃnea '%s'" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "error de protocolo: capacidades imprevistas^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "error de protocolo: sha-1 superficial esperado, se obtuvo '%s'" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "el repositorio en el otro final no puede ser superficial" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "paquete inválido" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "error de protocolo: '%s' inesperado" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "formato de objeto desconocido '%s' ha sido provisto por el servidor" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "respuesta de referencias ls-refs inválida: %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "flush esperado tras listado de refs" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "se esperaba un paquete final luego del ref listing" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "protocolo '%s' no es soportado" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "no es posible configurar SO_KEEPALIVE en el socket" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "Revisando %s... " -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "no se puede revisar %s (puerto %s) (%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2797,7 +2838,7 @@ msgstr "" "hecho.\n" "Conectando a %s (puerto %s) ... " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2807,74 +2848,74 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "hecho." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "no es posible revisar %s (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "puerto desconocido %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "hostname extraño '%s' bloqueado" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "puerto extraño '%s' bloqueado" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "no se puede comenzar proxy %s" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "" "no hay ruta especificada; vea 'git help pull' para sintaxis de url válidas" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "variante 'simple' de ssh no soporta -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "variante 'simple' de ssh no soporta -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "variante ssh 'simple' no soporta configurar puerto" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "ruta extraña '%s' bloqueada" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "no es posible hacer fork" -#: connected.c:107 builtin/fsck.c:208 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Verificando conectividad" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "No se pudo correr 'git rev-list'" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "falló escribir a rev-list" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "falló al cerrar la entrada standard de rev-list" @@ -3137,17 +3178,17 @@ msgstr "" "No es un repositorio git. Use --no-index para comparar dos paths fuera del " "árbol de trabajo" -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " Falló al analizar dirstat porcentaje de corte '%s'\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " parámetro '%s' de dirstat desconocido\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3155,7 +3196,7 @@ msgstr "" "opción de color tiene que ser una de 'no', 'default', 'blocks', 'zebra', " "'dimmed_zebra', 'plain'" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3165,7 +3206,7 @@ msgstr "" "change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-" "change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3173,13 +3214,13 @@ msgstr "" "color-moved-ws: allow-indentation-change no puede ser combinado con otros " "modos de espacios en blanco" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" "Valor para la variable de configuración 'diff.submodule' desconocido: '%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3188,35 +3229,35 @@ msgstr "" "Errores en la variable de config 'diff.dirstat' encontrados:\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "diff externo murió, deteniendo en %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-only, --name-status, --check y -s son mutuamente exclusivas" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-G, -S y --find-object son mutuamente exclusivas" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow requiere exactamente un pathspec" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "valor --stat inválido: %s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s espera un valor numérico" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3225,42 +3266,42 @@ msgstr "" "Falló al analizar parámetro de opción --dirstat/-X:\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "cambio de clase desconocido '%c' en --diff-filter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "valor desconocido luego de ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "no se puede resolver '%s'" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s espera forma <n>/<m>" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s esperaba un char, se obtuvo '%s'" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "mal argumento --color-moved: %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "modo inválido '%s' en --color-moved-ws" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3268,154 +3309,154 @@ msgstr "" "opción diff-algorithm acepta \"myers\", \"minimal\", \"patience\" e " "\"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "argumento inválido para %s" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "falló al analizar parámetro de opción --submodule: '%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "mal argumento --word-diff: %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Opciones de formato de salida para diff" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "generar parche" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "suprimir salida de diff" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "genera diffs con <n> lÃneas de contexto" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "genera el diff en formato raw" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "sinónimo para '-p --stat'" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "sinónimo para '-p --stat'" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "--stat amigable para máquina" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "mostrar solo la última lÃnea para --stat" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<param1,param2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" "muestra la distribución de cantidades de cambios relativa para cada " "subdirectorio" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "sinónimo para --dirstat=cumulative" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "sinonimo para --dirstat=archivos,param1,param2..." -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "advierte si cambios introducen conflictos de markers o errores de espacios " "en blanco" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "" "resumen condensado de creaciones, cambios de nombres y cambios de modos" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "mostrar solo nombres de archivos cambiados" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "mostrar solo nombres y estados de archivos cambiados" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<ancho>[,<nombre-ancho>[,<cantidad>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "generar diffstat" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<ancho>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "genera diffstat con un ancho dado" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "genera diffstat con un nombre de ancho dado" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "genera diffstat con un ancho de graph dado" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<cantidad>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "genera diffstat con lÃneas limitadas" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "genera un resumen compacto de diffstat" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "muestra un diff binario que puede ser aplicado" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "" "mostrar todo un pre- y post-image de nombres de objetos en las lÃneas \"index" "\"" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "mostrar diff colorido" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<tipo>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3423,7 +3464,7 @@ msgstr "" "resaltar errores de espacios en blanco en las lÃneas 'context', 'old' o " "'new' del diff" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3431,89 +3472,89 @@ msgstr "" "no consolidar los pathnames y usar NULs como terminadores de campos en --raw " "o --numstat" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<prefijo>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "mostrar el prefijo de fuente dado en lugar de \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "mostrar el prefijo de destino en lugar de \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "anteponer un prefijo adicional a cada lÃnea mostrada" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "no mostrar ningún prefijo de fuente o destino" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "" "muestra el contexto entre hunks de diff hasta el número especificado de " "lÃneas" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<char>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "especifica el char para indicar una nueva lÃnea en lugar de '+'" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "especifica el char para indicar una lÃnea vieja en lugar de '-'" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "especifica el char para indicar un contexto en lugar de ' '" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Opciones de diff rename" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "descomponer los cambios de reescritura en pares de borrar y crear" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "detectar renombrados" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "omite la preimage para borrados" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "detectar copias" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "usa archivos no modificados como fuente para encontrar copias" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "deshabilita detección de renombres" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "usa blobs vacÃos como fuente de renombre" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "continua listando el historial de un archivo más allá de renombres" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3521,155 +3562,155 @@ msgstr "" "previene detección de renombre/copias si el número de objetivos para " "renombres/copias excede el lÃmite dado" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Opciones de algoritmos de diff" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "produce el diff más pequeño posible" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "ignorar espacios en blanco cuando comparando lÃneas" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "ignorar cambios en la cantidad de lÃneas en blanco" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "ignorar cambios en espacios en blanco en EOL" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "ignora carrier-return al final de la lÃnea" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "ignora cambios cuyas lÃneas son todas en blanco" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "heurÃstica para cambiar los lÃmites de hunk para una fácil lectura" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "genera un diff usando algoritmo \"patience diff\"" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "genera un diff usando algoritmo \"histogram diff\"" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<algoritmo>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "escoge un algoritmo para diff" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<texto>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "genera un diff usando algoritmo \"anchored diff\"" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<modo>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "" "muestra diff por palabras usando <modo> para delimitar las palabras cambiadas" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<regex>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "usa <regex> para decidir que palabra es" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "equivalente a --word-diff=color --word-diff-regex=<regex>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "lÃneas movidas de código están coloreadas diferente" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "como espacios en blanco son ignorados en --color-moved" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "Otras opciones de diff" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "cuando ejecutado desde un subdir, excluye cambios del exterior y muestra " "paths relativos" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "tratar todos los archivos como texto" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "cambia dos inputs, invierte el diff" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "termina con 1 si hubieron diferencias, de lo contrario con 0" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "deshabilita todo el output del programa" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "permite la ejecución de un diff helper externo" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" "ejecuta filtros de conversión de texto externos cuando comparando binarios" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<cuando>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "ignorar cambios a submódulos en la generación de diff" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<formato>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "especifica como son mostradas las diferencias en submódulos" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "ocultar entradas 'git add -N' del index" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "trata entradas 'git add -N' como reales en el index" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<string>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" @@ -3677,7 +3718,7 @@ msgstr "" "busca por diferencias que cambien el número de ocurrencias para el string " "especificado" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -3685,23 +3726,23 @@ msgstr "" "busca por diferencias que cambien el número de ocurrencias para el regex " "especificado" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "mostrar todos los cambios en el changeset con -S o -G" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "tratar <string> en -S como una expresión regular extendida de POSIX" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "controlar el orden en el que los archivos aparecen en la salida" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<id-objeto>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" @@ -3709,33 +3750,33 @@ msgstr "" "busca por diferencias que cambien el número de ocurrencias para el objeto " "especificado" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "selecciona archivos por tipo de diff" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<archivo>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "Output a un archivo especÃfico" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "detección de cambio de nombre inexacta fue saltada por haber muchos archivos." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "" "solo se encontraron copias de rutas modificadas por haber muchos archivos." -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3752,61 +3793,61 @@ msgstr "falló al leer orden de archivos '%s'" msgid "Performing inexact rename detection" msgstr "Realizando una detección de cambios de nombre inexacta" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "" "ruta especificada '%s' no concordó con ningún archivo(s) conocido por git" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "patrón desconocido: '%s'" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "patrón negativo no reconocido: '%s'" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "" "tu archivo sparse-checkout tal vez tenga errores: patrón '%s' está repetido" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "deshabilitar coincidencia de patrónes cono" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "no se puede usar %s como archivo de exclusión" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "no se pudo abrir el directorio '%s'" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "falló al conseguir la información y nombre del kernel" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "untracked cache está desactivado en este sistema o ubicación" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "archivo Ãndice corrompido en repositorio %s" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "no se pudo crear directorios para %s" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "no se pudo migrar el directorio git de '%s' a '%s'" @@ -3816,11 +3857,11 @@ msgstr "no se pudo migrar el directorio git de '%s' a '%s'" msgid "hint: Waiting for your editor to close the file...%c" msgstr "ayuda: Esperando que tu editor cierre el archivo ...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "Filtrando contenido" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "no se pudo establecer el archivo '%s'" @@ -3840,228 +3881,246 @@ msgstr "no se pudo configurar GIT_DIR a '%s'" msgid "too many args to run %s" msgstr "demasiados argumentos para correr %s" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: lista poco profunda esperada" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "" "git fetch-pack: se esperaba un flush packet luego de la lista superficial" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack: se esperaba ACK/NAK, se obtuvo un flush packet" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: se esperaba ACK/NAK, se obtuvo '%s'" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "no se puede escribir al remoto" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc requiere multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "lÃnea poco profunda inválida: %s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "lÃnea superficial inválida: %s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "objeto no encontrado: %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "error en objeto: %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "superficie no encontrada: %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "se esperaba shallow/unshallow, se obtuvo %s" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "se obtuvo %s %d %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "commit inválido %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "rindiéndose" -#: fetch-pack.c:476 progress.c:340 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "listo" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "se obtuvo %s (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "Marcando %s como completa" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "ya se tiene %s (%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack: no se puede extraer un demultiplexor de banda lateral" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "error de protocolo: paquete de header erróneo" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack: no se puede quitar %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s falló" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "error en demultiplexor de banda lateral" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "Versión de servidor es %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "El servidor soporta %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "El servidor no soporta clientes superficiales" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "El servidor no soporta --shalow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "El servidor no soporta --shalow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "El servidor no soporta --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "El servidor no soporta el formato de objetos de este repositorio" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "no hay commits comunes" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack: fetch falló." #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "algoritmos no compatibles: cliente %s; servidor %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "servidor no soporta el algoritmo '%s'" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "El servidor no soporta peticiones superficiales" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "El servidor soporta filtro" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "no se puede escribir request al remoto" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "error leyendo sección header '%s'" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "se esperaba '%s', se recibió '%s'" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "lÃnea de confirmación inesperada: '%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "error procesando acks: %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "espere que el packfile sea mandado luego del 'listo'" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "espere que ninguna otra sección sea enviada luego del 'listo'" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "error procesando información superficial: %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "se esperaba wanted-ref, se obtuvo '%s'" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "wanted-ref inesperado: '%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "error procesando refs deseadas: %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: se espera un paquete final de respuesta" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "no concuerda el head remoto" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "remoto no mando todos los objetos necesarios" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "no existe ref remota %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "El servidor no permite solicitudes de objetos inadvertidos %s" @@ -4097,7 +4156,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s': no es posible leer %s" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4241,16 +4300,16 @@ msgstr[1] "" "\n" "Los comandos más similares son" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git versión [<opciones>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4349,6 +4408,12 @@ msgstr "se espera algo luego de combine:" msgid "multiple filter-specs cannot be combined" msgstr "no se pueden combinar múltiples tipos de especificaciones de filtro" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "" +"no es posible actualizar el formato del repositorio para soportar clonado " +"parcial" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4588,7 +4653,7 @@ msgstr "renombrar" msgid "renamed" msgstr "renombrado" -#: merge-recursive.c:1577 merge-recursive.c:2472 merge-recursive.c:3117 +#: merge-recursive.c:1577 merge-recursive.c:2484 merge-recursive.c:3129 #, c-format msgid "Refusing to lose dirty file at %s" msgstr "Rehusando perder el archivo sucio en %s" @@ -4630,14 +4695,14 @@ msgstr "" msgid " (left unresolved)" msgstr " (dejado sin resolver)" -#: merge-recursive.c:1793 +#: merge-recursive.c:1805 #, c-format msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s" msgstr "" "CONFLICTO (renombrar/renombrar): Renombrar %s->%s en %s. Renombrar %s->%s en " "%s" -#: merge-recursive.c:2056 +#: merge-recursive.c:2068 #, c-format msgid "" "CONFLICT (directory rename split): Unclear where to place %s because " @@ -4648,7 +4713,7 @@ msgstr "" "colocar %s porque el directorio %s fue renombrado a otros múltiples " "directorios, sin ningún que contenga la mayorÃa de archivos." -#: merge-recursive.c:2088 +#: merge-recursive.c:2100 #, c-format msgid "" "CONFLICT (implicit dir rename): Existing file/dir at %s in the way of " @@ -4658,7 +4723,7 @@ msgstr "" "existente en %s se interpone con el cambio de nombres implÃcito, poniendo " "la(s) siguiente(s) ruta(s) aquÃ: %s." -#: merge-recursive.c:2098 +#: merge-recursive.c:2110 #, c-format msgid "" "CONFLICT (implicit dir rename): Cannot map more than one path to %s; " @@ -4667,7 +4732,7 @@ msgstr "" "CONFLICTO (cambio de nombre implÃcito): No se puede mapear más de una ruta " "para %s; cambio de nombre implÃcito intentó poner estas rutas: %s" -#: merge-recursive.c:2190 +#: merge-recursive.c:2202 #, c-format msgid "" "CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-" @@ -4676,7 +4741,7 @@ msgstr "" "CONFLICTO (renombrar/renombrar): Renombrar directorio %s->%s en %s. " "Renombrar directorio %s->%s en %s" -#: merge-recursive.c:2435 +#: merge-recursive.c:2447 #, c-format msgid "" "WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was " @@ -4685,52 +4750,52 @@ msgstr "" "PELIGRO: Evitando aplicar %s -> %s renombrado a %s, porque %s mismo fue " "renombrado." -#: merge-recursive.c:2961 +#: merge-recursive.c:2973 #, c-format msgid "cannot read object %s" msgstr "no se pudo leer el objeto %s" -#: merge-recursive.c:2964 +#: merge-recursive.c:2976 #, c-format msgid "object %s is not a blob" msgstr "objeto %s no es un blob" -#: merge-recursive.c:3028 +#: merge-recursive.c:3040 msgid "modify" msgstr "modificar" -#: merge-recursive.c:3028 +#: merge-recursive.c:3040 msgid "modified" msgstr "modificado" -#: merge-recursive.c:3040 +#: merge-recursive.c:3052 msgid "content" msgstr "contenido" -#: merge-recursive.c:3044 +#: merge-recursive.c:3056 msgid "add/add" msgstr "agregar/agregar" -#: merge-recursive.c:3067 +#: merge-recursive.c:3079 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "Saltado %s (fusionado como existente)" -#: merge-recursive.c:3089 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "submódulo" -#: merge-recursive.c:3090 +#: merge-recursive.c:3102 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "CONFLICTO (%s): Conflicto de fusión en %s" -#: merge-recursive.c:3120 +#: merge-recursive.c:3132 #, c-format msgid "Adding as %s instead" msgstr "Agregando más bien como %s" -#: merge-recursive.c:3203 +#: merge-recursive.c:3215 #, c-format msgid "" "Path updated: %s added in %s inside a directory that was renamed in %s; " @@ -4739,7 +4804,7 @@ msgstr "" "Path actualizado: %s agregado en %s dentro de un directorio que fue " "renombrado en %s; moviéndolo a %s." -#: merge-recursive.c:3206 +#: merge-recursive.c:3218 #, c-format msgid "" "CONFLICT (file location): %s added in %s inside a directory that was renamed " @@ -4748,7 +4813,7 @@ msgstr "" "CONFLICTO (ubicación de archivo): %s agregado en %s dentro de un directorio " "que fue renombrado en %s, sugerimos que deberÃa ser movido a %s." -#: merge-recursive.c:3210 +#: merge-recursive.c:3222 #, c-format msgid "" "Path updated: %s renamed to %s in %s, inside a directory that was renamed in " @@ -4757,7 +4822,7 @@ msgstr "" "Path actualizado: %s renombrado a %s en %s, dentro de un directorio que fue " "renombrado en %s; moviéndolo a %s." -#: merge-recursive.c:3213 +#: merge-recursive.c:3225 #, c-format msgid "" "CONFLICT (file location): %s renamed to %s in %s, inside a directory that " @@ -4767,61 +4832,61 @@ msgstr "" "directorio que fue renombrado en %s, sugiriendo que tal vez deberÃa ser " "movido a %s." -#: merge-recursive.c:3327 +#: merge-recursive.c:3339 #, c-format msgid "Removing %s" msgstr "Eliminando %s" -#: merge-recursive.c:3350 +#: merge-recursive.c:3362 msgid "file/directory" msgstr "archivo/directorio" -#: merge-recursive.c:3355 +#: merge-recursive.c:3367 msgid "directory/file" msgstr "directorio/archivo" -#: merge-recursive.c:3362 +#: merge-recursive.c:3374 #, c-format msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s" msgstr "" "CONFLICTO (%s): Hay un directorio con el nombre %s en %s. Agregando %s como " "%s" -#: merge-recursive.c:3371 +#: merge-recursive.c:3383 #, c-format msgid "Adding %s" msgstr "Agregando %s" -#: merge-recursive.c:3380 +#: merge-recursive.c:3392 #, c-format msgid "CONFLICT (add/add): Merge conflict in %s" msgstr "CONFLICTO (add/add): Conflicto de merge en %s" -#: merge-recursive.c:3424 +#: merge-recursive.c:3436 msgid "Already up to date!" msgstr "¡Ya está actualizado!" -#: merge-recursive.c:3433 +#: merge-recursive.c:3445 #, c-format msgid "merging of trees %s and %s failed" msgstr "falló la fusión de los árboles %s y %s" -#: merge-recursive.c:3537 +#: merge-recursive.c:3549 msgid "Merging:" msgstr "Fusionando:" -#: merge-recursive.c:3550 +#: merge-recursive.c:3562 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" msgstr[0] "se encontró %u ancestro común:" msgstr[1] "se encontraron %u ancestros comunes:" -#: merge-recursive.c:3600 +#: merge-recursive.c:3612 msgid "merge returned no commit" msgstr "la fusión no devolvió ningún commit" -#: merge-recursive.c:3659 +#: merge-recursive.c:3671 #, c-format msgid "" "Your local changes to the following files would be overwritten by merge:\n" @@ -4831,12 +4896,12 @@ msgstr "" "merge:\n" " %s" -#: merge-recursive.c:3756 +#: merge-recursive.c:3768 #, c-format msgid "Could not parse object '%s'" msgstr "No se pudo analizar el objeto '%s'" -#: merge-recursive.c:3774 builtin/merge.c:705 builtin/merge.c:885 +#: merge-recursive.c:3786 builtin/merge.c:705 builtin/merge.c:885 msgid "Unable to write index." msgstr "Incapaz de escribir el Ãndice." @@ -4845,7 +4910,7 @@ msgid "failed to read the cache" msgstr "falló al leer la cache" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "no es posible escribir el archivo Ãndice" @@ -5096,22 +5161,22 @@ msgstr "incapaz de analizar objeto: %s" msgid "hash mismatch %s" msgstr "hash no concuerda %s" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "no se pudo obtener el tamaño de %s" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "offset antes del final del paquete (broken .idx?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "" "offset antes del comienzo del Ãndice del paquete para %s (¿Ãndice corrupto?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "" @@ -5317,44 +5382,48 @@ msgid "unable to write delim packet" msgstr "no es posible escribir delim packet" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "no es posible escribir un paquete separador sin estado (stateless)" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "limpieza de escritura de paquetes falló" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "error de protocolo: lÃnea imposiblemente larga" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "escritura de paquetes con formato falló" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "fallo al escribir paquete - la data excede al tamaño máximo de paquete" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "escritura de paquetes falló" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "error de lectura" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "el remoto se colgó de manera inesperada" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "error de protocolo: mal caracter de largo de lÃnea: %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "error de protocolo: mal largo de lÃnea %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "error remoto: %s" @@ -5533,7 +5602,7 @@ msgstr "entradas de stage desordenadas para '%s'" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5590,7 +5659,7 @@ msgstr "no se pudo refrescar el index compartido '%s'" msgid "broken index, expect %s in %s, got %s" msgstr "index roto, se esperaba %s en %s, se obtuvo %s" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "no se pudo cerrar '%s'" @@ -5727,7 +5796,7 @@ msgstr "" "\n" #: rebase-interactive.c:110 rerere.c:485 rerere.c:692 sequencer.c:3463 -#: sequencer.c:3489 sequencer.c:5248 builtin/fsck.c:346 builtin/rebase.c:258 +#: sequencer.c:3489 sequencer.c:5248 builtin/fsck.c:347 builtin/rebase.c:258 #, c-format msgid "could not write '%s'" msgstr "no se pudo escribir '%s'" @@ -5772,7 +5841,7 @@ msgstr "" msgid "could not read '%s'." msgstr "no se puede leer '%s'." -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "desaparecido" @@ -5997,7 +6066,7 @@ msgstr "objeto mal formado en '%s'" msgid "ignoring ref with broken name %s" msgstr "ignorando referencia con nombre roto %s" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "ignorando referencia rota %s" @@ -6027,94 +6096,108 @@ msgstr "nombre de objeto mal formado %s" msgid "option `%s' must point to a commit" msgstr "opción '%s' debe apuntar a un commit" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "¡%s no apunta a ningún objeto válido!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "no se pudo recibir `%s`" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "Nombre de rama inválido: %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "ignorando referencia rota %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "no se pudo abrir '%s' para escritura: %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "no se pudo leer la referencia '%s'" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "ref '%s' ya existe" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "ID de objecto inesperado al escribir '%s'" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "no se pudo escribir en '%s'" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "no se pudo abrir '%s' para escritura" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "ID de objecto inesperado al borrar '%s'" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "log de ref %s tiene un vacÃo tras %s" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "log de ref %s finalizado inesperadamente en %s" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "log de %s está vacÃo" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "rehusando actualizar ref con mal nombre '%s'" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "update_ref falló para ref '%s': %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "múltiples actualizaciones para ref '%s' no permitidas" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "actualizaciones de ref prohibidas dentro de ambiente de cuarentena" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "ref update abortado por el hook" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' existe; no se puede crear '%s'" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "no se puede procesar '%s' y '%s' al mismo tiempo" @@ -6401,7 +6484,7 @@ msgstr[1] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (usa \"git pull\" para fusionar la rama remota en la tuya)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "no se puede leer el nombre de objeto '%s'" @@ -6528,20 +6611,20 @@ msgstr "no se pudo determinar revisión HEAD" msgid "failed to find tree of %s" msgstr "falló al encontrar árbol de %s" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "tu rama actual parece estar rota" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "tu rama actual '%s' no tiene ningún commit todavÃa" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent es incompatible con --bisect" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L no soporta todavÃa formatos de diff fuera de -p y -s" @@ -6583,11 +6666,15 @@ msgstr "desempaquetado remoto falló: %s" msgid "failed to sign the push certificate" msgstr "falló al firmar el certificado de push" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "el destino no soporta el algoritmo de hash de este repositorio" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "el final receptor no soporta --signed push" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6595,11 +6682,11 @@ msgstr "" "no se manda un certificado de push ya que el destino no soporta push firmado " "(--signed )" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "el destino no soporta push atómicos (--atomic)" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "el destino no soporta opciones de push" @@ -6720,7 +6807,7 @@ msgstr "no hay llave presente en '%.*s'" msgid "unable to dequote value of '%s'" msgstr "no es posible dequote para '%s'" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7560,85 +7647,85 @@ msgstr "" msgid "this operation must be run in a work tree" msgstr "esta operación debe ser realizada en un árbol de trabajo" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Se esperaba versión de git repo <= %d, encontrada %d" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "se encontró extensión de repositorio desconocida:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "error abriendo '%s'" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "muy grande para ser un archivo .git: '%s'" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "error leyendo %s" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "formato gitfile inválido: %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "no hay ruta en gitfile: %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "no es un repositorio git: %s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' muy grande" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "no es un repositorio git: '%s'" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "no se puede aplicar chdir a '%s'" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "no se puede volver a cwd" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "falló al determinar '%*s%s%s'" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Incapaz de leer el directorio de trabajo actual" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "no se puede cambiar a '%s'" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "" "no es un repositorio git (ni ninguno de los directorios superiores): %s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7648,7 +7735,7 @@ msgstr "" "Parando en el lÃmite del sistema de archivos " "(GIT_DISCOVERY_ACROSS_FILESYSTEM no establecido)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7657,15 +7744,15 @@ msgstr "" "problema con el valor del modo de archivo core.sharedRepository (0%.3o).\n" "El dueño de los archivos tiene que tener permisos de lectura y escritura." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "falló al abrir /dev/null o dup" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "falló fork" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "falló setsid" @@ -7849,7 +7936,7 @@ msgstr "deflateEnd en objeto %s falló (%d)" msgid "confused by unstable object source data for %s" msgstr "confundido por fuente de data de objetos inestable para %s" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "falló utime() en %s" @@ -8027,43 +8114,43 @@ msgid "invalid object name '%.*s'." msgstr "nombre de objeto no válido: '%.*s'." #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8071,14 +8158,14 @@ msgstr[0] "%u byte" msgstr[1] "%u bytes" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u bytes/s" msgstr[1] "%u bytes/s" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "no se pudo editar '%s'" @@ -8326,7 +8413,7 @@ msgstr "no se pudo leer el archivo de entrada '%s'" msgid "could not read from stdin" msgstr "no se pudo leer desde stdin" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "no se pudo definir %s" @@ -8350,20 +8437,20 @@ msgstr "no se pudo abrir el archivo temporal" msgid "could not rename temporary file to %s" msgstr "no se pudo renombrar el archivo temporal a %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "escritura total al helper remoto falló" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "no es posible encontrar helper remoto para '%s'" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "no se puede duplicar output de fd del helper" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8372,157 +8459,162 @@ msgstr "" "capacidad mandatoria desconocida %s; este helper remoto probablemente " "necesita una nueva versión de Git" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "este helper remoto deberÃa implementar capacidad refspec" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s dijo inesperadamente: '%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s también bloqueó %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "no se pudo ejecutar fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "error al ejecutar fast-import" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "no se pudo leer la referencia %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "respuesta para conectar desconocida: %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "configurando servicio de ruta remota no soportado por el protocolo" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "ruta de servicio remoto inválida" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "operación no soportada por protocolo" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "no se puede conectar al subservicio %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "se esperaba ok/error, helper dijo '%s'" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "helper reportó estado inesperado de %s" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "helper %s no soporta dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "helper %s no soporta --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "helper %s no soporta --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "helper %s no soporta --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "helper %s no soporta 'push-option'" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "remote-helper no soporta push; se necesita refspec" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "helper %s no soporta 'force'" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "no se pudo ejecutar fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "error al ejecutar fast-export" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "No hay refs comunes y ninguno especificado; no se hace nada.\n" -"Tal vez deberÃas especificar un branch como 'master'.\n" +"Tal vez deberÃas especificar un branch.\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "formado de objeto no soportado '%s'" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "respuesta malformada en lista de refs: %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "leer(%s) falló" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "escribir(%s) falló" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "hilo %s falló" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "hilo %s falló al unirse: %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "no se puede iniciar el hilo para copiar data: %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "proceso %s falló al esperar" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "proceso %s falló" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "no se puede iniciar hilo para copiar data" @@ -8536,33 +8628,33 @@ msgstr "Configurará upstream de '%s' a '%s' de '%s'\n" msgid "could not read bundle '%s'" msgstr "no se pudo leer el conjunto '%s'" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "transport: opción inválida '%s'" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "ver protocol.version en 'git help config' para más información" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "opciones del servidor requieren protocolo versión 2 o posterior" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "no se pudo analizar valor de configuración transport.color.*" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "soporte para protocolo v2 no implementado todavÃa" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "valor desconocido para configuración '%s': %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "transporte '%s' no permitido" @@ -8571,7 +8663,7 @@ msgstr "transporte '%s' no permitido" msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync ya no es soportado" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8580,7 +8672,7 @@ msgstr "" "La siguiente ruta de submódulo contiene cambios que no\n" "pueden ser encontrados en ningún remoto:\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8607,11 +8699,11 @@ msgstr "" "para hacer un push al remoto.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Abortando." -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "falló al hacer push a todos los submódulos necesarios" @@ -8900,7 +8992,7 @@ msgstr "" msgid "Updating index flags" msgstr "Actualizando flags del index" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "se espera flush tras argumentos fetch" @@ -8937,50 +9029,50 @@ msgstr "segmento de ruta '..' inválido" msgid "Fetching objects" msgstr "Haciendo fetch a objetos" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "falló al leer '%s'" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "" "'%s' en el árbol de trabajo principal no es el directorio del repositorio" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "" "archivo '%s' no contiene una ruta absoluta a la ubicación del árbol de " "trabajo" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' no existe" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' no es un archivo .git, código de error %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' no apunta de vuelta a '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "no se pudo abrir '%s' para lectura y escritura" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "no es posible acceder '%s'" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "no es posible obtener el directorio de trabajo actual" @@ -9375,39 +9467,44 @@ msgstr "Estás aplicando un bisect." msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (usa \"git bisect reset\" para volver a la rama original)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "Estas en un checkout de sparse con %d%% archivos rastreados presentes." + +#: wt-status.c:1733 msgid "On branch " msgstr "En la rama " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "rebase interactivo en progreso; en " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "rebase en progreso; en " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Actualmente no estás en ninguna rama." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Confirmación inicial" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "No hay commits todavÃa" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "Archivos sin seguimiento" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "Archivos ignorados" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9418,31 +9515,31 @@ msgstr "" "puede acelerarlo, pero tienes que ser cuidadoso de no olvidar agregar\n" "nuevos archivos tú mismo (vea 'git help status')." -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "Archivos no rastreados no son mostrados %s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (usa la opción -u para mostrar los archivos sin seguimiento)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "Sin cambios" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "sin cambios agregados al commit (usa \"git add\" y/o \"git commit -a\")\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "no se agregaron cambios al commit\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9451,67 +9548,67 @@ msgstr "" "no hay nada agregado al commit pero hay archivos sin seguimiento presentes " "(usa \"git add\" para hacerles seguimiento)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" "no hay nada agregado para confirmar, pero hay archivos sin seguimiento " "presentes\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "no hay nada para confirmar (crea/copia archivos y usa \"git add\" para " "hacerles seguimiento)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "nada para hacer commit\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "nada para hacer commit (usa -u para mostrar los archivos no rastreados)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "nada para hacer commit, el árbol de trabajo está limpio\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "No hay commits todavÃa en " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (sin rama)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "diferente" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "detrás " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "adelante " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "no se puede %s: Tienes cambios sin marcar." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "adicionalmente, tu Ãndice contiene cambios que no están en un commit." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "no se puede %s: Tu Ãndice contiene cambios que no están en un commit." @@ -9589,7 +9686,7 @@ msgstr "dry run ( ejecución en seco)" msgid "interactive picking" msgstr "selección interactiva" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "elegir hunks de forma interactiva" @@ -9717,12 +9814,12 @@ msgstr "Opción --ignore-missing solo puede ser usada junto a --dry-run" msgid "--chmod param '%s' must be either -x or +x" msgstr "El parámetro '%s' para --chmod debe ser -x ó +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file es incompatible con argumentos de pathspec" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul requiere --pathspec-from-file" @@ -9987,7 +10084,7 @@ msgstr "opción histórica -- no-op" msgid "allow fall back on 3way merging if needed" msgstr "permitir retroceso en fusión de 3-vÃas si es necesario" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "ser silencioso" @@ -10043,7 +10140,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "formato" @@ -10337,112 +10434,116 @@ msgstr "" "argumento inválido %s para 'git bisect terms'.\n" "Las opciones soportadas son: --term-good|--term-old y --term-bad|--term-new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' no es un término válido" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "opción desconocida: '%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "'%s' no parece ser una revisión válida" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "mal HEAD - Necesito un HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "" "error al hacer checkout '%s'. Intente 'git bisect start <rama-válida>'." -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "no se bisecará en un árbol con cg-seek" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "mal HEAD - ref simbólico extraño" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "ref inválido: '%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "realiza 'git bisect next'" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "escribe los términos a .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "limpiar el estado de bisección" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "revisar por revs esperados" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "reiniciar el estado de bisect" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "escribir el estado de bisect en BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "revisar y configurar los terms en el estado de bisect" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "revisar si existen términos malos o buenos" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "imprimir los terms del bisect" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "comenzar la sesión de bisect" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "actualiza BISECT_HEAD en lugar de revisar el commit actual" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "no hay log para BISECT_WRITE" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms requiere dos argumentos" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state no requiere argumentos" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset requiere un commit o ningún argumento" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write requiere entre 4 o 5 argumentos" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--bisect-clean-state no requiere argumentos" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check requiere 2 o 3 argumentos" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms requiere 0 o 1 argumentos" @@ -11047,19 +11148,19 @@ msgstr "git bundle list-heads <archivo> [<nombre-de-ref>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <archivo> [<nombre-de-ref>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "no mostrar medidor de progreso" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "mostrar medidor de progreso" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "mostrar medidor de progreso durante la fase de escritura de objeto" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "similar a --all-progress cuando medidor de progreso es mostrado" @@ -11099,11 +11200,11 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<formato>] | --batch-check[=<formato>]) [--follow-" +"symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11137,7 +11238,7 @@ msgstr "para objetos blob, ejecuta textconv en el contenido del objeto" msgid "for blob objects, run filters on object's content" msgstr "para objetos blob, ejecuta filters en el contenido del objeto" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "blob" @@ -11198,8 +11299,8 @@ msgstr "leer nombres de archivos de stdin" msgid "terminate input and output records by a NUL character" msgstr "terminar registros de entrada y salida con un carácter NUL" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "suprimir el reporte de progreso" @@ -11293,7 +11394,7 @@ msgstr "escribir el contenido en un archivo temporal" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "string" @@ -11408,11 +11509,11 @@ msgstr "'%s' o '%s' no puede ser usado con %s" msgid "path '%s' is unmerged" msgstr "ruta '%s' no esta fusionada" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "necesitas resolver tu Ãndice actual primero" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11421,50 +11522,50 @@ msgstr "" "no se puede continuar con los cambios en stage en los siguientes archivos:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "No se puede hacer reflog para '%s': %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD está ahora en" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "no es posible actualizar HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "Reiniciar rama '%s'\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Ya en '%s'\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Rama reiniciada y cambiada a '%s'\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Cambiado a nueva rama '%s'\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "Cambiado a rama '%s'\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ... y %d más.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11487,7 +11588,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11514,19 +11615,19 @@ msgstr[1] "" " git branch <nombre-de-rama> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "error interno en camino de revisión" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "La posición previa de HEAD era" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Estás en una rama por nacer" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11535,7 +11636,7 @@ msgstr "" "'%s' puede ser tanto un archivo local como una rama de rastreo.\n" "Por favor use -- (y opcionalmente --no-guess) para desambiguar" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11556,51 +11657,51 @@ msgstr "" "de nombre <nombre> remota, como 'origin', considera configurar\n" "checkout.defaultRemote=origin en tu configuración." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' concordó con multiples (%d) ramas de rastreo remoto" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "solo una referencia esperada" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "solo una referencia esperada, %d entregadas." -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "referencia inválida: %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "la referencia no es n árbol: %s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "se esperaba un branch, se obtuvo tag '%s'" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "se espera una rama, se obtuvo una rama remota '%s'" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "se esperaba branch, se obuto '%s'" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "se espera una rama, se obtuvo commit '%s'" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11608,7 +11709,7 @@ msgstr "" "no se puede cambiar de branch durante un merge\n" "Considera \"git merge --quit\" o \"git worktree add\"." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11616,7 +11717,7 @@ msgstr "" "no se puede cambiar de branch en medio de una sesión de am\n" "Considera \"git am --quit\" o \"git worktree add\"." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11624,7 +11725,7 @@ msgstr "" "no se puede cambiar de branch durante un rebase\n" "Considera \"git rebase --quit\" o \"git worktree add\"." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11632,7 +11733,7 @@ msgstr "" "no se puede cambiar de branch durante un cherry-pick\n" "Considera \"git cherry-pick --quit\" o \"git worktree add\"." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11640,144 +11741,144 @@ msgstr "" "no se puede cambiar de branch durante un revert\n" "Considera \"git revert --quit\" o \"git worktree add\"." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "estás cambiando ramas durante un bisect" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "rutas no pueden ser usadas con cambios de rama" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' no puede ser usado con cambios de ramas" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' no puede ser usado con '%s'" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s' no puede tomar <punto de partida>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "No se puede cambiar rama a un '%s' sin commits" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "falta branch o commit como argumento" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "forzar el reporte de progreso" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "realizar una fusión de tres vÃas con la rama nueva" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "estilo" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "conflicto de estilos (merge o diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "desacoplar HEAD en el commit nombrado" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "configurar info de upstream para una rama nueva" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "forzar el checkout (descartar modificaciones locales)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "nueva-rama" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "nueva rama no emparentada" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "actualizar archivos ignorados (default)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "no revise si otro árbol de trabajo contiene la ref entregada" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "hacer checkout a nuestra versión para archivos sin fusionar" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "hacer checkout a su versión para los archivos sin fusionar" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "no limitar pathspecs a dispersar entradas solamente" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%c, -%c y --orphan son mutuamente exclusivas" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p y --overlay son mutuamente exclusivas" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track necesita el nombre de una rama" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "falta nombre de rama; prueba -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "no se pudo resolver %s" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "especificación de ruta inválida" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "'%s' no es un commit y una rama '%s' no puede ser creada desde este" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach no toma un argumento de ruta '%s'" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file es incompatible con --detach" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file es incompatible con --patch" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11785,69 +11886,70 @@ msgstr "" "git checkout: --ours/--theirs, --force y --merge son incompatibles cuando\n" "se revisa fuera del Ãndice." -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "debes especificar path(s) para restaurar" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "rama" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "crear y hacer checkout a una nueva rama" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "crear/reiniciar y hacer checkout a una rama" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "crear un reflog para una nueva rama" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "adivinar segunda opción 'git checkout <no-hay-tal-rama>' (default)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "usar modo overlay (default)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "crear y hacer switch a una nueva rama" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "crear/reiniciar y hacer switch a una rama" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "adivinar segunda opción 'git checkout <no-hay-tal-rama>'" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "descartar modificaciones locales" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "de qué árbol hacer el checkout" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "restaurar el index" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "restaurar el árbol de trabajo (default)" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "ignorar entradas no fusionadas" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "usar modo overlay" @@ -12010,11 +12112,7 @@ msgstr "borrar archivos ignorados, también" msgid "remove only ignored files" msgstr "borrar solo archivos ignorados" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x y -X no pueden ser usadas juntas" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -12022,7 +12120,7 @@ msgstr "" "clean.requireForce configurado como true y ninguno -i, -n, ni -f entregados; " "rehusando el clean" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -12030,6 +12128,10 @@ msgstr "" "clean.requireForce default en true y ninguno -i, -n, ni -f entregados; " "rehusando el clean" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x y -X no pueden ser usadas juntas" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<opciones>] [--] <repo> [<directorio>]" @@ -12038,7 +12140,7 @@ msgstr "git clone [<opciones>] [--] <repo> [<directorio>]" msgid "don't create a checkout" msgstr "no crear checkout" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "crear un repositorio vacÃo" @@ -12070,11 +12172,11 @@ msgstr "inicializar submódulos en el clonado" msgid "number of submodules cloned in parallel" msgstr "numero de submódulos clonados en paralelo" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "directorio-template" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "directorio del cual los templates serán usados" @@ -12088,8 +12190,8 @@ msgstr "repositorio de referencia" msgid "use --reference only while cloning" msgstr "usa--reference solamente si estás clonado" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "nombre" @@ -12114,7 +12216,7 @@ msgstr "profundidad" msgid "create a shallow clone of that depth" msgstr "crear un clon superficial para esa profundidad" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "tiempo" @@ -12145,11 +12247,11 @@ msgstr "no clonar ningún tag, y hacer que los subsiguientes fetch no los sigan" msgid "any cloned submodules will be shallow" msgstr "cualquier submódulo clonado será superficial" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "gitdir" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "separa git dir del árbol de trabajo" @@ -12278,7 +12380,7 @@ msgstr "no se puede reempaquetar para limpiar" msgid "cannot unlink temporary alternates file" msgstr "no se puede desvincular archivos alternos temporales" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "Muchos argumentos." @@ -12295,48 +12397,48 @@ msgstr "Las opciones --bare y --origin %s son incompatibles." msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare y --separate-git-dir son incompatibles." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "repositorio '%s' no existe" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "profundidad %s no es un numero positivo" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "la ruta de destino '%s' ya existe y no es un directorio vacÃo." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "directorio de trabajo '%s' ya existe." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "no se pudo crear directorios principales de '%s'" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "no se pudo crear un árbol de trabajo '%s'" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Clonando en un repositorio vacÃo '%s'...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Clonando en '%s'...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" @@ -12344,36 +12446,36 @@ msgstr "" "clone --recursive no es compatible con --reference y --reference-if-able al " "mismo tiempo" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth es ignorada en clonaciones locales; usa file:// más bien." -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "--shallow-since es ignorado en el clon local; use file:// ." -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "--shallow-exclude es ignorado en clones locales; use file://." -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "--filter es ignorado en clones locales; usa file:// en su lugar." -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "repositorio fuente es superficial, ignorando --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local es ignorado" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Rama remota %s no encontrada en upstream %s" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "Pareces haber clonado un repositorio sin contenido." @@ -12409,13 +12511,13 @@ msgstr "Realizando padding entre columnas" msgid "--command must be the first argument" msgstr "--command debe ser el primer argumento" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12425,79 +12527,88 @@ msgstr "" "split[=<estrategia>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <opciones de split>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "no se pudo entoncrar el objeto directorio concordante con %s" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "dir" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "El directorio de objetos para guardar el gráfico" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "si el commit-graph está cortado, solo verifica la punta del archivo" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "No se pudo abrir commit-graph '%s'" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "argumento --split no reconocido, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "ID de objeto no hex inesperado :%s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "no es un objeto válido: %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "comenzar caminata en todas las refs" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "escanear paquete de Ãndices por stdin por commits" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "comenzar a caminar a los commits listados por stdin" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "inclye todos los commits que ya están en el archivo commit-graph" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "habilitar computación para rutas cambiadas" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "permitir escribir un archivo commit-graph incremental" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "máximo número de commits en un commit-graph sin base cortada" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "radio máximo entre dos niveles de corte de commit-graph" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "expirar objetos más viejos a una fecha dada" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "use como máximo uno de --reachable, --stdin-commits, o --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "ID de objeto no hex inesperado :%s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "Recolectando commits del input" #: builtin/commit-tree.c:18 msgid "" @@ -12903,7 +13014,7 @@ msgid "version" msgstr "version" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "output formato-maquina" @@ -12916,8 +13027,8 @@ msgid "terminate entries with NUL" msgstr "terminar entradas con NUL" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "modo" @@ -13606,35 +13717,45 @@ msgstr "--dirty es incompatible con commit-ismos" msgid "--broken is incompatible with commit-ishes" msgstr "--broken es incompatible con commit-ismos" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s': no es un archivo regular o un enlace simbólico" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "opción inválida: %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: se neceista una base de fusión" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "No es un repositorio git" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "objeto '%s' entregado no es válido." -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "más de dos blobs entregados: '%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "objeto no manejado '%s' entregado." +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s: múltiples bases de fusión, usando %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<opciones>] [<commit> [<commit>]] [--] [<ruta>...]" @@ -13783,85 +13904,106 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "" "Error: No se puede exportar los tags anidados a menos que --mark-tags sea " "especificado." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "token --anonymize-map no puede estar vacÃo" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "mostrar progreso después de <n> objetos" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "seleccionar el manejo de tags firmados" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "seleccionar el manejo de tags que son tags de objetos filtrados" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "seleccionar el manejo de mensajes de commit en un encoding diferente" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "Volcar marcas a este archivo" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "Importar marcas de este archivo" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "Importar marcas de este archivo si existe" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "Falsificar un tagger cuando les falta uno" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "Mostrar todo el árbol para cada commit" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "Use el feature done para terminar el stream" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "Saltar el output de data blob" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "refspec" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "Aplicar refspec para los refs exportados" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "anonimizar la salida" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "de:para" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "convertir <de> a <para> en output anonimizado" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "" "Padres de la referencia que no estan en fast-export stream por id de objeto" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "Mostrar ids de objetos originales para blobs/commits" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "Marcar tags con ids de mark" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map sin --anonymize no tiene sentido" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "No se puede pasar ambos --import-marks y --import-marks-if-exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "Lockfile creado pero no reportado: %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<opciones>] [<repositorio> [<refspec>...]]" @@ -14188,40 +14330,40 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Tienes que especificar un nombre de tag." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "Profundidad negativa en --deepen no soportada" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen y --depth son mutuamente exclusivas" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth y --unshallow no pueden ser usadas juntas" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow no tiene sentido en un repositorio completo" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all no toma un argumento de repositorio" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all no tiene sentido con refspecs" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "No existe el remoto o grupo remoto: %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Extraer un grupo y especificar un refspecs no tiene sentido" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14315,32 +14457,32 @@ msgstr "mostrar solo refs que contienen el commit" msgid "print only refs which don't contain the commit" msgstr "mostrar solo refs que no contienen el commit" -#: builtin/fsck.c:68 builtin/fsck.c:147 builtin/fsck.c:148 +#: builtin/fsck.c:69 builtin/fsck.c:148 builtin/fsck.c:149 msgid "unknown" msgstr "desconocido" #. TRANSLATORS: e.g. error in tree 01bfda: <more explanation> -#: builtin/fsck.c:100 builtin/fsck.c:120 +#: builtin/fsck.c:101 builtin/fsck.c:121 #, c-format msgid "error in %s %s: %s" msgstr "error en %s %s: %s" #. TRANSLATORS: e.g. warning in tree 01bfda: <more explanation> -#: builtin/fsck.c:114 +#: builtin/fsck.c:115 #, c-format msgid "warning in %s %s: %s" msgstr "peligro en %s %s: %s" -#: builtin/fsck.c:143 builtin/fsck.c:146 +#: builtin/fsck.c:144 builtin/fsck.c:147 #, c-format msgid "broken link from %7s %s" msgstr "link roto de %7s %s" -#: builtin/fsck.c:155 +#: builtin/fsck.c:156 msgid "wrong object type in link" msgstr "tipo de objeto equivocado en link" -#: builtin/fsck.c:171 +#: builtin/fsck.c:172 #, c-format msgid "" "broken link from %7s %s\n" @@ -14349,211 +14491,211 @@ msgstr "" "link roto de %7s %s\n" " a %7s %s" -#: builtin/fsck.c:282 +#: builtin/fsck.c:283 #, c-format msgid "missing %s %s" msgstr "faltan %s %s" -#: builtin/fsck.c:309 +#: builtin/fsck.c:310 #, c-format msgid "unreachable %s %s" msgstr "inalcanzable %s %s" -#: builtin/fsck.c:329 +#: builtin/fsck.c:330 #, c-format msgid "dangling %s %s" msgstr "actualizando %s %s" -#: builtin/fsck.c:339 +#: builtin/fsck.c:340 msgid "could not create lost-found" msgstr "no se pudo crear lost-found" -#: builtin/fsck.c:350 +#: builtin/fsck.c:351 #, c-format msgid "could not finish '%s'" msgstr "no se pudo finalizar '%s'" -#: builtin/fsck.c:367 +#: builtin/fsck.c:368 #, c-format msgid "Checking %s" msgstr "Revisando %s" -#: builtin/fsck.c:405 +#: builtin/fsck.c:406 #, c-format msgid "Checking connectivity (%d objects)" msgstr "Verificando conectividad (%d objetos)" -#: builtin/fsck.c:424 +#: builtin/fsck.c:425 #, c-format msgid "Checking %s %s" msgstr "Revisando %s %s" -#: builtin/fsck.c:429 +#: builtin/fsck.c:430 msgid "broken links" msgstr "links rotos" -#: builtin/fsck.c:438 +#: builtin/fsck.c:439 #, c-format msgid "root %s" msgstr "raÃz %s" -#: builtin/fsck.c:446 +#: builtin/fsck.c:447 #, c-format msgid "tagged %s %s (%s) in %s" msgstr "tag %s %s (%s) en %s" -#: builtin/fsck.c:475 +#: builtin/fsck.c:476 #, c-format msgid "%s: object corrupt or missing" msgstr "%s: objecto corrupto o faltante" -#: builtin/fsck.c:500 +#: builtin/fsck.c:501 #, c-format msgid "%s: invalid reflog entry %s" msgstr "%s: referencia inválida %s" -#: builtin/fsck.c:514 +#: builtin/fsck.c:515 #, c-format msgid "Checking reflog %s->%s" msgstr "Revisando reflog %s->%s" -#: builtin/fsck.c:548 +#: builtin/fsck.c:549 #, c-format msgid "%s: invalid sha1 pointer %s" msgstr "%s: puntero sha1 inválido %s" -#: builtin/fsck.c:555 +#: builtin/fsck.c:556 #, c-format msgid "%s: not a commit" msgstr "%s: no es un commit" -#: builtin/fsck.c:609 +#: builtin/fsck.c:610 msgid "notice: No default references" msgstr "aviso: No hay referencias por defecto" -#: builtin/fsck.c:624 +#: builtin/fsck.c:625 #, c-format msgid "%s: object corrupt or missing: %s" msgstr "%s: objeto corrupto o no encontrado: %s" -#: builtin/fsck.c:637 +#: builtin/fsck.c:638 #, c-format msgid "%s: object could not be parsed: %s" msgstr "%s: no se puede analizar objeto: %s" -#: builtin/fsck.c:657 +#: builtin/fsck.c:658 #, c-format msgid "bad sha1 file: %s" msgstr "mal sha1 de archivo: %s" -#: builtin/fsck.c:672 +#: builtin/fsck.c:673 msgid "Checking object directory" msgstr "Revisando directorio de objetos" -#: builtin/fsck.c:675 +#: builtin/fsck.c:676 msgid "Checking object directories" msgstr "Revisando objetos directorios" -#: builtin/fsck.c:690 +#: builtin/fsck.c:691 #, c-format msgid "Checking %s link" msgstr "Revisando link %s" -#: builtin/fsck.c:695 builtin/index-pack.c:843 +#: builtin/fsck.c:696 builtin/index-pack.c:843 #, c-format msgid "invalid %s" msgstr "%s inválido" -#: builtin/fsck.c:702 +#: builtin/fsck.c:703 #, c-format msgid "%s points to something strange (%s)" msgstr "%s apunta a algo extraño (%s)" -#: builtin/fsck.c:708 +#: builtin/fsck.c:709 #, c-format msgid "%s: detached HEAD points at nothing" msgstr "%s: HEAD desacoplado apunta a nada" -#: builtin/fsck.c:712 +#: builtin/fsck.c:713 #, c-format msgid "notice: %s points to an unborn branch (%s)" msgstr "aviso: %s apunta a un branch no nacido (%s)" -#: builtin/fsck.c:724 +#: builtin/fsck.c:725 msgid "Checking cache tree" msgstr "Revisando el cache tree" -#: builtin/fsck.c:729 +#: builtin/fsck.c:730 #, c-format msgid "%s: invalid sha1 pointer in cache-tree" msgstr "%s: puntero inválido sha1 en cache-tree" -#: builtin/fsck.c:738 +#: builtin/fsck.c:739 msgid "non-tree in cache-tree" msgstr "non-tree en cache-tree" -#: builtin/fsck.c:769 +#: builtin/fsck.c:770 msgid "git fsck [<options>] [<object>...]" msgstr "git fsck [<opciones>] [<objeto>...]" -#: builtin/fsck.c:775 +#: builtin/fsck.c:776 msgid "show unreachable objects" msgstr "mostrar objetos ilegibles" -#: builtin/fsck.c:776 +#: builtin/fsck.c:777 msgid "show dangling objects" msgstr "mostrar objetos colgados" -#: builtin/fsck.c:777 +#: builtin/fsck.c:778 msgid "report tags" msgstr "reportar tags" -#: builtin/fsck.c:778 +#: builtin/fsck.c:779 msgid "report root nodes" msgstr "reportar nodos raÃz" -#: builtin/fsck.c:779 +#: builtin/fsck.c:780 msgid "make index objects head nodes" msgstr "hacer objetos Ãndices cabezas de nodos" -#: builtin/fsck.c:780 +#: builtin/fsck.c:781 msgid "make reflogs head nodes (default)" msgstr "hacer reflogs cabeza de nodos (default)" -#: builtin/fsck.c:781 +#: builtin/fsck.c:782 msgid "also consider packs and alternate objects" msgstr "también considerar paquetes y objetos alternos" -#: builtin/fsck.c:782 +#: builtin/fsck.c:783 msgid "check only connectivity" msgstr "revisar solo conectividad" -#: builtin/fsck.c:783 +#: builtin/fsck.c:784 msgid "enable more strict checking" msgstr "habilitar revisión más estricta" -#: builtin/fsck.c:785 +#: builtin/fsck.c:786 msgid "write dangling objects in .git/lost-found" msgstr "escribir objetos colgados en .git/lost-found" -#: builtin/fsck.c:786 builtin/prune.c:134 +#: builtin/fsck.c:787 builtin/prune.c:134 msgid "show progress" msgstr "mostrar progreso" -#: builtin/fsck.c:787 +#: builtin/fsck.c:788 msgid "show verbose names for reachable objects" msgstr "mostrar nombres verboso para objetos alcanzables" -#: builtin/fsck.c:846 builtin/index-pack.c:225 +#: builtin/fsck.c:847 builtin/index-pack.c:225 msgid "Checking objects" msgstr "Revisando objetos" -#: builtin/fsck.c:874 +#: builtin/fsck.c:875 #, c-format msgid "%s: object missing" msgstr "%s: objeto faltante" -#: builtin/fsck.c:885 +#: builtin/fsck.c:886 #, c-format msgid "invalid parameter: expected sha1, got '%s'" msgstr "parámetro inválido: sha1 esperado, se obtuvo '%s'" @@ -14677,8 +14819,8 @@ msgstr "número inválido de hilos especificado (%d) para %s" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "no hay soporte para hilos, ignorando %s" @@ -14911,11 +15053,11 @@ msgstr "--untracked no es soportada con --recurse-submodules" msgid "invalid option combination, ignoring --threads" msgstr "combinación de opciones inválida, ignorando --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "no se soportan hilos, ignorando --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "número inválido de hilos especificado (%d)" @@ -15118,7 +15260,7 @@ msgstr "leer error en input" msgid "used more bytes than were available" msgstr "se usaron más bytes de los disponibles" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "paquete muy grande para la definición actual de off_t" @@ -15189,8 +15331,8 @@ msgstr "inconsistencia seria en inflate" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "¡COLISIÓN DE TIPO SHA1 ENCONTRADA CON %s !" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "no se posible leer %s" @@ -15251,7 +15393,7 @@ msgstr "confusión más allá de la locura en parse_pack_objects()" msgid "Resolving deltas" msgstr "Resolviendo deltas" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "no es posible crear hilo: %s" @@ -15316,58 +15458,67 @@ msgstr "no se puede guardar el archivo paquete" msgid "cannot store index file" msgstr "no se puede guardar el archivo Ãndice" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "mal pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "No se puede abrir el archivo paquete existente '%s'" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "No se puede abrir el Ãndice del archivo paquete para '%s'" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "no delta: %d objeto" msgstr[1] "no delta: %d objetos" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "largo de cadena = %d: %lu objeto" msgstr[1] "largo de cadena = %d: %lu objetos" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "No se puede regresar a cwd" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "mal %s" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "algoritmo hash desconocido '%s'" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin no puede ser usada sin --stdin" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin requiere un repositorio git" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format no se puede usar con --stdin" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify no recibió ningún nombre de archivo de paquete" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "error de fsck en objetos paquete" @@ -15411,51 +15562,56 @@ msgstr "template no encontrado en %s" msgid "not copying templates from '%s': %s" msgstr "no se copian templates de '%s': %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "nombre de rama inicial inválido: '%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "no es posible manejar el tipo de archivo %d" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "no se puede mover %s a %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "intentar reinicializar el repositorio con un hash diferente" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "algoritmo hash desconocido '%s'" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s ya existe" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init: ignorando --initial-branch=%s" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "Reinicializado el repositorio Git compartido existente en %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Reinicializado el repositorio Git existente en %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Inicializado repositorio Git compartido vacÃo en %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Inicializado repositorio Git vacÃo en %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15463,34 +15619,38 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<directorio-template>] [--" "shared[=<permisos>]] [<directorio>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "permisos" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "" "especifica que el repositorio de git será compartido entre varios usuarios" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "sobrescribir el nombre de la rama inicial" + +#: builtin/init-db.c:564 msgid "hash" msgstr "hash" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "especificar el algoritmo hash a usar" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "no se pude crear directorio %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "no se puede aplicar chdir a %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15499,7 +15659,7 @@ msgstr "" "%s (o --work-tree=<directorio>) no se permite sin especificar %s (o --git-" "dir=<directorio>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "No se puede acceder al árbol de trabajo '%s'" @@ -17261,7 +17421,7 @@ msgstr "intentar eliminar una nota no existente no es un error" msgid "read object names from the standard input" msgstr "leer nombres de objetos de standard input" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "no eliminar, solo mostrar" @@ -17296,106 +17456,123 @@ msgstr "" "git pack-objects [<opciones>...] <nombre-base> [< <lista-de-refs> | < <lista-" "de-objetos>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "mal paquete de objeto CRC para %s" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "objeto empaquetado corrupto para %s" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "delta recursivo encontrado para objeto %s" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "%u objetos ordenados, esperados %<PRIu32>" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" "deshabilitando escritura bitmap, paquetes son divididos debido a pack." "packSizeLimit" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Escribiendo objetos" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "falló al iniciar %s" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "%<PRIu32> objetos escritos mientras se esperaban %<PRIu32>" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" "deshabilitando escritura bitmap, ya que algunos objetos no están siendo " "empaquetados" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "overflow de offset en la base de delta en paquete para %s" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "outbound de offset en la base de delta para %s" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Contando objetos" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "incapaz de analizar header del objeto %s" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "objeto %s no puede ser leÃdo" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "" "objeto %s inconsistente con el largo del objeto (%<PRIuMAX> vs %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "suboptimal pack - fuera de memoria" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Compresión delta usando hasta %d hilos" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "no es posible empaquetar objetos alcanzables desde tag %s" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Comprimiendo objetos" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "inconsistencia con la cuenta de delta" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" +"valor para uploadpack.blobpackfileuri tiene que ser de la forma '<hash-de-" +"objeto> <hash-de-pack> <uri>' (se tuvo '%s')" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" +"objeto ya está configurado en otro uploadpack.blobpackfileuri (se obtuvo " +"'%s')" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17404,7 +17581,7 @@ msgstr "" "se espseraba ID de objeto al borde, se obtuvo basura:\n" "%s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17413,230 +17590,240 @@ msgstr "" "se esperaba ID de objeto, se obtuvo basuta:\n" "%s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "valor inválido para --missing" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "no se puede abrir Ãndice de paquetes" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "objeto perdido en %s no pudo ser examinado" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "incapaz de forzar un objeto perdido" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "no es una rev '%s'" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "mala revisión '%s'" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "incapaz de añadir objetos recientes" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "versión de Ãndice no soportada %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "mala versión del Ãndice '%s'" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<versión>[,<offset>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "" "escribir el Ãndice de paquete en la versión de formato idx especificado" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "tamaño máximo de cada paquete resultante" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "ignorar objetos prestados de otros almacenes de objetos" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "ignorar objetos paquete" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "limitar ventana de paquete por objetos" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "limitar ventana de paquete por memoria en adición a lÃmite de objetos" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "longitud máxima de cadena delta permitida en el paquete resultante" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "reusar deltas existentes" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "reutilizar objetos existentes" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "usar objetos OFS_DELTA" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "usar hilos cuando se busque para mejores concordancias de delta" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "no crear un paquete resultante vacÃo" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "leer argumentos de revisión de standard input" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "limitar los objetos a aquellos que no han sido empaquetados todavÃa" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "incluir objetos alcanzables por cualquier referencia" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "incluir objetos referidos por entradas de reflog" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "incluir objetos referidos por el Ãndice" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "mostrar paquete en stdout" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "incluir objetos tag que refieren a objetos a ser empaquetados" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "mantener objetos inalcanzables" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "empaquetar objetos sueltos inalcanzables" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "desempaquetar objetos inalcanzables más nuevos que <tiempo>" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "usar el algoritmo sparse reachability" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "crear paquetes delgados" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "crear paquetes adecuados para fetches superficiales" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "ignorar paquetes que tienen un archivo .keep acompañante" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "ignorar este paquete" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "nivel de compresión del paquete" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "no ocultar commits por injertos" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "" "usar un Ãndice bitmap si está disponible para acelerar la cuenta de objetos" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "escribir un Ãndice de bitmap junto al Ãndice de paquete" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "escribir un Ãndice de bitmap si es posible" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "manejo de objetos perdidos" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "no se puede empaquetar objetos en packfiles promisores" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "respetar islas durante la compresión delta" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "protocolo" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "" +"excluyendo cualquier uploadpack.blobpackfileuri configurado con este " +"protocolo" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "profundidad de cadena de delta %d es muy profunda, forzando %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "pack.deltaCacheLimit es muy grande, forzando %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" "--max-pack-size no puede ser usado para construir un paquete para " "transferencia" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "tamaño mÃnimo del paquete es 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin no puede ser usado para construir un paquete indexable" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable y --unpack-unreachable son incompatibles" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "no se puede usar--filter sin --stdout" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Enumerando objetos" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -18939,7 +19126,7 @@ msgstr "Avance rápido de %s a %s.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <git-dir>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -18972,7 +19159,7 @@ msgstr "" "Para suprimir este mensaje y mantener el comportamiento predeterminado,\n" "configura 'receive.denyCurrentBranch' a 'refuse'." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -18993,11 +19180,11 @@ msgstr "" "\n" "Para suprimir este mensaje, puedes configurarlo en 'refuse'." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "tranquilo" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Se tiene que especificar un directorio." @@ -20554,6 +20741,14 @@ msgstr "'%s' no es una ref válida." msgid "cannot find commit %s (%s)" msgstr "no se puede encontrar el commit %s (%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "algoritmo-hash" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "Algoritmo hash desconocido" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20608,50 +20803,56 @@ msgstr "" "este árbol de trabajo no tiene sparse (archivo sparese-checkout tal vez no " "existe)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "falló al crear directorio para el archivo sparse-checkout" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "" +"no es posible actualizar el formato de repositorio para habilitar " +"worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "falló al configurar opción extensions.worktreeConfig" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "inicializa el sparse-checkout en modo cono" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "falló al abrir '%s'" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "no se pudo normalizar la ruta %s" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <patrones>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "no es posible dequote para la cadena de estilo C '%s'" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "no se pudo cargar patrones de sparse-checkout existentes" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "leer patrones de standard in" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "error al refrescar directorio de trabajo" @@ -21357,12 +21558,38 @@ msgstr "Suprime la salida para inicializar la url de un submódulo" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <ruta> <nueva url>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "configurar la rama de rastreo por defecto a master" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "configurar la rama de rastreo por defecto" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <ruta>" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <rama> <ruta>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "--branch o --default requeridos" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch y --default son mutuamente exclusivos" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s no soporta --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' no es un comando submodule--helper válido" @@ -22000,201 +22227,192 @@ msgstr "git worktree remove [<opciones>] <worktree>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <ruta>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "falló al borrar '%s'" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "Removiendo el worktrees/%s: no es un directorio válido" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "Removiendo worktrees/%s: archivo gitdir no existe" +msgid "not a valid directory" +msgstr "no en un directorio válido" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "Removiendo worktrees/%s: no es posible leer el archivo gitdir (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "archivo gitdir no existe" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "" -"Removiendo árboles de trabajo/%s: lectura corta (se esperan %<PRIuMAX> " -"bytes, %<PRIuMAX> leÃdos)" +msgid "unable to read gitdir file (%s)" +msgstr "no es posible leer archivo gitdir (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "Removiendo worktrees/%s: archivo gitdir inválido" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "lectura corta (se esperaba %<PRIuMAX> bytes, se leyó %<PRIuMAX>)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "archivo gitdir inválido" + +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "archivo gitdir apunta a una ubicación inexistente" -#: builtin/worktree.c:126 +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "" -"Removiendo worktrees/%s: archivo gitdir apunta a una ubicación no existente" +msgid "Removing %s/%s: %s" +msgstr "Eliminando %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "reporta árboles de trabajo recortados" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "expirar árboles de trabajo más viejos a <tiempo>" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' ya existe" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "no es posible volver a agregar el árbol '%s'" +msgid "unusable worktree destination '%s'" +msgstr "destino de worktree inutilizable '%s'" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "'%s' es un árbol de trabajo faltante pero bloqueado;\n" -"usa 'add -f -f' para sobreescribir, o 'unlock' y 'prune' o 'remove' para " +"usa '%s -f -f' para sobreescribir, o 'unlock' y 'prune' o 'remove' para " "limpiar" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "'%s' es un árbol de trabajo faltante pero ya registrado;\n" -"usa 'add -f' para sobreescribir, o 'prune' o 'remove' para limpiar" +"usa '%s -f' para sobreescribir, o 'prune' o 'remove' para limpiar" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "no se pudo crear directorio de '%s'" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Preparando árbol de trabajo (nueva rama '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "Preparando árbol de trabajo (reiniciando rama '%s'; estaba en %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Preparando árbol de trabajo (haciendo checkout a '%s')" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Preparando árbol de trabajo (HEAD desacoplado %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" "hacer checkout a <rama> incluso si ya ha hecho checkout en otro árbol de " "trabajo" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "crear una nueva rama" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "crear o restablecer una rama" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "popular el nuevo árbol de trabajo" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "mantener el nuevo árbol de trabajo bloqueado" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "configurando modo tracking (mirar git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "" "intentar emparejar el nuevo nombre de rama con una rama de rastreo remoto" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B, y --detach son mutuamente exclusivas" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "--[no-]track solo puede ser usado si una nueva rama es creada" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "razón para bloquear" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' no es un árbol de trabajo" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "El árbol de trabajo principal no puede ser bloqueado ni desbloqueado" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' ya está bloqueado; razón: %s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' ya está bloqueado" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' no está bloqueado" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "" "árboles de trabajo conteniendo submódulos no puede ser movidos o eliminado" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "forzar move incluso si el árbol de trabajo está sucio o bloqueado" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' es un árbol de trabajo principal" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "no se pudo descubrir el nombre de destino de '%s'" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "el objetivo '%s' ya existe" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22203,7 +22421,7 @@ msgstr "" "no se puede mover un árbol de trabajo bloqueado, motivo del bloqueo: %s\n" "use 'move -f -f' para sobreescribir o desbloquear primero" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22211,37 +22429,37 @@ msgstr "" "no se puede mover un árbol de trabajo bloqueado;\n" "use 'move -f -f' para sobreescribir o desbloquear primero" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "falló validación, no se puede mover el árbol de trabajo: %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "falló al mover '%s' a '%s'" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "falló al ejecutar 'git status' en '%s'" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "'%s' contiene archivos no rastreados o modificados, use --force para borrarlo" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "no se pudo ejecutar 'git status' en '%s', código %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "forzar remoción incluso si el árbol de trabajo está sucio o bloqueado" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22250,7 +22468,7 @@ msgstr "" "no se pueden eliminar árbol de trabajo bloqueado, razón del bloqueo: %s\n" "use 'remove -f -f' para sobreescribir o desbloquear primero" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22258,7 +22476,7 @@ msgstr "" "no se pueden eliminar árbol de trabajo bloqueado;\n" "use 'remove -f -f' para sobreescribir o desbloquear primero" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "falló validación, no se puede eliminar árbol de trabajo: %s" @@ -22279,33 +22497,33 @@ msgstr "escribir objeto de árbol para un subdirectorio <prefijo>" msgid "only useful for debugging" msgstr "sólo útil para depurar" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "versión de git:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() falló con error '%s' (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "información del compilador: " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "información de libc: " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "no ejecutado desde un repositorio git - no hay hooks para mostrar\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "" "git bugreport [-o|--output-directory <archivo>] [-s|--suffix <formato>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22341,68 +22559,78 @@ msgstr "" "Por favor revisa el resto del reporte abajo.\n" "Puedes borrar cualquier lÃnea que no desees compartir.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "especificar el destino para el archivo de reporte de bug" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "especificar el sufijo formato strftime para el nombre del archivo." -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "no se pudo crear directorios principales para '%s'" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "Información del sistema" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Activar Hooks" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "no se pudo crear un archivo en '%s'" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "no es posible escribir en %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Crear un nuevo reporte en '%s'.\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "Faltan marcas from para el submódulo '%s'" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "Faltan marcas to para el submódulo '%s'" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "Se esperaba comando 'mark', se obtuvo %s" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "Se esperaba comando 'to', se obtuvo %s" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "" "Formato esperado de nombre:nombre de archivo para la opción de sobreescribir " "submódulo" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "caracterÃstica '%s' prohibida en input sin --allow-unsafe-features" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "argumento para --packfile tiene que se un hash válido (se obtuvo '%s')" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22581,32 +22809,32 @@ msgstr "Delegación de control no es soportada con cURL < 7.22.0" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "Fijación de llave pública no es soportada con cURL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REVOKE no soportado con cURL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Restricción de protocolo no soportada con cURL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "Backend SSL no soportado '%s'. Backends SSL soportados:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" "No se pudo configurar backend SSL a '%s': cURL fue construido sin backends " "SSL" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "No se pudo configurar backend SSL para '%s': ya configurado" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22617,114 +22845,137 @@ msgstr "" " preguntaba por: %s\n" " redireccionamiento: %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "quoting inválido en valor de push-option: '%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs no es válido: ¿es este un repositorio git?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "" "respuesta de servidor inválida; se esperaba servicio, se obtuvo un flush " "packet" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "respuesta de servidor inválida; se obtuvo '%s'" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "repositorio '%s' no encontrado" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "Autenticación falló para '%s'" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "no es posible acceder '%s':%s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "redirigiendo a %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "no deberÃa tener EOF cuando no es gentil en EOF" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "el servidor remoto envió un separador sin estado (stateless)" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "" "no es posible rebobinar rpc post data - intenta incrementando http.postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: mal caracter de largo de lÃnea: %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: packet de respuesta final inesperado" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC falló; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "no se puede manejar pushes tan grandes" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "no se puede desinflar el request; zlib deflate error %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "no se puede desinflar el request; zlib end error %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "%d bytes de header de longitud fueron recibidos" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "%d bytes de cuerpo se siguen esperando" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "dump http transport no soporta capacidades superficiales" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "fetch falló." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "no se puede hacer fetch por sha1 sobre smart http" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "error de protocolo: se esperaba sha/ref, se obtuvo '%s'" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "http transport no soporta %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push falló" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: uso: git remote-curl <remote> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl: error leyendo command stream de git" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl: fetch intentado sin un repositorio local" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl: comando '%s' desconocido de git" @@ -23431,46 +23682,50 @@ msgid "A useful minimum set of commands for Everyday Git" msgstr "Un conjunto mÃnimo útil de comandos diarios de Git" #: command-list.h:203 +msgid "Frequently asked questions about using Git" +msgstr "Preguntas frecuentes sobre el uso de Git" + +#: command-list.h:204 msgid "A Git Glossary" msgstr "Un Glosario de Git" -#: command-list.h:204 +#: command-list.h:205 msgid "Hooks used by Git" msgstr "Hooks utilizados por Git" -#: command-list.h:205 +#: command-list.h:206 msgid "Specifies intentionally untracked files to ignore" msgstr "Especifica de forma intencional archivos sin seguimiento a ignorar" -#: command-list.h:206 +#: command-list.h:207 msgid "Defining submodule properties" msgstr "Definiendo las propiedades del submódulo" -#: command-list.h:207 +#: command-list.h:208 msgid "Git namespaces" msgstr "Namespaces de Git" -#: command-list.h:208 +#: command-list.h:209 msgid "Git Repository Layout" msgstr "Disposición del repositorio Git" -#: command-list.h:209 +#: command-list.h:210 msgid "Specifying revisions and ranges for Git" msgstr "Especificando revisiones y rangos para Git" -#: command-list.h:210 +#: command-list.h:211 msgid "Mounting one repository inside another" msgstr "Montando un repositorio dentro de otro" -#: command-list.h:211 +#: command-list.h:212 msgid "A tutorial introduction to Git: part two" msgstr "Un tutorial de introducción a Git: parte dos" -#: command-list.h:212 +#: command-list.h:213 msgid "A tutorial introduction to Git" msgstr "Un tutorial de introducción para Git" -#: command-list.h:213 +#: command-list.h:214 msgid "An overview of recommended workflows with Git" msgstr "Una visión general de flujos de trabajo recomendados con Git" @@ -23765,26 +24020,26 @@ msgstr "Ruta de submódulo '$displaypath': '$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Falló al recurrir en la ruta de submódulo '$displaypath'" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "La opción --cached no puede ser usada con la opción --files" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "modo $mod_dst inesperado" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Advertencia: $display_name no contiene el commit $sha1_src" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Advertencia: $display_name no contiene el commit $sha1_dst" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -24207,7 +24462,7 @@ msgid_plural "touched %d paths\n" msgstr[0] "touch hecho a %d ruta\n" msgstr[1] "touch hecho a %d rutas\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24215,7 +24470,7 @@ msgstr "" "Si el parche aplica limpiamente, el hunk editado sera marcado\n" "inmediatamente para el área de stage." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24223,7 +24478,7 @@ msgstr "" "Si el parche aplica limpiamente, el hunk editado sera marcado\n" "inmediatamente para aplicar stash." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24231,8 +24486,8 @@ msgstr "" "Si el parche aplica limpiamente, el hunk editado sera marcado\n" "inmediatamente para sacar del área de stage." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24240,8 +24495,8 @@ msgstr "" "Si el parche aplica de forma limpia, el hunk editado sera marcado \n" "inmediatamente para aplicar." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24249,12 +24504,12 @@ msgstr "" "Si el parche aplica de forma limpia, el hunk editado sera marcado\n" "inmediatamente para descarte." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "falló al abrir el archivo de adición del hunk para escritura: %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24267,12 +24522,12 @@ msgstr "" "Para eliminar '%s' lÃneas, bórrelas.\n" "Lineas comenzando con %s serán eliminadas.\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "falló al abrir el archivo de edición del hunk para lectura: %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24287,7 +24542,7 @@ msgstr "" "d - no aplicar stage a este hunk o a ninguno de los posteriores en este " "archivo" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24301,7 +24556,7 @@ msgstr "" "a - aplicar stash a este hunk y a todos los posteriores en el archivo\n" "d - no aplicar stash a este hunk o ninguno de los posteriores en el archivo" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24316,7 +24571,7 @@ msgstr "" "d - no sacar del area de stage este hunk o ninguno de los posteriores en el " "archivo" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24330,7 +24585,7 @@ msgstr "" "a - aplicar este hunk y todos los posteriores en el archivo\n" "d - no aplicar este hunko ninguno de los posteriores en el archivo" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24344,7 +24599,7 @@ msgstr "" "a - descartar este hunk y todos los posteriores en este archivo\n" "d - no descartar este hunk o ninguno de los posteriores en el archivo" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24358,7 +24613,7 @@ msgstr "" "a - descartar este hunk y todos los posteriores en este archivo\n" "d - no descartar este hunk o ninguno posterior en el archivo" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24372,7 +24627,7 @@ msgstr "" "a - aplicar este hunk y todos los posteriores en el archivo\n" "d - no aplicar este hunk o ninguno de los siguientes en este archivo" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24386,7 +24641,7 @@ msgstr "" "a - aplicar este hunk y todos los posteriores en el archivo\n" "d - no aplicar este hunk o ninguno de los siguientes en este archivo" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24408,85 +24663,90 @@ msgstr "" "e - editar manualmente el hunk actual\n" "? - imprimir ayuda\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "¡Los hunks seleccionados no aplican al Ãndice!\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "ignorando lo no fusionado: %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "¿Aplicar cambio de modo para el árbol de trabajo [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "¿Aplicar borrado al árbol de trabajo [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "¿Aplicar adición al árbol de trabajo [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "¿Aplicar este hunk al árbol de trabajo [y,n,q,a,d,/%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "No hay más pedazos para el ir\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Numero inválido: '%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Lo siento, solo %d hunk disponible.\n" msgstr[1] "Lo siento, solo %d hunks disponibles.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "No hay más pedazos para buscar\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Regexp para la búsqueda mal formado %s: %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "No hay hunks que concuerden con el patrón entregado.\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "No el anterior hunk\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "No el siguiente hunk\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Perdón, no se puede dividir este pedazo\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "Cortar en %d hunk.\n" msgstr[1] "Cortar en %d hunks.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Perdón, no se puede editar este pedazo\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24506,19 +24766,19 @@ msgstr "" "add untracked - agrega contenidos de archivos no rastreados al grupo de " "cambios del area de stage\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "falta --" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "modo --patch desconocido: %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "argumento inválido %s, se esperaba --" @@ -24835,61 +25095,91 @@ msgstr "(mbox) Agregando cc: %s de lÃnea '%s'\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) Agregando para: %s de la lÃnea '%s'\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) Agregando cc: %s de la lÃnea '%s'\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(body) Agregando cc: %s de la lÃnea '%s'\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) no se pudo ejecutar '%s'" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) Agregando %s: %s de: '%s'\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) falló al cerrar el pipe para '%s'" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "no se puede mandar mensaje como 7bit" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "codificación de transferencia inválida" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "no es posible abrir %s: %s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s: el parche contiene una lÃnea con más de 998 caracteres" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "Saltando %s con el sufijo de backup '%s'.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "¿Realmente deseas mandar %s?[y|N]: " #, c-format +#~ msgid "Finding commits for commit graph from %d ref" +#~ msgid_plural "Finding commits for commit graph from %d refs" +#~ msgstr[0] "Encontrando commits para commit graph de %d ref" +#~ msgstr[1] "Encontrando commits para commit graph de %d refs" + +#, c-format +#~ msgid "invalid commit object id: %s" +#~ msgstr "id de objeto commit: %s inválido" + +#, c-format +#~ msgid "Removing worktrees/%s: not a valid directory" +#~ msgstr "Removiendo el worktrees/%s: no es un directorio válido" + +#, c-format +#~ msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +#~ msgstr "Removiendo worktrees/%s: no es posible leer el archivo gitdir (%s)" + +#, c-format +#~ msgid "Removing worktrees/%s: invalid gitdir file" +#~ msgstr "Removiendo worktrees/%s: archivo gitdir inválido" + +#, c-format +#~ msgid "unable to re-add worktree '%s'" +#~ msgstr "no es posible volver a agregar el árbol '%s'" + +#, c-format +#~ msgid "target '%s' already exists" +#~ msgstr "el objetivo '%s' ya existe" + +#, c-format #~ msgid "" #~ "Cannot update sparse checkout: the following entries are not up to date:\n" #~ "%s" @@ -76,8 +76,8 @@ msgid "" msgstr "" "Project-Id-Version: git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-27 11:04+0200\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-12 18:00+0200\n" "Last-Translator: Cédric Malard <c.malard-git@valdun.net>\n" "Language-Team: Jean-Noël Avila <jn.avila@free.fr>\n" "Language: fr\n" @@ -180,21 +180,21 @@ msgstr[1] "%d chemins ajoutés\n" msgid "ignoring unmerged: %s" msgstr "fichier non-fusionné ignoré : %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Seuls des fichiers binaires ont changé.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "Aucune modification.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Mise à jour par patch" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "Réviser la différence" @@ -265,11 +265,11 @@ msgstr "sélectionner un élément par son numéro" msgid "(empty) select nothing" msgstr "(vide) ne rien sélectionner" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Commandes ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Et maintenant ?" @@ -286,7 +286,7 @@ msgstr "non-indexé" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "chemin" @@ -295,27 +295,32 @@ msgstr "chemin" msgid "could not refresh index" msgstr "impossible de rafraîchir l'index" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Au revoir.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "Indexer le changement de mode [y,n,q,a,d%s,?] ? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "Indexer la suppression [y,n,q,a,d%s,?] ? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "Indexer l'ajout [y,n,q,a,d%s,?] ? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "Indexer cette section [y,n,q,a,d%s,?] ? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -323,7 +328,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera immédiatement " "marquée comme indexée." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -337,22 +342,27 @@ msgstr "" "a - indexer cette section et toutes les suivantes de ce fichier\n" "d - ne pas indexer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "Remiser le changement de mode [y,n,q,a,d%s,?] ? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "Remiser la suppression [y,n,q,a,d%s,?] ? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "Remiser l'ajout [y,n,q,a,d%s,?] ? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "Remiser cette section [y,n,q,a,d%s,?] ? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -360,7 +370,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera immédiatement " "marquée comme remisée." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -374,22 +384,27 @@ msgstr "" "a - remiser cette section et toutes les suivantes de ce fichier\n" "d - ne pas remiser cette section ni les suivantes de ce fichier\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "Désindexer le changement de mode [y,n,q,a,d%s,?] ? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "Désindexer la suppression [y,n,q,a,d%s,?] ? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "Désindexer l'ajout [y,n,q,a,d%s,?] ? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "Désindexer cette section [y,n,q,a,d%s,?] ? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -397,7 +412,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera immédiatement " "marquée comme desindexée." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -411,22 +426,27 @@ msgstr "" "a - désindexer cette section et toutes les suivantes de ce fichier\n" "d - ne pas désindexer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "Appliquer le changement de mode à l'index [y,n,q,a,d%s,?] ? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "Appliquer la suppression à l'index [y,n,q,a,d%s,?] ? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "Appliquer l'ajout à l'index [y,n,q,a,d%s,?] ? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "Appliquer cette section à l'index [y,n,q,a,d%s,?] ? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -434,7 +454,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera immédiatement " "marquée comme appliquée." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -448,25 +468,31 @@ msgstr "" "a - appliquer cette section et toutes les suivantes de ce fichier\n" "d - ne pas appliquer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "Abandonner le changement de mode dans l'arbre [y,n,q,a,d%s,?] ? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "Abandonner la suppression dans l'arbre [y,n,q,a,d%s,?] ? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "Abandonner l'ajout dans l'arbre [y,n,q,a,d%s,?] ? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "Abandonner cette section dans l'arbre [y,n,q,a,d%s,?] ? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -474,7 +500,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera immédiatement " "marquée comme éliminée." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -488,24 +514,29 @@ msgstr "" "a - supprimer cette section et toutes les suivantes de ce fichier\n" "d - ne pas supprimer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Abandonner le changement de mode dans l'index et l'arbre [y,n,q,a,d%s,?] ? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "Abandonner la suppression de l'index et de l'arbre [y,n,q,a,d%s,?] ? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "Abandonner l'ajout de l'index et de l'arbre [y,n,q,a,d%s,?] ? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Supprimer la section dans l'index et l'arbre de travail [y,n,q,a,d%s,?] ? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -519,27 +550,32 @@ msgstr "" "a - éliminer cette section et toutes les suivantes de ce fichier\n" "d - ne pas éliminer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Appliquer le changement de mode dans l'index et l'arbre de travail [y,n,q,a,d" "%s,?] ? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Appliquer la suppression dans l'index et l'arbre de travail [y,n,q,a,d" "%s,?] ? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "Appliquer l'ajout dans l'index et l'arbre de travail [y,n,q,a,d%s,?] ? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Appliquer la section à l'index et l'arbre de travail [y,n,q,a,d%s,?] ? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -553,7 +589,7 @@ msgstr "" "a - appliquer cette section et toutes les suivantes de ce fichier\n" "d - ne pas appliquer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -567,34 +603,34 @@ msgstr "" "a - appliquer cette section et toutes les suivantes de ce fichier\n" "d - ne pas appliquer cette section ni les suivantes de ce fichier\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "impossible d'analyser l'entête de section '%.*s'" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "impossible d'analyser l'entête coloré de section '%.*s'" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "impossible d'analyser la diff" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "impossible d'analyser la diff colorée" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "échec pour lancer '%s'" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "sortie sans correspondance depuis interactive.diffFilter" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -602,7 +638,7 @@ msgstr "" "Votre filtre doit maintenir une correspondance un-pour-un\n" "entre les lignes en entrée et en sortie." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -611,7 +647,7 @@ msgstr "" "ligne de contexte attendue #%d dans\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -624,12 +660,12 @@ msgstr "" "\tne se termine pas par :\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "" "Mode d'édition manuelle de section -- voir ci-dessous pour un guide rapide.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -643,7 +679,7 @@ msgstr "" "Les lignes commençant par %c seront éliminées.\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -653,11 +689,11 @@ msgstr "" "l'éditer à nouveau. Si toutes les lignes de la section sont supprimées,\n" "alors l'édition sera abandonnée et la section conservée.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "impossible d'analyser l'entête de section" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "'git apply --cached' a échoué" @@ -673,26 +709,26 @@ msgstr "'git apply --cached' a échoué" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "Votre section éditée ne s'applique pas. L'éditer à nouveau (\"no\" " "l'élimine !) [y|n] ? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "Les sections sélectionnées ne s'applique pas à l'index !" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "Les appliquer quand même à l'arbre de travail ? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Rien n'a été appliqué.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -714,69 +750,69 @@ msgstr "" "e - éditer manuellement la section actuelle\n" "? - afficher l'aide\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "Pas de section précédente" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "Pas de section suivante" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "Aucune autre section à atteindre" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "aller à quelle section (<ret> pour voir plus) ? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "aller à quelle section ? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Numéro invalide : '%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Désolé, %d seule section disponible." msgstr[1] "Désolé, Seulement %d sections disponibles." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "aucune autre section à rechercher" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "rechercher la regex ? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Regex de recherche malformée %s : %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "Aucune section ne correspond au motif donné" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Désolé, impossible de découper cette section" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "Découpée en %d sections." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Désolé, impossible d'éditer cette section" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' a échoué" @@ -785,7 +821,9 @@ msgstr "'git apply' a échoué" msgid "" "\n" "Disable this message with \"git config advice.%s false\"" -msgstr "\nDésactivez ce message avec \"git config advice.%s false\"" +msgstr "" +"\n" +"Désactivez ce message avec \"git config advice.%s false\"" #: advice.c:156 #, c-format @@ -1478,7 +1516,7 @@ msgstr "s'assurer d'au moins <n> lignes de correspondance de contexte" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "action" @@ -1571,7 +1609,7 @@ msgstr "le chemin n'est pas codé en UTF-8 valide : %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "le chemin est trop long (%d caractères, SHA1 : %s) : %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "erreur de compression (%d)" @@ -1641,8 +1679,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "préfixer chaque chemin de fichier dans l'archive" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1869,10 +1907,10 @@ msgstr "" "--reverse et --first-parent ensemble nécessitent la spécification d'un " "dernier commit" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "échec de la préparation du parcours des révisions" @@ -2042,84 +2080,88 @@ msgstr "'%s' est déjà extrait dans '%s'" msgid "HEAD of working tree %s is not updated" msgstr "la HEAD de la copie de travail %s n'est pas mise à jour" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' ne semble pas être un fichier bundle v2" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "longueur d'algorithme d'empreinte inconnue" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "en-tête non reconnu : %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "impossible d'ouvrir '%s'" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Le dépôt ne dispose pas des commits prérequis suivants :" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "la vérification d'un colis requiert un dépôt" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "Le colis contient cette référence :" msgstr[1] "Le colis contient ces %d références :" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "Le colis enregistre l'historique complet." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "Le colis exige cette référence :" msgstr[1] "Le colis exige ces %d références :" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "impossible de dupliquer le descripteur de liasse" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "Impossible de créer des objets groupés" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "les objets groupés ont disparu" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list a disparu" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "la référence '%s' est exclue par les options de rev-list" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "argument non reconnu : %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "Refus de créer un colis vide." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "impossible de créer '%s'" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "l'index de groupe a disparu" @@ -2128,271 +2170,263 @@ msgstr "l'index de groupe a disparu" msgid "invalid color value: %.*s" msgstr "Valeur invalide de couleur : %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "le graphe de commit est trop petit" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "" "la signature du graphe de commit %X ne correspond pas à la signature %X" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "la version %X du graphe de commit ne correspond pas à la version %X" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "" "l'empreinte de la version %X du graphe de commit ne correspond pas à la " "version %X" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "entrée de table de consultation de morceaux de graphe de commite manquante ; " "le fichier est peut être incomplet" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "décalage de bloc %08x%08x du graphe de commit inadéquat" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "l'id de bloc de graphe de commit %08x apparaît des multiples fois" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "le graphe de commit n'a pas de section de graphes de base" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "la chaîne de graphe de commit ne correspond pas" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "" "chaîne de graphe de commit invalide : la ligne '%s' n'est pas une empreinte" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "impossible de trouver tous les fichiers du graphe de commit" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "" "position de commit invalide. Le graphe de commit est vraisemblablement " "corrompu" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "impossible de trouver le commit %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "impossible d'analyser le commit %s" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "Écriture de l'index des filtres Bloom des chemins modifiés" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "Écriture des données des filtres Bloom des chemins modifiés" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "impossible d'obtenir le type de l'objet %s" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Lecture des commits connus dans un graphe de commit" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "Expansion des commits joignables dans un graphe de commit" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Suppression les marques de commit dans le graphe de commits" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Calcul des chiffres de génération du graphe de commits" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "Calcul des filtres Bloom des chemins modifiés du commit" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "Collecte des commits référencés" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Recherche de commits pour un graphe de commits dans %d paquet" msgstr[1] "Recherche de commits pour un graphe de commits dans %d paquets" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "erreur à l'ajout du packet %s" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "erreur à l'ouverture de l'index pour %s" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "Recherche de commits pour un graphe de commits depuis %d réf" -msgstr[1] "Recherche de commits pour un graphe de commits depuis %d réfs" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "identifiant d'objet commit invalide : %s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "" "Recherche de commits pour un graphe de commits parmi les objets empaquetés" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Comptage des commits distincts dans un graphe de commit" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Recherche d'arêtes supplémentaires dans un graphe de commits" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "échec à l'écriture le nombre correct d'id de base de fusion" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "impossible de créer les répertoires de premier niveau de %s" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "impossible de créer une couche de graphe temporaire" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "impossible de régler les droits partagés pour '%s'" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Écriture le graphe de commits en %d passe" msgstr[1] "Écriture le graphe de commits en %d passes" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "impossible d'ouvrir le fichier de graphe de commit" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "échec du renommage du fichier de graphe de commits" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "impossible de renommer le fichier temporaire de graphe de commits" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "Analyse des commits de fusion" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "id de commit %s dupliqué inattendu" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "fusion du graphe de commits" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "le graphe de commits ne peut pas écrire %d commits" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "trop de commits pour écrire un graphe" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "le graphe de commit a une somme de contrôle incorrecte et est " "vraisemblablement corrompu" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "le graphe de commit a un ordre d'OID incorrect : %s puis %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "" "le graphe de commit a une valeur de dispersion incorrecte : dispersion[%d] = " "%u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "échec de l'analyse le commit %s depuis le graphe de commits" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Verification des commits dans le graphe de commits" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "échec de l'analyse du commit %s depuis la base de données d'objets pour le " "graphe de commit" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" "l'OID de l'arbre racine pour le commit %s dans le graphe de commit est %s != " "%s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "" "la liste des parents du graphe de commit pour le commit %s est trop longue" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "le parent du graphe de commit pour %s est %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "" "la liste de parents du graphe de commit pour le commit %s se termine trop tôt" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2400,7 +2434,7 @@ msgstr "" "le graphe de commit a un numéro de génération nul pour le commit %s, mais " "non-nul ailleurs" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2408,12 +2442,12 @@ msgstr "" "le graphe de commit a un numéro de génération non-nul pour le commit %s, " "mais nul ailleurs" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "la génération du graphe de commit pour le commit %s est %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2451,27 +2485,27 @@ msgstr "" "Supprimez ce message en lançant\n" "\"git config advice.graftFileDeprecated false\"" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "La validation %s a une signature GPG non fiable, prétendument par %s." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "La validation %s a une mauvaise signature GPG prétendument par %s." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "La validation %s n'a pas de signature GPG." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "La validation %s a une signature GPG correcte par %s\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2674,7 +2708,7 @@ msgstr "valeur mal formée pour %s : %s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "doit être parmi nothing, matching, simple, upstream ou current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "niveau de compression du paquet %d" @@ -2827,72 +2861,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "Le serveur ne supporte pas '%s'" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "Le serveur ne supporte pas la fonctionnalité '%s'" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "vidage attendu après les capacités" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "capacités ignorées après la première ligne '%s'" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "erreur de protocole : capabilities^{} inattendu" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "erreur de protocole : shallow sha-1 attendu, '%s' trouvé" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "le dépôt distant ne peut pas être superficiel" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "paquet invalide" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "erreur de protocole : '%s' attendu" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "format d'objet spécifié par le serveur inconnu '%s'" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "réponse à ls-ref invalide : %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "vidage attendu après le listage de références" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "paquet de fin de réponse attendu après le listage de références" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "le protocole '%s' n'est pas supporté" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "impossible de positionner SO_KEEPALIVE sur la socket" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "Recherche de %s… " -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "impossible de rechercher %s (port %s) (%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2901,7 +2944,7 @@ msgstr "" "fait.\n" "Connexion à %s (port %s)… " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2911,75 +2954,75 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "fait." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "impossible de rechercher %s (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "port inconnu %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "nom d'hôte étrange '%s' bloqué" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "port étrange '%s' bloqué" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "impossible de démarrer un proxy %s" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "" "aucun chemin spécifié ; référez-vous à 'git help pull' pour une syntaxe " "d'URL valide" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "la variante ssh 'simple' ne supporte pas -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "la variante ssh 'simple' ne supporte pas -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "la variante ssh 'simple' ne supporte pas de spécifier le port" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "chemin étrange '%s' bloqué" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "fork impossible" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Vérification de la connectivité" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "Impossible de lancer 'git rev-list'" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "impossible d'écrire dans la rev-list" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "impossible de fermer l'entrée standard du rev-list" @@ -3116,7 +3159,9 @@ msgstr "%s : le filtre smudge '%s' a échoué" #: credential.c:96 #, c-format msgid "skipping credential lookup for key: credential.%s" -msgstr "vérification des informations d'identification sautée pour la clé : credential.%s" +msgstr "" +"vérification des informations d'identification sautée pour la clé : " +"credential.%s" #: credential.c:112 msgid "refusing to work with credential missing host field" @@ -3124,7 +3169,8 @@ msgstr "refus de travailler avec un champ host manquant dans l'identification" #: credential.c:114 msgid "refusing to work with credential missing protocol field" -msgstr "refus de travailler avec un champ protocol manquant dans l'identification" +msgstr "" +"refus de travailler avec un champ protocol manquant dans l'identification" #: credential.c:396 #, c-format @@ -3247,18 +3293,18 @@ msgstr "" "Pas un dépôt git. Utilisez --no-index pour comparer deux chemins hors d'un " "arbre de travail" -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Impossible d'analyser le pourcentage de modification de dirstat '%s'\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Paramètre dirstat inconnu '%s'\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3266,7 +3312,7 @@ msgstr "" "le paramètre de couleur de déplacement doit être parmi 'no', 'default', " "'blocks', 'zebra', 'dimmed_zebra' ou 'plain'" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3276,7 +3322,7 @@ msgstr "" "space-change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-" "change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3284,13 +3330,13 @@ msgstr "" "color-moved-ws : allow-indentation-change ne peut pas être combiné avec " "d'autres modes d'espace" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" "Valeur inconnue pour la variable de configuration 'diff.submodule' : '%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3299,35 +3345,35 @@ msgstr "" "Erreurs dans la variable de configuration 'diff.dirstat' :\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "l'application de diff externe a disparu, arrêt à %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-only, --name-status, --check et -s sont mutuellement exclusifs" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-G, -S et --find-object sont mutuellement exclusifs" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow a besoin d'une spécification de chemin unique" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "valeur invalide de --stat : %s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s attend une valeur numérique" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3336,42 +3382,42 @@ msgstr "" "Impossible d'analyser le paramètre de l'option --dirstat/-X :\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "classe de modification inconnue '%c' dans --diff-fileter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "valeur inconnue après ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "impossible de résoudre '%s'" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "forme <n>/<m> attendue par %s" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "caractère attendu par %s, '%s' trouvé" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "mauvais argument --color-moved : %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "mode invalide '%s' dans --color-moved-ws" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3379,155 +3425,155 @@ msgstr "" "l'option diff-algorithm accept \"myers\", \"minimal\", \"patience\" et " "\"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "argument invalide pour %s" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "échec de l'analyse du paramètre de l'option --submodule : '%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "mauvais argument pour --word-diff : %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Options de format de sortie de diff" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "générer la rustine" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "supprimer la sortie des différences" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "générer les diffs avec <n> lignes de contexte" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "générer le diff en format brut" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "synonyme de '-p --raw'" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "synonyme de '-p --stat'" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "--stat pour traitement automatique" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "afficher seulement la dernière ligne de --stat" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<param1,param2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" "afficher la distribution des quantités de modifications relatives pour " "chaque sous-répertoire" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "synonyme pour --dirstat=cumulative" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "synonyme pour --dirstat=files,param1,param2..." -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "avertir si les modifications introduisent des marqueurs de conflit ou des " "erreurs d'espace" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "" "résumé succinct tel que les créations, les renommages et les modifications " "de mode" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "n'afficher que les noms de fichiers modifiés" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "n'afficher que les noms et les status des fichiers modifiés" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<largeur>[,<largeur-de-nom>[,<compte>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "générer un diffstat" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<largeur>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "générer un diffstat avec la largeur indiquée" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "génerer un diffstat avec la largeur de nom indiquée" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "génerer un diffstat avec la largeur de graphe indiquée" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<compte>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "générer un diffstat avec des lignes limitées" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "générer une résumé compact dans le diffstat" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "produire un diff binaire qui peut être appliqué" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "" "afficher les noms complets des objets pre- et post-image sur les lignes " "\"index\"" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "afficher un diff coloré" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<sorte>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3535,7 +3581,7 @@ msgstr "" "surligner les erreurs d'espace dans les lignes 'contexte', 'ancien', " "'nouveau' dans le diff" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3543,93 +3589,93 @@ msgstr "" "ne pas compresser les chemins et utiliser des NULs comme terminateurs de " "champs dans --raw ou --numstat" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<préfixe>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "afficher le préfixe de source indiqué au lieu de \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "afficher le préfixe de destination indiqué au lieu de \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "préfixer toutes les lignes en sortie avec la chaîne indiquée" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "n'afficher aucun préfixe, ni de source, ni de destination" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "" "afficher le contexte entre les sections à concurrence du nombre de ligne " "indiqué" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<caractère>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "spécifier le caractère pour indiquer une nouvelle ligne au lieu de '+'" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "spécifier le caractère pour indiquer une ancienne ligne au lieu de '-'" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "" "spécifier le caractère pour indiquer une ligne de contexte au lieu de ' '" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Options de renommage de diff" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "" "casser les modifications d'une réécrire complète en paires de suppression et " "création" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "détecter les renommages" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "supprimer la pré-image pour les suppressions" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "détecter les copies" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "" "utiliser les fichiers non-modifiés comme sources pour trouver des copies" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "désactiver la détection de renommage" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "utiliser des blobs vides comme source de renommage" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "continuer à afficher l'historique d'un fichier au delà des renommages" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3637,161 +3683,161 @@ msgstr "" "empêcher la détection de renommage/copie si le nombre de cibles de renommage/" "copie excède la limite indiquée" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Options de l'algorithme de diff" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "produire le diff le plus petit possible" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "ignorer les espaces lors de la comparaison de ligne" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "ignorer des modifications du nombre d'espaces" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "ignorer des modifications d'espace en fin de ligne" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "ignore le retour chariot en fin de ligne" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "ignorer les modifications dont les lignes sont vides" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "" "heuristique qui déplace les limites de sections de diff pour faciliter la " "lecture" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "générer un diff en utilisant l'algorithme de différence \"patience\"" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "" "générer un diff en utilisant l'algorithme de différence \"histogramme\"" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<algorithme>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "choisir un algorithme de différence" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<texte>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "générer un diff en utilisant l'algorithme de différence \"ancré\"" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<mode>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "" "afficher des différences par mot, en utilisant <mode> pour délimiter les " "mots modifiés" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<regex>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "utiliser <regex> pour décider ce qu'est un mot" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "équivalent à --word-diff=color --word-diff-regex=<regex>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "les lignes déplacées sont colorées différemment" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "comment les espaces sont ignorés dans --color-moved" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "Autres options diff" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "lancé depuis un sous-répertoire, exclure les modifications en dehors et " "afficher les chemins relatifs" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "traiter les fichiers comme texte" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "échanger les entrées, inverser le diff" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "sortir un code d'erreur 1 s'il y avait de différences, 0 sinon" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "désactiver tous les affichages du programme" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "autoriser l'exécution d'un assistant externe de diff" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" "lancer les filtres externes de conversion en texte lors de la comparaison de " "fichiers binaires" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<quand>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "" "ignorer les modifications dans les sous-modules lors de la génération de diff" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<format>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "spécifier comment les différences dans les sous-modules sont affichées" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "masquer les entrées 'git add -N' de l'index" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "traiter les entrées 'git add -N' comme réelles dans l'index" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<chaîne>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" @@ -3799,7 +3845,7 @@ msgstr "" "rechercher les différences qui modifient le nombre d'occurrences de la " "chaîne spécifiée" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -3807,26 +3853,26 @@ msgstr "" "rechercher les différences qui modifient le nombre d'occurrences de la regex " "spécifiée" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "" "afficher toutes les modifications dans l'ensemble de modifications avec -S " "ou -G" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "" "traiter <chaîne> dans -S comme une expression rationnelle POSIX étendue" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "contrôler l'ordre dans lequel les fichiers apparaissent dans la sortie" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<id-objet>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" @@ -3834,35 +3880,35 @@ msgstr "" "rechercher les différences qui modifient le nombre d'occurrences de l'objet " "indiqué" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "sélectionner les fichiers par types de diff" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<fichier>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "Sortie vers un fichier spécifié" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "détection de renommage inexact annulée à cause d'un trop grand nombre de " "fichiers." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "" "recherche uniquement des copies par modification de chemin à cause d'un trop " "grand nombre de fichiers." -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3879,62 +3925,62 @@ msgstr "impossible de lire le fichier de commande '%s'" msgid "Performing inexact rename detection" msgstr "Détection de renommage inexact en cours" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "" "le spécificateur de chemin '%s' ne correspond à aucun fichier connu de git" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "motif non reconnu : '%s'" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "motif négatif non reconnu : '%s'" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "" "votre fichier d'extraction partielle pourrait présenter des problèmes : le " "motif '%s' est répété" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "désactivation de la correspondance de motif de cone" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "impossible d'utiliser %s comme fichier d'exclusion" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "impossible d'ouvrir le répertoire '%s'" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "echec de l'obtention d'information de kernel" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "Le cache non suivi est désactivé sur ce système ou sur cet endroit" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "fichier d'index corrompu dans le dépôt %s" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "impossible de créer les répertoires pour %s" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "impossible de migrer le répertoire git de '%s' vers '%s'" @@ -3946,11 +3992,11 @@ msgstr "" "suggestion : en attente de la fermeture du fichier par votre éditeur de " "texte…%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "Filtrage du contenu" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "impossible de stat le fichier '%s'" @@ -3970,228 +4016,246 @@ msgstr "impossible de régler GIT_DIR à '%s'" msgid "too many args to run %s" msgstr "trop d'arguments pour lancer %s" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack : liste superficielle attendue" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "" "git fetch-pack : paquet de vidage attendu après une liste superficielle" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack : ACK/NACK attendu, paquet de nettoyage reçu" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack : ACK/NACK attendu, '%s' reçu" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "impossible d'écrire sur un distant" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc nécessite multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "ligne de superficiel invalide : %s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "ligne de fin de superficiel invalide : %s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "objet non trouvé : %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "Erreur dans l'objet : %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "Pas de superficiel trouvé : %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "superficiel/non superficiel attendu, %s trouvé" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "réponse %s %d %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "commit invalide %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "abandon" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "fait" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "%s trouvé (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "Marquage de %s comme terminé" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "%s déjà possédé (%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack : impossible de dupliquer le démultiplexeur latéral" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "erreur de protocole : mauvais entête de paquet" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack : impossible de dupliquer %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "échec de %s" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "erreur dans le démultiplexer latéral" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "La version du serveur est %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "Le serveur supporte %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "Le serveur ne supporte les clients superficiels" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "Le receveur ne gère pas --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "Le receveur ne gère pas --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "Le receveur ne gère pas --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "Le serveur ne supporte pas ce format d'objets de ce dépôt" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "pas de commit commun" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack : échec de le récupération." #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "non-correspondance des algorithmes : client %s ; serveur %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "Le serveur ne supporte pas l'algorithme '%s'" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" -msgstr "Le serveur ne supporte les requêtes superficielles" +msgstr "Le serveur ne supporte pas les requêtes superficielles" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "Le serveur supporte filter" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "impossible d'écrire la requête sur le distant" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "erreur à la lecture de l'entête de section '%s'" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "'%s' attendu, '%s' reçu" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "ligne d'acquittement inattendue : '%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "erreur lors du traitement des acquittements : %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "fichier paquet attendu à envoyer après 'ready'" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "aucune autre section attendue à envoyer après absence de 'ready'" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "erreur lors du traitement de l'information de superficialité : %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "wanted-ref attendu, '%s' trouvé" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "wanted-ref inattendu : '%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "erreur lors du traitement des références voulues : %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack : paquet de fin de réponse attendu" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "pas de HEAD distante correspondante" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "référence distante inconnue %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "Le serveur n'autorise pas de requête pour l'objet %s non annoncé" @@ -4227,7 +4291,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s' : lecture de %s impossible" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4376,16 +4440,16 @@ msgstr[1] "" "\n" "Les commandes les plus ressemblantes sont" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<options>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4485,6 +4549,10 @@ msgstr "quelque chose attendu après combine :" msgid "multiple filter-specs cannot be combined" msgstr "impossible de combiner des spécificateurs multiples de filtre" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "impossible de mettre à jour le format de dépôt pour supporter les clones partiels" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4851,7 +4919,7 @@ msgstr "ajout/ajout" msgid "Skipped %s (merged same as existing)" msgstr "%s sauté (fusion identique à l'existant)" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "sous-module" @@ -4980,7 +5048,7 @@ msgid "failed to read the cache" msgstr "impossible de lire le cache" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "impossible d'écrire le nouveau fichier d'index" @@ -5233,21 +5301,21 @@ msgstr "impossible d'analyser l'objet : %s" msgid "hash mismatch %s" msgstr "incohérence de hachage %s" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "impossible de récupérer la taille de %s" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "offset avant la fin du fichier paquet (.idx cassé ?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "offset avant le début de l'index de paquet pour %s (index corrompu ?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "" @@ -5457,46 +5525,50 @@ msgid "unable to write delim packet" msgstr "impossible d'écrire le paquet de délimitation" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "impossible d'écrire le paquet de séparateur sans état" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "échec de l'écriture du vidage de paquet" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "erreur de protocole : ligne impossiblement trop longue" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "échec de l'écriture d'un paquet avec format" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "" "échec de l'écriture d'un paquet ‑ les données dépassent la taille maximale " "d'un paquet" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "échec de l'écriture d'un paquet" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "erreur de lecture" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "L'hôte distant a fermé la connexion de manière inattendue" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "erreur de protocole : mauvais caractère de longueur de ligne : %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "erreur de protocole : mauvaise longueur de ligne %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "erreur distante : %s" @@ -5545,7 +5617,9 @@ msgstr "impossible d'analyser le commit '%s'" msgid "" "could not parse first line of `log` output: did not start with 'commit ': " "'%s'" -msgstr "impossible d'analyser la première ligne de la sortie de `log` : ne commence pas par 'commit' : '%s'" +msgstr "" +"impossible d'analyser la première ligne de la sortie de `log` : ne commence " +"pas par 'commit' : '%s'" #: range-diff.c:137 #, c-format @@ -5674,7 +5748,7 @@ msgstr "entrées de préparation non ordonnées pour '%s'" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5731,7 +5805,7 @@ msgstr "impossible de rafraîchir l'index partagé '%s'" msgid "broken index, expect %s in %s, got %s" msgstr "index cassé, %s attendu dans %s, %s obtenu" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "impossible de fermer '%s'" @@ -5916,7 +5990,7 @@ msgid "could not read '%s'." msgstr "impossible de lire '%s'." # à priori on parle d'une branche ici -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "disparue" @@ -6141,7 +6215,7 @@ msgstr "objet malformé à '%s'" msgid "ignoring ref with broken name %s" msgstr "réf avec un nom cassé %s ignoré" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "réf cassé %s ignoré" @@ -6171,94 +6245,108 @@ msgstr "nom d'objet malformé %s" msgid "option `%s' must point to a commit" msgstr "l'option '%s' doit pointer sur un commit" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "%s ne pointe pas sur un objet valide!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "impossible de récupérer `%s`" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "Nom de branche invalide : %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "symref pendant %s ignoré" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "impossible d'ouvrir '%s' en écriture : %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "impossible de lire la réf '%s'" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "la référence '%s' existe déjà " -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "id d'objet inattendu pendant l'écriture de '%s'" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "impossible d'écrire dans '%s'" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "impossible d'ouvrir '%s' en écriture" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "id d'objet inattendu pendant la suppression de '%s'" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "le journal pour la réf %s contient un trou après %s" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "le journal pour la réf %s s'arrête de manière inattendue sur %s" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "le journal pour la réf %s est vide" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "refus de mettre à jour une réf avec un nom cassé '%s'" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "échec de update_ref pour la réf '%s' : %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "mises à jour multiples pour la réf '%s' non permises" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "mises à jour des références interdites en environnement de quarantaine" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "mises à jour des références annulées par le crochet" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' existe ; impossible de créer '%s'" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "impossible de traiter '%s' et '%s' en même temps" @@ -6555,7 +6643,7 @@ msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr "" " (utilisez \"git pull\" pour fusionner la branche distante dans la vôtre)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "impossible d'analyser le nom attendu d'objet '%s'" @@ -6578,7 +6666,8 @@ msgstr "profondeur de remplacement trop grande pour l'objet %s" #: repository.c:94 builtin/init-db.c:188 #, c-format msgid "The hash algorithm %s is not supported in this build." -msgstr "L'algorithme d'empreinte %s n'est pas pris en charge par cette version." +msgstr "" +"L'algorithme d'empreinte %s n'est pas pris en charge par cette version." #: rerere.c:217 rerere.c:226 rerere.c:229 msgid "corrupt MERGE_RR" @@ -6682,20 +6771,20 @@ msgstr "impossible de déterminer la révision HEAD" msgid "failed to find tree of %s" msgstr "impossible de trouver l'arbre de %s" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "votre branche actuelle semble cassée" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "votre branche actuelle '%s' ne contient encore aucun commit" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent est incompatible avec --bisect" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L ne supporte pas encore les formats de diff autres que -p et -s" @@ -6738,11 +6827,15 @@ msgstr "le dépaquetage a échoué : %s" msgid "failed to sign the push certificate" msgstr "impossible de signer le certificat de poussée" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "Le receveur ne gère pas l'algorithme d'empreinte de ce dépôt" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "Le receveur ne gère pas les poussées avec --signed" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6750,11 +6843,11 @@ msgstr "" "pas d'envoi de certificat de poussée car le receveur ne gère pas les " "poussées avec --signed" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "Le receveur ne gère pas les poussées avec --atomic" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "Le receveur ne gère pas les options de poussées" @@ -6875,7 +6968,7 @@ msgstr "aucune clé présente dans '%.*s'" msgid "unable to dequote value of '%s'" msgstr "Impossible de décoter la valeur de '%s'" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7515,7 +7608,8 @@ msgstr "L'application du remisage automatique a créé des conflits." #: sequencer.c:3765 msgid "Autostash exists; creating a new stash entry." -msgstr "Un remisage automatique existe ; création d'une nouvelle entrée de remisage." +msgstr "" +"Un remisage automatique existe ; création d'une nouvelle entrée de remisage." #: sequencer.c:3857 #, c-format @@ -7719,84 +7813,84 @@ msgstr "" msgid "this operation must be run in a work tree" msgstr "Cette opération doit être effectuée dans un arbre de travail" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Version attendue du dépôt git <= %d, %d trouvée" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "extensions de dépôt inconnues trouvées :" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "erreur à l'ouverture de '%s'" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "trop gros pour être une fichier .git : '%s'" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "erreur à la lecture de %s" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "format de fichier git invalide : %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "aucun chemin dans le fichier git : %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "ce n'est pas un dépôt git : %s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' trop gros" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "ce n'est pas un dépôt git : '%s'" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "impossible de se déplacer vers le répertoire (chdir) '%s'" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "impossible de revenir au répertoire de travail courant" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "échec du stat de '%*s%s%s'" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Impossible d'accéder au répertoire de travail courant" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "impossible de modifier en '%s'" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "ni ceci ni aucun de ses répertoires parents n'est un dépôt git : %s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7807,7 +7901,7 @@ msgstr "" "Arrêt à la limite du système de fichiers (GIT_DISCOVERY_ACROSS_FILESYSTEM " "n'est pas défini)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7817,15 +7911,15 @@ msgstr "" "Le propriétaire des fichiers doit toujours avoir les droits en lecture et " "écriture." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "échec de l'ouverture ou au dup de /dev/null" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "échec de la bifurcation" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "échec du setsid" @@ -8009,7 +8103,7 @@ msgstr "échec de deflateEnd sur l'objet %s (%d)" msgid "confused by unstable object source data for %s" msgstr "données de source d'objet instable pour %s" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "échec de utime() sur %s" @@ -8189,43 +8283,43 @@ msgid "invalid object name '%.*s'." msgstr "nom d'objet invalide : '%.*s'." #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u Gio" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u Gio/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u Mio" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u Mio/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u Kio" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u Kio/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8233,14 +8327,14 @@ msgstr[0] "%u octet" msgstr[1] "%u octets" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u octet/s" msgstr[1] "%u octets/s" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "impossible d'éditer '%s'" @@ -8492,7 +8586,7 @@ msgstr "impossible de lire le fichier d'entrée '%s'" msgid "could not read from stdin" msgstr "Impossible de lire depuis l'entrée standard" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "stat impossible de %s" @@ -8516,21 +8610,21 @@ msgstr "impossible de créer un fichier temporaire" msgid "could not rename temporary file to %s" msgstr "impossible de renommer un fichier temporaire en %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "échec de l'écriture totale sur l'assistant distant" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "Impossible de trouver un assistant distant pour '%s'" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "" "impossible de dupliquer le descripteur de flux de sortie de l'assistant" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8539,161 +8633,166 @@ msgstr "" "capacité obligatoire inconnue %s ; cet assistant distant requiert " "probablement une une nouvelle version de Git" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "cet assistant distant devrait supporter la capacité refspec" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s a dit de manière inattendue : '%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s a aussi verrouillé %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "impossible de lancer fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "erreur au lancement de fast-import" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "impossible de lire la réf %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "réponse inconnue à connect : %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "" "la spécification du chemin de service distant n'est pas supportée par le " "protocole" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "chemin de service distant invalide" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "option non supportée par le protocole" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "impossible de se connecter au sous-service %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "ok/error attendu, l'assistant a dit '%s'" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "l'assistant a renvoyé un statut de retour inattendu %s" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "l'assistant %s ne gère pas dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "l'assistant %s ne gère pas --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "l'assistant %s ne gère pas --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "l'assistant %s ne gère pas --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "l'assistant %s ne gère pas 'push-option'" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "" "l'assistant %s ne gère pas push ; un spécificateur de référence est " "nécessaire" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "l'assistant %s ne gère pas 'force'" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "impossible de lancer fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "erreur au lancement de fast-export" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "Aucune référence en commun et aucune spécfiée ; rien à faire.\n" -"Vous devriez peut-être spécifier une branche telle que 'master'.\n" +"Vous devriez peut-être spécifier une branche.\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "format d'objet non géré '%s'" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "réponse malformée dans le liste de réfs : %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "échec de read(%s)" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "échec de write(%s)" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "échec du fil d'exécution %s" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "échec de jonction du fil d'exécution %s : %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "impossible de démarrer le fil d'exécution pour copier les données : %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "échec du processus %s pour l'attente" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "échec du processus %s" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "impossible de démarrer le fil d'exécution pour copier les données" @@ -8707,33 +8806,33 @@ msgstr "Positionnerait la branche amont de '%s' sur '%s' de '%s'\n" msgid "could not read bundle '%s'" msgstr "impossible de lire la liasse '%s'" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "transport : option de profondeur invalide '%s'" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "voir protocol.version dans 'git help config' pour plus d'information" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "les options de serveur exigent une version 2 ou supérieure" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "impossible d'analyser la configuration transport.color.*" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "le support du protocole v2 n'est pas encore implanté" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "valeur inconnue pour la config '%s' : %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "transport '%s' non permis" @@ -8742,7 +8841,7 @@ msgstr "transport '%s' non permis" msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync n'est plus supporté" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8751,7 +8850,7 @@ msgstr "" "Les chemins suivants de sous-module contiennent des modifications\n" "qui ne peuvent être trouvées sur aucun distant :\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8778,11 +8877,11 @@ msgstr "" "pour les pousser vers un serveur distant.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Abandon." -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "échec de la poussée de tous les sous-modules nécessaires" @@ -9008,7 +9107,8 @@ msgid "" "patterns:\n" "%s" msgstr "" -"Les chemins suivants ne sont pas à jour et ont été laissés malgré les motifs clairsemés :\n" +"Les chemins suivants ne sont pas à jour et ont été laissés malgré les motifs " +"clairsemés :\n" "%s" #: unpack-trees.c:180 @@ -9017,7 +9117,8 @@ msgid "" "The following paths are unmerged and were left despite sparse patterns:\n" "%s" msgstr "" -"Les chemins suivants ne sont pas fusionnés et ont été laissés malgré les motifs clairsemés :\n" +"Les chemins suivants ne sont pas fusionnés et ont été laissés malgré les " +"motifs clairsemés :\n" "%s" #: unpack-trees.c:182 @@ -9027,7 +9128,8 @@ msgid "" "patterns:\n" "%s" msgstr "" -"Les chemins suivants étaient déjà présents et ont été laissés malgré les motifs clairsemés :\n" +"Les chemins suivants étaient déjà présents et ont été laissés malgré les " +"motifs clairsemés :\n" "%s" #: unpack-trees.c:262 @@ -9040,7 +9142,9 @@ msgstr "Abandon\n" msgid "" "After fixing the above paths, you may want to run `git sparse-checkout " "reapply`.\n" -msgstr "Après correction des chemins ci-dessus, vous voulez peut-être lancer `git sparse-checkout reapply`.\n" +msgstr "" +"Après correction des chemins ci-dessus, vous voulez peut-être lancer `git " +"sparse-checkout reapply`.\n" #: unpack-trees.c:350 msgid "Updating files" @@ -9060,7 +9164,7 @@ msgstr "" msgid "Updating index flags" msgstr "Mise à jour des drapeaux de l'index" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "vidage attendu après les arguments de récupération" @@ -9097,50 +9201,50 @@ msgstr "segment de chemin '..' invalide" msgid "Fetching objects" msgstr "Récupération des objets" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "échec de la lecture de '%s'" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "" "'%s' dans l'arbre de travail principal n'est pas le répertoire de dépôt" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "" "le fichier '%s' ne contient pas de chemin absolu à l'emplacement de l'arbre " "de travail" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' n'existe pas" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' n'est pas un fichier .git, code d'erreur %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' ne pointe pas en retour sur '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "impossible d'ouvrir '%s' en lecture/écriture" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "impossible d'accéder à '%s'" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "impossible d'accéder au répertoire de travail courant" @@ -9534,39 +9638,44 @@ msgstr "Vous êtes en cours de bissection." msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (utilisez \"git bisect reset\" pour revenir à la branche d'origine)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "Vous êtes dans une extraction partielle avec %d %% de fichiers suivis présents." + +#: wt-status.c:1733 msgid "On branch " msgstr "Sur la branche " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "rebasage interactif en cours ; sur " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "rebasage en cours ; sur " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Actuellement sur aucun branche." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Validation initiale" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "Aucun commit" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "Fichiers non suivis" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "Fichiers ignorés" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9578,32 +9687,32 @@ msgstr "" "oublier d'ajouter les nouveaux fichiers par vous-même (voir 'git help " "status')." -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "Fichiers non suivis non affichés%s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (utilisez -u pour afficher les fichiers non suivis)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "Aucune modification" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "aucune modification n'a été ajoutée à la validation (utilisez \"git add\" ou " "\"git commit -a\")\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "aucune modification ajoutée à la validation\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9612,66 +9721,66 @@ msgstr "" "aucune modification ajoutée à la validation mais des fichiers non suivis " "sont présents (utilisez \"git add\" pour les suivre)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" "aucune modification ajoutée à la validation mais des fichiers non suivis " "sont présents\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "rien à valider (créez/copiez des fichiers et utilisez \"git add\" pour les " "suivre)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "rien à valider\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "rien à valider (utilisez -u pour afficher les fichiers non suivis)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "rien à valider, la copie de travail est propre\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "Encore aucun commit sur " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (aucune branche)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "différent" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "derrière " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "devant " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "Impossible de %s : vous avez des modifications non indexées." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "de plus, votre index contient des modifications non validées." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "%s impossible : votre index contient des modifications non validées." @@ -9749,7 +9858,7 @@ msgstr "simuler l'action" msgid "interactive picking" msgstr "sélection interactive" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "sélection interactive des sections" @@ -9881,12 +9990,12 @@ msgstr "" msgid "--chmod param '%s' must be either -x or +x" msgstr "Le paramètre '%s' de --chmod doit être soit -x soit +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file est incompatible avec pathspec arguments" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul nécessite --pathspec-from-file" @@ -10154,7 +10263,7 @@ msgstr "option historique -- no-op" msgid "allow fall back on 3way merging if needed" msgstr "permettre de revenir à une fusion à 3 points si nécessaire" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "être silencieux" @@ -10210,7 +10319,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "format" @@ -10511,112 +10620,116 @@ msgstr "" "Les options supportées sont : --term-good|--term-old et --term-bad|--term-" "new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' n'est pas un terme valide" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" -msgstr "option non reconnue : %s" +msgstr "option non reconnue : '%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "'%s' ne semble être une révision valide" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "mauvaise HEAD - j'ai besoin d'une HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "" "L'extraction de '%s' a échoué. Essayez 'git bisect start <branche-valide>'." -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "refus de bissecter sur un arbre 'cg-seeked'" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "mauvaise HEAD - référence symbolique douteuse" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "réference invalide : '%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "effectuer 'git bisect next'" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "écrire les termes dans .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "vérifier l'état de la bissection" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "vérifier si des révisions sont attendues" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "réinitialiser l'état de la bissection" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "écrire l'état de la bissection dans BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "vérifier et régler les termes dans un état de la bissection" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "vérifier si les termes bons ou mauvais existent" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "afficher les termes de bissection" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "démarrer une session de bissection" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "mettre à jour BISECT_HEAD au lieu d'extraire le commit actuel" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "pas de journal pour BISECT_WRITE" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms exige deux arguments" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state ne supporte aucun argument" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset supporte soit aucun argument, soit un commit" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write supporte soit 4 arguments, soit 5 arguments" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms exige 3 arguments" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check exige 2 ou 3 arguments" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms exige 0 ou 1 argument" @@ -11233,19 +11346,19 @@ msgstr "git bundle list-heads <fichier> [<nom-de-ref>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <fichier> [<nom-de-ref>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "ne pas afficher la barre de progression" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "afficher la barre de progression" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "afficher la barre de progression durant la phase d'écrite des objets" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "similaire à --all-progress quand la barre de progression est affichée" @@ -11285,11 +11398,9 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" -msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" +msgstr "git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11323,7 +11434,7 @@ msgstr "pour les objets blob, lancer textconv sur le contenu de l'objet" msgid "for blob objects, run filters on object's content" msgstr "pour les objets blob, lancer les filtres sur le contenu de l'objet" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "blob" @@ -11387,8 +11498,8 @@ msgid "terminate input and output records by a NUL character" msgstr "" "terminer les enregistrements en entrée et en sortie par un caractère NUL" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "supprimer l'état d'avancement" @@ -11482,7 +11593,7 @@ msgstr "écrire le contenu dans des fichiers temporaires" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "chaîne" @@ -11599,11 +11710,11 @@ msgstr "'%s' ou '%s' ne peut pas être utilisé avec %s" msgid "path '%s' is unmerged" msgstr "le chemin '%s' n'est pas fusionné" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "vous devez d'abord résoudre votre index courant" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11613,50 +11724,50 @@ msgstr "" "suivants :\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Impossible de faire un reflog pour '%s' : %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD est maintenant sur" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "impossible de mettre à jour HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "Remise à zéro de la branche '%s'\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Déjà sur '%s'\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Basculement et remise à zéro de la branche '%s'\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Basculement sur la nouvelle branche '%s'\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "Basculement sur la branche '%s'\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ... et %d en plus.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11679,7 +11790,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11708,19 +11819,19 @@ msgstr[1] "" "git branch <nouvelle-branche> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "erreur interne lors du parcours des révisions" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "La position précédente de HEAD était sur" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Vous êtes sur une branche qui doit encore naître" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11729,7 +11840,7 @@ msgstr "" "'%s' pourrait être un fichier local ou un branche de suivi.\n" "Veuillez utiliser -- (et --no-guess en facultatif) pour les distinguer" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11749,51 +11860,51 @@ msgstr "" "ambigu, vous pouvez positionner checkout.defaultRemote=origin dans\n" "votre config." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' correspond à plusieurs (%d) branches de suivi à distance" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "une seule référence attendue" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "une seule référence attendue, %d fournies." -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "référence invalide : %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "la référence n'est pas un arbre : %s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "branche attendue, mais étiquette '%s' reçue" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "une branche est attendue, mais une branche distante '%s' a été reçue" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "une branche est attendue, mais '%s' a été reçue" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "une branche est attendue, mais un commit '%s' a été reçu" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11801,7 +11912,7 @@ msgstr "" "impossible de basculer de branche pendant une fusion\n" "Envisagez \"git merge --quit\" ou \"git worktree add\"." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11809,7 +11920,7 @@ msgstr "" "impossible de basculer de branche pendant une session am\n" "Envisagez \"git am --quit\" ou \"git worktree add\"." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11817,7 +11928,7 @@ msgstr "" "impossible de basculer de branche pendant un rebasage\n" "Envisagez \"git rebase --quit\" ou \"git worktree add\"." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11825,7 +11936,7 @@ msgstr "" "impossible de basculer de branche pendant un picorage\n" "Envisagez \"git cherry-pick --quit\" ou \"git worktree add\"." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11833,146 +11944,146 @@ msgstr "" "impossible de basculer de branche pendant un retour\n" "Envisagez \"git revert --quit\" ou \"git worktree add\"." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "Vous basculez de branche en cours de bissection" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "impossible d'utiliser des chemins avec un basculement de branches" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' ne peut pas être utilisé avec un basculement de branches" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' ne peut pas être utilisé avec '%s'" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s' n'accepte pas <point-de-départ>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Impossible de basculer de branche vers '%s' qui n'est pas un commit" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "argument de branche ou de commit manquant" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "forcer l'affichage de l'état d'avancement" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "effectuer une fusion à 3 points avec la nouvelle branche" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "style" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "style de conflit (merge (fusion) ou diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "détacher la HEAD au commit nommé" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "paramétrer les coordonnées de branche amont pour une nouvelle branche" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "forcer l'extraction (laisser tomber les modifications locales)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "nouvelle branche" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "nouvelle branche sans parent" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "mettre à jour les fichiers ignorés (par défaut)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "" "ne pas vérifier si une autre copie de travail contient le référence fournie" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "extraire notre version pour les fichiers non fusionnés" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "extraire leur version pour les fichiers non fusionnés" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "ne pas limiter les spécificateurs de chemins aux seuls éléments creux" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%c, -%c et --orphan sont mutuellement exclusifs" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p et --overlay sont mutuellement exclusifs" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track requiert un nom de branche" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "nom de branche manquant ; essayez -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "impossible de résoudre %s" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "spécification de chemin invalide" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "" "'%s' n'est pas un commit et une branche '%s' ne peut pas en être créée depuis" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach n'accepte pas un argument de chemin '%s'" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file est incompatible avec --detach" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file est incompatible avec --patch" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11980,70 +12091,71 @@ msgstr "" "git checkout: --ours/--theirs, --force et --merge sont incompatibles lors\n" "de l'extraction de l'index." -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "Vous devez spécifier un ou des chemins à restaurer" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "branche" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "créer et extraire une nouvelle branche" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "créer/réinitialiser et extraire une branche" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "créer un reflog pour une nouvelle branche" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "" "essayer d'interpréter 'git checkout <branche-inexistante>' (par défaut)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "utiliser le mode de superposition (défaut)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "créer et basculer sur une nouvelle branche" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "créer/réinitialiser et basculer sur une branche" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "interpréter 'git switch <branche-inexistante>'" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "laisser tomber les modifications locales" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "de quel <arbre-esque> faire l'extraction" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "restaurer l'index" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "restaurer l'arbre de travail (par défaut)" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "ignorer les entrées non-fusionnées" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "utiliser le mode de superposition" @@ -12206,11 +12318,7 @@ msgstr "supprimer les fichiers ignorés, aussi" msgid "remove only ignored files" msgstr "supprimer seulement les fichiers ignorés" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x et -X ne peuvent pas être utilisés ensemble" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -12218,7 +12326,7 @@ msgstr "" "clean.requireForce positionné à true et ni -i, -n ou -f fourni ; refus de " "nettoyer" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -12226,6 +12334,10 @@ msgstr "" "clean.requireForce à true par défaut et ni -i, -n ou -f fourni ; refus de " "nettoyer" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x et -X ne peuvent pas être utilisés ensemble" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<options>] [--] <dépôt> [<répertoire>]" @@ -12234,7 +12346,7 @@ msgstr "git clone [<options>] [--] <dépôt> [<répertoire>]" msgid "don't create a checkout" msgstr "ne pas créer d'extraction" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "créer un dépôt nu" @@ -12266,11 +12378,11 @@ msgstr "initialiser les sous-modules dans le clone" msgid "number of submodules cloned in parallel" msgstr "nombre de sous-modules clonés en parallèle" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "répertoire-modèle" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "répertoire depuis lequel les modèles vont être utilisés" @@ -12284,8 +12396,8 @@ msgstr "dépôt de référence" msgid "use --reference only while cloning" msgstr "utiliser seulement --reference pour cloner" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "nom" @@ -12310,7 +12422,7 @@ msgstr "profondeur" msgid "create a shallow clone of that depth" msgstr "créer un clone superficiel de cette profondeur" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "heure" @@ -12344,11 +12456,11 @@ msgstr "" msgid "any cloned submodules will be shallow" msgstr "tous les sous-modules clonés seront superficiels" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "gitdir" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "séparer le répertoire git de la copie de travail" @@ -12480,7 +12592,7 @@ msgstr "impossible de remballer pour nettoyer" msgid "cannot unlink temporary alternates file" msgstr "impossible de délier le fichier temporaire alternates" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "Trop d'arguments." @@ -12497,49 +12609,49 @@ msgstr "les options --bare et --origin %s sont incompatibles." msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare et --separate-git-dir sont incompatibles." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "le dépôt '%s' n'existe pas" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "la profondeur %s n'est pas un entier positif" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "" "le chemin de destination '%s' existe déjà et n'est pas un répertoire vide." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "la copie de travail '%s' existe déjà ." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "impossible de créer les répertoires de premier niveau dans '%s'" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "impossible de créer le répertoire de la copie de travail '%s'" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Clonage dans le dépôt nu '%s'\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Clonage dans '%s'...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" @@ -12547,41 +12659,41 @@ msgstr "" "clone --recursive n'est pas compatible avec à la fois --reference et --" "reference-if-able" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "" "--depth est ignoré dans les clones locaux : utilisez plutôt \"file://\"." -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "" "--shallow-since est ignoré dans les clones locaux : utilisez plutôt \"file://" "\"." -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" "--shallow-exclude est ignoré dans les clones locaux : utilisez plutôt " "\"file://\"." -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "--filter est ignoré dans les clones locaux ; utilisez plutôt file:// ." -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "le dépôt source est superficiel, option --local ignorée" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local est ignoré" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "La branche distante %s n'a pas été trouvée dans le dépôt amont %s" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "Vous semblez avoir cloné un dépôt vide." @@ -12617,95 +12729,107 @@ msgstr "Remplissage d'espace entre les colonnes" msgid "--command must be the first argument" msgstr "--command doit être le premier argument" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <split options>" -msgstr "git commit-graph write [--object-dir <répertoire-d'objet>] [--append] [--split[=<stratégie>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-paths] [--[no-]progress] <options de division>" +msgstr "" +"git commit-graph write [--object-dir <répertoire-d'objet>] [--append] [--" +"split[=<stratégie>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" +"paths] [--[no-]progress] <options de division>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "impossible de trouver le répertoire objet correspondant à %s" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "répertoire" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "Le répertoire d'objet où stocker le graphe" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "" "si le graphe de commit est divisé, vérifier seulement le fichier sommet" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "impossible d'ouvrir le graphe de commit '%s'" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "argument de --split non reconnu, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "ID d'objet non hexadécimal inattendu : %s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "objet invalide : %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "commencer le parcours à toutes les réfs" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "scanner les index compactés listés sur stdin à la recherche de commits" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "commencer le parcours aux commits listés sur stdin" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "" "inclure tous les commits déjà présents dans le fichier de graphe de commits" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "activer le calcul pour les chemins modifiés" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "permettre d'écrire un fichier incrémental de graphe de commit" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "" "le nombre maximum de commits dans un graphe de commit divisé pas de base" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "rapport maximum entre deux niveaux d'un graphe de commit divisé" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "ne faire expirer que les fichiers plus vieux qu'une date-time donnée" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "utilisez un seul parmi --reachable, --stdin-commits ou --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "ID d'objet non hexadécimal inattendu : %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "Collecte des commits depuis l'entrée" #: builtin/commit-tree.c:18 msgid "" @@ -13112,7 +13236,7 @@ msgid "version" msgstr "version" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "sortie pour traitement automatique" @@ -13125,8 +13249,8 @@ msgid "terminate entries with NUL" msgstr "terminer les éléments par NUL" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "mode" @@ -13824,35 +13948,45 @@ msgstr "--dirty est incompatible avec la spécification de commits ou assimilés msgid "--broken is incompatible with commit-ishes" msgstr "--broken est incompatible avec les commits ou assimilés" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s' : n'est pas un fichier régulier ni un lien symbolique" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "option invalide : %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s..%s: pas de base de fusion" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "Ce n'est pas un dépôt git !" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "objet spécifié '%s' invalide." -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "plus de deux blobs spécifiés : '%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "objet non géré '%s' spécifié." +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "\"%s...%s\" : bases multiples de fusion, utilisation de %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<options>] [<commit> [<commit>]] [--] [<chemin>...]" @@ -14004,90 +14138,111 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [options-de-liste-de-révisions]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "" "Erreur : impossible d'exporter des étiquettes imbriquées à moins que --mark-" "tags ne soit spécifié." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "le jeton --anonymize-map ne peut pas être vide" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "afficher la progression après <n> objets" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "sélectionner la gestion des étiquettes signées" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "" "sélectionner la gestion des étiquettes qui pointent sur des objets filtrés" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "" "sélectionner la gestion des messages de validation dans un encodage " "alternatif" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "Enregistrer les marques dans ce fichier" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "importer les marques depuis ce fichier" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "importer les marques depuis ce fichier s'il existe" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "falsifier un auteur d'étiquette si l'étiquette n'en présente pas" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "Afficher l'arbre complet pour chaque commit" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "Utiliser la fonction \"done\" pour terminer le flux" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "Sauter l'affichage de données de blob" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "spécificateur de référence" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "Appliquer le spécificateur de référence aux références exportées" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "anonymise la sortie" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "depuis:vers" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "convertit <depuis> en <vers> dans la sortie anonymisée" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "" "les parents références qui ne sont pas dans le flux d'export rapide par id " "d'objet" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "Afficher les ids d'objet originaux des blobs/commits" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "Marquer les étiquettes avec des ids de marque" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map n'a aucune signification sans --anonymize" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "" "Impossible d'utiliser à la fois --import-marks et --import-marks-if-exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "Fichier verrou créé mais non reporté : %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<options>] [<dépôt> [<spécification-de-référence>...]]" @@ -14416,42 +14571,42 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Vous devez spécifier un nom d'étiquette." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "Une profondeur négative dans --deepen n'est pas supportée" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen et --depth sont mutuellement exclusifs" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth et --unshallow ne peuvent pas être utilisés ensemble" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow sur un dépôt complet n'a pas de sens" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all n'accepte pas d'argument de dépôt" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all n'a pas de sens avec des spécifications de référence" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "distant ou groupe distant inexistant : %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "La récupération d'un groupe et les spécifications de référence n'ont pas de " "sens" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14911,8 +15066,8 @@ msgstr "nombre de fils spécifié invalide (%d) pour %s" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "pas de support des fils, ignore %s" @@ -15149,11 +15304,11 @@ msgstr "--untracked non supportée avec --recurse-submodules" msgid "invalid option combination, ignoring --threads" msgstr "option de combinaison invalide, ignore --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "pas de support des fils, ignore --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "nombre de fils spécifié invalide (%d)" @@ -15356,7 +15511,7 @@ msgstr "erreur de lecture sur l'entrée" msgid "used more bytes than were available" msgstr "plus d'octets utilisés que disponibles" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "le paquet est trop grand pour la définition actuelle de off_t" @@ -15427,8 +15582,8 @@ msgstr "grave incohérence dans la décompression (inflate)" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "COLLISION SHA1 TROUVÉE AVEC %s !" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "impossible de lire %s" @@ -15489,7 +15644,7 @@ msgstr "confusion extrême dans parse_pack_objects()" msgid "Resolving deltas" msgstr "Résolution des deltas" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "impossible de créer le fil : %s" @@ -15555,58 +15710,67 @@ msgstr "impossible de stocker le fichier paquet" msgid "cannot store index file" msgstr "impossible de stocker le fichier d'index" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "mauvais pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Impossible d'ouvrir le fichier paquet existant '%s'" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Impossible d'ouvrir le fichier paquet d'index existant pour '%s'" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "pas un delta : %d objet" msgstr[1] "pas un delta : %d objets" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "longueur chaînée = %d : %lu objet" msgstr[1] "longueur chaînée = %d : %lu objets" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "Impossible de revenir au répertoire de travail courant" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "mauvais %s" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "algorithme d'empreinte inconnu '%s'" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin ne peut pas être utilisé sans --stdin" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin requiert un dépôt git" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format ne peut pas être utilisé avec --stdin" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify sans nom de fichier paquet donné" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "erreur de fsck dans les objets paquets" @@ -15650,51 +15814,56 @@ msgstr "modèles non trouvés dans %s" msgid "not copying templates from '%s': %s" msgstr "pas de copie des modèles depuis '%s' : %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "Nom de branche initiale invalide : '%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "impossible de traiter le fichier de type %d" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "impossible de déplacer %s vers %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "essai de réinitialisation du dépôt avec une empreinte différente" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "algorithme d'empreinte inconnu '%s'" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s existe déjà " -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-initialisation : --initial-branch=%s ignoré" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "Dépôt Git existant partagé réinitialisé dans %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Dépôt Git existant réinitialisé dans %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Dépôt Git vide partagé initialisé dans %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Dépôt Git vide initialisé dans %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15702,33 +15871,37 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<répertoire-modèle>] [--" "shared[=<permissions>]] [<répertoire>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "permissions" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "spécifier que le dépôt git sera partagé entre plusieurs utilisateurs" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "outrepasser le nom de la branche initiale" + +#: builtin/init-db.c:564 msgid "hash" msgstr "empreinte" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "spécifier l'algorithme d'empreinte à utiliser" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "impossible de créer le répertoire (mkdir) %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "impossible de se déplacer vers le répertoire (chdir) %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15737,7 +15910,7 @@ msgstr "" "%s (ou --work-tree=<répertoire>) n'est pas autorisé sans spécifier %s (ou --" "git-dir=<répertoire>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "Impossible d'accéder à l'arbre de travail '%s'" @@ -17513,7 +17686,7 @@ msgstr "" msgid "read object names from the standard input" msgstr "lire les noms d'objet depuis l'entrée standard" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "ne pas supprimer, afficher seulement" @@ -17548,106 +17721,119 @@ msgstr "" "git pack-objects [options...] base-name [< <liste-références> | < <liste-" "objets>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "mauvais CRC d'objet empaqueté pour %s" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "objet empaqueté corrompu pour %s" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "delta récursif détecté pour l'objet %s" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "%u objets commandés, %<PRIu32> attendus" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" "désactivation de l'écriture en bitmap, les fichiers paquets sont scindés à " "cause de pack.packSizeLimit" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Écriture des objets" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "échec du stat de %s" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "%<PRIu32> objets écrits, %<PRIu32> attendus" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" "désactivation de l'écriture en bitmap car certains objets ne sont pas " "compressés" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "dépassement de décalage de base de delta pour %s" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "décalage de base de delta est hors limite pour %s" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Décompte des objets" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "impossible d'analyser l'entête d'objet de %s" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "l'objet %s ne peut être lu" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "" "objet %s longueur de l'objet inconsistante (%<PRIuMAX> contre %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "paquet sous-optimal - mémoire insuffisante" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Compression par delta en utilisant jusqu'à %d fils d'exécution" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "impossible d'empaqueter les objets joignables depuis l'étiquette %s" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Compression des objets" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "inconsistance dans le compte de delta" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "la valeur de uploadpack.blobpackfileuri doit être de la forme '<empreinte-d-objet> <empreinte-de-pack> <uri>' ('%s' reçu)" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "l'objet est déjà configuré dans un autre uploadpack.blobpackfileuri ('%s' reçu)" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17656,7 +17842,7 @@ msgstr "" "ID d'objet de bord attendu, reçu des données illisibles :\n" "%s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17665,236 +17851,244 @@ msgstr "" "ID d'objet attendu, reçu des données illisibles :\n" "%s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "valeur invalide pour --missing" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "impossible d'ouvrir l'index de paquet" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "l'objet libre à %s n'a pas pu être examiné" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "impossible de forcer l'objet libre" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "'%s' n'est pas une révision" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "mauvaise révision '%s'" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "impossible d'ajouter les objets récents" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "version d'index non supportée %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "mauvaise version d'index '%s'" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<version>[,<décalage>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "" "écrire le fichier d'index du paquet dans le format d'index de version " "spécifié" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "taille maximum de chaque fichier paquet en sortie" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "ignorer les objets empruntés à un autre magasin d'objets" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "ignorer les objets empaquetés" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "limiter la fenêtre d'empaquetage par objets" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "" "limiter la fenêtre d'empaquetage par mémoire en plus de la limite d'objets" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "" "longueur maximum de la chaîne de delta autorisée dans le paquet résultant" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "réutiliser les deltas existants" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "réutiliser les objets existants" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "utiliser les objets OFS_DELTA" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "" "utiliser des fils lors de la recherche pour une meilleure correspondance des " "deltas" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "ne pas créer un paquet vide" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "lire les paramètres de révision depuis l'entrée standard" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "limiter les objets à ceux qui ne sont pas encore empaquetés" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "inclure les objets accessibles depuis toute référence" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "inclure les objets référencés par les éléments de reflog" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "inclure les objets référencés par l'index" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "afficher l'empaquetage sur la sortie standard" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "inclure les objets d'étiquettes qui réfèrent à des objets à empaqueter" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "garder les objets inaccessibles" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "empaqueter les objets inaccessibles détachés" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "dépaqueter les objets inaccessibles plus récents que <heure>" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "utiliser l'algorithme de joignabilité creuse" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "créer des paquets légers" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "créer des paquets permettant des récupérations superficielles" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "ignorer les paquets qui ont un fichier .keep" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "ignorer ce paquet" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "niveau de compression du paquet" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "ne pas cacher les validations par greffes" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "" "utiliser un index en bitmap si disponible pour accélerer le décompte des " "objets" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "écrire un index en bitmap associé à l'index de paquet" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "écrire un index de bitmap si possible" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "gestion des objets manquants" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "ne pas empaqueter les objets dans les fichiers paquets prometteurs" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "respecter les îlots pendant la compression des deltas" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "protocole" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "exclure tout uploadpack.blobpackfileuri configuré avec ce protocole" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "la profondeur %d de chaîne de delta est trop grande, forcée à %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "pack.deltaCacheLimit est trop grand, forcé à %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" "--max-pack-size ne peut pas être utilisé pour construire un paquet à " "transférer" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "la taille limite minimale d'un paquet est 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin ne peut pas être utilisé pour construire un paquet indexable" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable et --unpack-unreachable sont incompatibles" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "impossible d'utiliser --filter sans --stdout" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Énumération des objets" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -18998,7 +19192,8 @@ msgstr "rebaser tous les objets inatteignables depuis les racines" #: builtin/rebase.c:1409 msgid "apply all changes, even those already present upstream" -msgstr "appliquer toutes les modifications, même celles déjà présentes en amont" +msgstr "" +"appliquer toutes les modifications, même celles déjà présentes en amont" #: builtin/rebase.c:1426 msgid "" @@ -19222,7 +19417,7 @@ msgstr "Avance rapide de %s sur %s.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <répertoire-git>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -19252,7 +19447,7 @@ msgstr "" "Pour éliminer ce message et conserver le comportement par défaut,\n" "réglez « receive.denyCurrentBranch » à 'refuse'." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -19272,11 +19467,11 @@ msgstr "" "\n" "Pour éliminer ce message, réglez-le à 'refuse'." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "quiet" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Vous devez spécifier un répertoire." @@ -20856,6 +21051,14 @@ msgstr "'%s' n'est pas une référence valide." msgid "cannot find commit %s (%s)" msgstr "impossible de trouver le commit %s (%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "algorithme d'empreinte" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "Algorithme d'empreinte inconnu" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20915,51 +21118,55 @@ msgstr "" "cet arbre de travail n'est pas partiel (le fichier sparse-checkout pourrait " "ne pas exister)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "" "échec de la création du répertoire pour le fichier d'extraction partielle" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "impossible de mettre à jour le format de dépôt pour activer worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "échec de paramétrage extensions.worktreeConfig" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "initialiser l'extraction partielle en mode cone" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "échec à l'ouverture de '%s'" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "impossible de normaliser le chemin '%s'" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <motifs>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "Impossible de décoter la chaîne en style C '%s'" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "impossible de charger les motifs de l'extraction partielle existants" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "lire les motifs depuis l'entrée standard" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "erreur lors du rafraîchissement du répertoire de travail" @@ -21676,12 +21883,37 @@ msgstr "Supprimer la sortie lors du paramétrage de l'url d'un sous-module" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper sync [--quiet] <chemin> <nouvelle-url>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "régler la branche de suivi par défaut à master" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "régler la branche de suivi par défaut" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <chemin>" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branche> <chemin>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "--branch ou --default requis" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch et --default sont mutuellement exclusifs" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s ne gère pas --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' n'est pas une sous-commande valide de submodule--helper" @@ -22331,208 +22563,196 @@ msgstr "git worktree remove [<options>] <arbre-de-travail>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <chemin>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "échec de la suppression de '%s'" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "Suppression de worktrees/%s : répertoire invalide" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "Suppression de worktrees/%s : le fichier gitdir n'existe pas" +msgid "not a valid directory" +msgstr "pas un répertoire valide" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "" -"Suppression de worktrees/%s : échec de la lecture du fichier gitdir (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "le fichier gitdir n'existe pas" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "" -"Suppression de worktrees/%s: lecture trop courte ( %<PRIuMAX> octets " -"attendus, %<PRIuMAX> octets lus)" +msgid "unable to read gitdir file (%s)" +msgstr "impossible de lire le fichier gitdir (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "Suppression de worktrees/%s : fichier gitdir invalide" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "lecture trop courte ( %<PRIuMAX> octets attendus, %<PRIuMAX> octets lus)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "fichier gitdir invalide" + +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "le fichier gitdir pointe sur un endroit inexistant" -#: builtin/worktree.c:126 +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "" -"Suppression de worktrees/%s : le fichier gitdir point sur un endroit " -"inexistant" +msgid "Removing %s/%s: %s" +msgstr "Suppression de %s/%s : %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "afficher les arbres de travail éliminés" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "faire expirer les arbres de travail plus vieux que <temps>" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' existe déjà " -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "impossible de ré-ajouter l'arbre de travail '%s'" +msgid "unusable worktree destination '%s'" +msgstr "arbre de travail destination '%s' inutilisable" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "'%s' est un arbre de travail manquant mais verrouillé ;\n" -"utilisez 'add -f -f' pour passer outre, ou 'unlock' et 'prune' ou 'remove' " -"pour corriger" +"utilisez '%s -f -f' pour passer outre, ou 'unlock' et 'prune' ou 'remove' pour corriger" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "'%s' est un arbre de travail manquant mais déjà enregistré ;\n" -"utilisez 'add -f' pour passer outre, ou 'prune' ou 'remove' pour corriger" +"utilisez '%s -f' pour passer outre, ou 'prune' ou 'remove' pour corriger" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "impossible de créer le répertoire de '%s'" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Préparation de l'arbre de travail (nouvelle branche '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "" "Préparation de l'arbre de travail (réinitialisation de la branche '%s' ; " "précédemment sur %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Préparation de l'arbre de travail (extraction de '%s')" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Préparation de l'arbre de travail (HEAD détachée %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" "extraire la <branche> même si elle est déjà extraite dans une autre copie de " "travail" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "créer une nouvelle branche" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "créer ou réinitialiser une branche" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "remplissage de la nouvelle copie de travail" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "conserver le verrou sur le nouvel arbre de travail" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "régler le mode de suivi (voir git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "essayer de nommer la nouvelle branche comme la branche amont" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B et --detach sont mutuellement exclusifs" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "" "--[no-]track ne peut être utilisé qu'à la création d'une nouvelle branche" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "raison du verrouillage" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' n'est pas une copie de travail" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "" "La copie de travail principale ne peut pas être verrouillée ou déverrouillée" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' est déjà verrouillé, car '%s'" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' est déjà verrouillé" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' n'est pas verrouillé" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "" "les arbres de travail contenant des sous-modules ne peuvent pas être " "déplacés ou supprimés" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "" "forcer le déplacement même si l'arbre de travail est sale ou verrouillé" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' est un arbre de travail principal" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "impossible de trouver le nom de la destination à partir de '%s'" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "la cible '%s' existe déjà " - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22542,7 +22762,7 @@ msgstr "" "verrouillage : %s\n" "utilisez 'move -f -f' pour outrepasser ou déverrouiller avant" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22550,39 +22770,39 @@ msgstr "" "impossible de déplacer un arbre de travail verrouillé;\n" "utilisez 'move -f -f' pour outrepasser ou déverrouiller avant" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "la validation a échoué, impossible de déplacer l'arbre de travail : %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "échec au déplacement de '%s' vers '%s'" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "échec du lancement de 'git status' sur '%s'" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "'%s' contient des fichiers modifiés ou non-suivis, utilisez --force pour le " "supprimer" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "impossible de lancer 'git status' sur '%s', code %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "" "forcer la suppression même si l'arbre de travail est sale ou verrouillé" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22592,7 +22812,7 @@ msgstr "" "verrouillage : %s\n" "utilisez 'move -f -f' pour outrepasser ou déverrouiller avant" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22600,7 +22820,7 @@ msgstr "" "impossible de supprimer un arbre de travail verrouillé;\n" "utilisez 'move -f -f' pour outrepasser ou déverrouiller avant" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "" @@ -22622,32 +22842,32 @@ msgstr "écrire l'objet arbre pour un sous-répertoire <préfixe>" msgid "only useful for debugging" msgstr "seulement utile pour le débogage" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "version git ::\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "échec de uname() avec l'erreur '%s' (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "info compilateur : " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "info libc : " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "lancé hors d'un dépôt git - aucun crochet à montrer\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <fichier>] [-s|--suffix <format>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22666,82 +22886,97 @@ msgid "" "You can delete any lines you don't wish to share.\n" msgstr "" "Merci de remplir le rapport de bogue Git !\n" -"Veuillez répondre aux questions suivantes pour nous aider à comprendre votre problème.\n" +"Veuillez répondre aux questions suivantes pour nous aider à comprendre votre " +"problème.\n" "\n" -"Qu'avez-vous fait avant l'apparition du bogue ? (Étapes pour reproduire votre problème)\n" +"Qu'avez-vous fait avant l'apparition du bogue ? (Étapes pour reproduire " +"votre problème)\n" "\n" "Quel était le résultat attendu ? (comportement attendu)\n" "\n" "Que s'est-il passé à la place ? (comportement observé)\n" "\n" -"Quelle différence y a-t-il entre ce que vous attendiez et ce qu'il s'est passé ?\n" +"Quelle différence y a-t-il entre ce que vous attendiez et ce qu'il s'est " +"passé ?\n" "\n" "Autres remarques :\n" "\n" "Veuillez relire le rapport de bogue ci-dessous.\n" "Vous pouvez supprimer toute ligne que vous ne souhaitez pas envoyer.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "spécifier la destination du fichier de rapport de bogue" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "spécifier une suffixe au format strftime pour le nom de fichier" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "impossible de créer les répertoires de premier niveau pour '%s'" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "Info système" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Crochets activés" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "impossible de créer un fichier nouveau à '%s'" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "impossible d'écrire dans %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Nouveau rapport créé à '%s'.\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "Champs from manquants pour le sous-module '%s'" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "champs to manquants pour le sous-module '%s'" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "commande 'mark' attendue, %s trouvé" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "commande 'to' attendue, %s trouvé" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" -msgstr "Format attendu nom:<nom de fichier> pour l'option de réécriture de sous-module" +msgstr "" +"Format attendu nom:<nom de fichier> pour l'option de réécriture de sous-" +"module" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "" "la fonctionnalité '%s' est interdite en entrée sans --allow-unsafe-features" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "l'argument de --packfile doit être une empreinte valide ('%s' reçu)" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22920,32 +23155,32 @@ msgstr "La délégation de commande n'est pas supporté avec cuRL < 7.22.0" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "L'épinglage de clé publique n'est pas supporté avec cuRL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REMOVE n'est pas supporté avec cuRL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Les restrictions de protocole ne sont pas supportés avec cuRL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "Dorsale SSL '%s' non supportée. Dorsales SSL supportées :" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" "Impossible de régler la dorsale SSL à '%s' : cURL a été construit sans " "dorsale SSL" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "Impossible de spécifier le dorsal SSL à '%s' : déjà spécifié" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22956,113 +23191,136 @@ msgstr "" " demandé : %s\n" " redirection : %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "citation invalide dans la valeur push-option : '%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs n'est pas valide : est-ce bien un dépôt git ?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "réponse du serveur invalide ; service attendu, paquet de vidage reçu" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "réponse du serveur invalide ; '%s' reçu" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "dépôt '%s' non trouvé" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "Échec d'authentification pour '%s'" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "impossible d'accéder à '%s' : %s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "redirection vers %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "ne devrait pas recevoir OEF quand on n'est pas gentil sur EOF" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "le serveur distant a envoyé un séparateur sans état" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "" "impossible de rembobiner le données post rpc - essayer d'augmenter http." "postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl : mauvais caractère de longueur de ligne : %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl : paquet de fin de réponse inattendu" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "échec RPC ; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "impossible de gérer des poussées aussi grosses" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "impossible de compresser la requête ; erreur de compression zlib %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "impossible de compresser la requête ; erreur de fin zlib %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "%d octets de longueur d'entête ont été reçus" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "%d octets de corps sont encore attendus" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "le protocole http idiot ne supporte la capacité superficielle" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "échec du récupération." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "impossible de récupérer par sha1 sur http intelligent" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "erreur de protocole : sha/ref attendu, '%s' trouvé" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "le transport http ne supporte pas %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "échec de git-http-push" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: usage: git remote-curl <distant> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl : erreur de lecture du flux de commande depuis git" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl : récupération tentée sans dépôt local" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl : commande inconnue '%s' depuis git" @@ -23179,7 +23437,8 @@ msgstr "Lister, créer ou supprimer des branches" #: command-list.h:59 msgid "Collect information for user to file a bug report" -msgstr "Collecter l'information pour l'utilisateur pour remplir un rapport de bogue" +msgstr "" +"Collecter l'information pour l'utilisateur pour remplir un rapport de bogue" #: command-list.h:60 msgid "Move objects and refs by archive" @@ -24117,26 +24376,26 @@ msgstr "Chemin de sous-module '$displaypath' : '$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Échec de parcours dans le chemin du sous-module '$displaypath'" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "L'option --cached ne peut pas être utilisée avec l'option --files" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "mode $mod_dst inattendu" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Attention : $display_name ne contient pas la validation $sha1_src" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Attention : $display_name ne contient pas la validation $sha1_dst" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -24556,7 +24815,7 @@ msgid_plural "touched %d paths\n" msgstr[0] "%d chemin touché\n" msgstr[1] "%d chemins touchés\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24564,7 +24823,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera\n" "immédiatement marquée comme indexée." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24572,7 +24831,7 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera\n" "immédiatement marquée comme remisée." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24580,8 +24839,8 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera\n" "immédiatement marquée comme desindexée." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24589,8 +24848,8 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera\n" "immédiatement marquée comme appliquée." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24598,12 +24857,12 @@ msgstr "" "Si le patch s'applique proprement, la section éditée sera\n" "immédiatement marquée comme éliminée." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "impossible d'ouvrir le fichier d'édition de section en écriture : %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24616,12 +24875,12 @@ msgstr "" "Pour éliminer les lignes '%s', effacez-les.\n" "Les lignes commençant par %s seront éliminées.\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "échec de l'ouverture du fichier d'édition de section en lecture : %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24635,7 +24894,7 @@ msgstr "" "a - indexer cette section et toutes les suivantes de ce fichier\n" "d - ne pas indexer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24649,7 +24908,7 @@ msgstr "" "a - remiser cette section et toutes les suivantes de ce fichier\n" "d - ne pas remiser cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24663,7 +24922,7 @@ msgstr "" "a - désindexer cette section et toutes les suivantes de ce fichier\n" "d - ne pas désindexer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24677,7 +24936,7 @@ msgstr "" "a - appliquer cette section et toutes les suivantes de ce fichier\n" "d - ne pas appliquer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24691,7 +24950,7 @@ msgstr "" "a - supprimer cette section et toutes les suivantes de ce fichier\n" "d - ne pas supprimer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24705,7 +24964,7 @@ msgstr "" "a - éliminer cette section et toutes les suivantes de ce fichier\n" "d - ne pas éliminer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24719,7 +24978,7 @@ msgstr "" "a - appliquer cette section et toutes les suivantes de ce fichier\n" "d - ne pas appliquer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24733,7 +24992,7 @@ msgstr "" "a - appliquer cette section et toutes les suivantes de ce fichier\n" "d - ne pas appliquer cette section ni les suivantes de ce fichier" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24755,86 +25014,91 @@ msgstr "" "e - éditer manuellement la section actuelle\n" "? - afficher l'aide\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "Les sections sélectionnées ne s'applique pas à l'index !\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "fichier non-fusionné ignoré : %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "" "Appliquer le changement de mode dans l'arbre de travail [y,n,q,a,d%s,?] ? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "Appliquer la suppression dans l'arbre de travail [y,n,q,a,d%s,?] ? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Appliquer l'ajout dans l'arbre de travail [y,n,q,a,d%s,?] ? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "Appliquer la section à l'arbre de travail [y,n,q,a,d%s,?] ? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "Aucune autre section à atteindre\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Nombre invalide : '%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Désolé, %d seule section disponible.\n" msgstr[1] "Désolé, Seulement %d sections disponibles.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "aucune autre section à rechercher\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Regex de recherche malformée %s : %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "Aucune section ne correspond au motif donné\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "Pas de section précédente\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "Pas de section suivante\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Désolé, impossible de découper cette section\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "Découpée en %d section.\n" msgstr[1] "Découpée en %d sections.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Désolé, impossible d'éditer cette section\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24852,19 +25116,19 @@ msgstr "" "diff - visualiser les diff entre HEAD et l'index\n" "add untracked - ajouter les fichiers non-suivis aux modifications à indexer\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "-- manquant" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "mode de --patch inconnu : %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "argument invalide %s, -- attendu" @@ -25183,56 +25447,56 @@ msgstr "(mbox) Ajout de cc: %s depuis la ligne '%s'\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) Ajout de to: %s depuis la ligne '%s'\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) Ajout de cc: %s depuis la ligne '%s'\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(corps) Ajout de cc: %s depuis la ligne '%s'\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) Impossible d'exécuter '%s'" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) Ajout de %s : %s depuis : '%s'\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) échec de la fermeture du pipe vers '%s'" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "impossible d'envoyer un message comme 7bit" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "codage de transfert invalide" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "impossible d'ouvrir %s :%s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s : le patch contient une ligne plus longue que 998 caractères" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "%s sauté avec un suffix de sauvegarde '%s'.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "Souhaitez-vous réellement envoyer %s ?[y|N] : " diff --git a/po/git.pot b/po/git.pot index 49e3db0fa0..198b6e0a4a 100644 --- a/po/git.pot +++ b/po/git.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -111,21 +111,21 @@ msgstr[1] "" msgid "ignoring unmerged: %s" msgstr "" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "" @@ -193,11 +193,11 @@ msgstr "" msgid "(empty) select nothing" msgstr "" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "" @@ -214,7 +214,7 @@ msgstr "" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "" @@ -223,33 +223,38 @@ msgstr "" msgid "could not refresh index" msgstr "" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." msgstr "" -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -258,28 +263,33 @@ msgid "" "d - do not stage this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." msgstr "" -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -288,28 +298,33 @@ msgid "" "d - do not stash this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." msgstr "" -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -318,28 +333,33 @@ msgid "" "d - do not unstage this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." msgstr "" -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -348,31 +368,37 @@ msgid "" "d - do not apply this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." msgstr "" -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -381,22 +407,27 @@ msgid "" "d - do not discard this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -405,22 +436,27 @@ msgid "" "d - do not discard this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "" + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "" -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -429,7 +465,7 @@ msgid "" "d - do not apply this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -438,47 +474,47 @@ msgid "" "d - do not apply this hunk or any of the later hunks in the file\n" msgstr "" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." msgstr "" -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" "%.*s" msgstr "" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -487,11 +523,11 @@ msgid "" "%.*s" msgstr "" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -501,18 +537,18 @@ msgid "" msgstr "" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" "aborted and the hunk is left unchanged.\n" msgstr "" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "" @@ -528,24 +564,24 @@ msgstr "" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "" -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -558,69 +594,69 @@ msgid "" "? - print help\n" msgstr "" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "" -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "" -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "" msgstr[1] "" -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "" -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "" -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "" @@ -1270,7 +1306,7 @@ msgstr "" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "" @@ -1359,7 +1395,7 @@ msgstr "" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "" @@ -1427,8 +1463,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1636,10 +1672,10 @@ msgstr "" msgid "--reverse and --first-parent together require specified latest commit" msgstr "" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "" @@ -1783,84 +1819,88 @@ msgstr "" msgid "HEAD of working tree %s is not updated" msgstr "" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "" msgstr[1] "" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "" -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "" msgstr[1] "" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "" -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "" @@ -1869,269 +1909,261 @@ msgstr "" msgid "invalid color value: %.*s" msgstr "" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "" msgstr[1] "" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "" -msgstr[1] "" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "" msgstr[1] "" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" msgstr "" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" msgstr "" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2159,27 +2191,27 @@ msgid "" "\"git config advice.graftFileDeprecated false\"" msgstr "" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "" -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "" -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2359,7 +2391,7 @@ msgstr "" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "" @@ -2504,79 +2536,88 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "" -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" "Connecting to %s (port %s) ... " msgstr "" -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2584,73 +2625,73 @@ msgid "" msgstr "" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "" -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "" @@ -2901,564 +2942,564 @@ msgid "" "tree" msgstr "" -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr "" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" msgstr "" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " "'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-change'" msgstr "" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" msgstr "" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" "%s" msgstr "" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" "%s" msgstr "" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" msgstr "" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "" -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "" -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" msgstr "" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" msgstr "" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" msgstr "" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" msgstr "" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" msgstr "" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" msgstr "" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "" -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3473,59 +3514,59 @@ msgstr "" msgid "Performing inexact rename detection" msgstr "" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "" @@ -3535,11 +3576,11 @@ msgstr "" msgid "hint: Waiting for your editor to close the file...%c" msgstr "" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "" @@ -3559,227 +3600,245 @@ msgstr "" msgid "too many args to run %s" msgstr "" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "" #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "" @@ -3813,7 +3872,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -3951,16 +4010,16 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4044,6 +4103,10 @@ msgstr "" msgid "multiple filter-specs cannot be combined" msgstr "" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4366,7 +4429,7 @@ msgstr "" msgid "Skipped %s (merged same as existing)" msgstr "" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "" @@ -4481,7 +4544,7 @@ msgid "failed to read the cache" msgstr "" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "" @@ -4723,21 +4786,21 @@ msgstr "" msgid "hash mismatch %s" msgstr "" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "" @@ -4938,44 +5001,48 @@ msgid "unable to write delim packet" msgstr "" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "" @@ -5147,7 +5214,7 @@ msgstr "" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5204,7 +5271,7 @@ msgstr "" msgid "broken index, expect %s in %s, got %s" msgstr "" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "" @@ -5341,7 +5408,7 @@ msgstr "" msgid "could not read '%s'." msgstr "" -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "" @@ -5565,7 +5632,7 @@ msgstr "" msgid "ignoring ref with broken name %s" msgstr "" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "" @@ -5595,94 +5662,108 @@ msgstr "" msgid "option `%s' must point to a commit" msgstr "" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "" @@ -5940,7 +6021,7 @@ msgstr[1] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr "" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "" @@ -6067,20 +6148,20 @@ msgstr "" msgid "failed to find tree of %s" msgstr "" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "" @@ -6118,21 +6199,25 @@ msgstr "" msgid "failed to sign the push certificate" msgstr "" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" msgstr "" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "" @@ -6248,7 +6333,7 @@ msgstr "" msgid "unable to dequote value of '%s'" msgstr "" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7005,106 +7090,106 @@ msgstr "" msgid "this operation must be run in a work tree" msgstr "" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" "Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)." msgstr "" -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" "The owner of files must always have read and write permissions." msgstr "" -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "" @@ -7284,7 +7369,7 @@ msgstr "" msgid "confused by unstable object source data for %s" msgstr "" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "" @@ -7445,43 +7530,43 @@ msgid "invalid object name '%.*s'." msgstr "" #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -7489,14 +7574,14 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "" msgstr[1] "" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "" @@ -7730,7 +7815,7 @@ msgstr "" msgid "could not read from stdin" msgstr "" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "" @@ -7754,175 +7839,180 @@ msgstr "" msgid "could not rename temporary file to %s" msgstr "" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " "version of Git" msgstr "" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" -#: transport-helper.c:1121 +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "" + +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "" @@ -7936,33 +8026,33 @@ msgstr "" msgid "could not read bundle '%s'" msgstr "" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "" @@ -7971,14 +8061,14 @@ msgstr "" msgid "git-over-rsync is no longer supported" msgstr "" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" "not be found on any remote:\n" msgstr "" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -7994,11 +8084,11 @@ msgid "" "\n" msgstr "" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "" -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "" @@ -8215,7 +8305,7 @@ msgstr "" msgid "Updating index flags" msgstr "" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "" @@ -8252,47 +8342,47 @@ msgstr "" msgid "Fetching objects" msgstr "" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "" @@ -8659,39 +8749,44 @@ msgstr "" msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "" + +#: wt-status.c:1733 msgid "On branch " msgstr "" -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "" -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "" -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "" -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -8699,92 +8794,92 @@ msgid "" "new files yourself (see 'git help status')." msgstr "" -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr "" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "" -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "" -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "" #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "" -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "" -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "" @@ -8861,7 +8956,7 @@ msgstr "" msgid "interactive picking" msgstr "" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "" @@ -8972,12 +9067,12 @@ msgstr "" msgid "--chmod param '%s' must be either -x or +x" msgstr "" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "" @@ -9221,7 +9316,7 @@ msgstr "" msgid "allow fall back on 3way merging if needed" msgstr "" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "" @@ -9276,7 +9371,7 @@ msgstr "" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "" @@ -9547,111 +9642,115 @@ msgid "" "Supported options are: --term-good|--term-old and --term-bad|--term-new." msgstr "" -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "" -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "" @@ -10235,19 +10334,19 @@ msgstr "" msgid "git bundle unbundle <file> [<refname>...]" msgstr "" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "" @@ -10285,8 +10384,8 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" #: builtin/cat-file.c:620 @@ -10321,7 +10420,7 @@ msgstr "" msgid "for blob objects, run filters on object's content" msgstr "" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "" @@ -10381,8 +10480,8 @@ msgstr "" msgid "terminate input and output records by a NUL character" msgstr "" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "" @@ -10474,7 +10573,7 @@ msgstr "" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "" @@ -10589,61 +10688,61 @@ msgstr "" msgid "path '%s' is unmerged" msgstr "" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" "%s" msgstr "" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr "" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -10658,7 +10757,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -10675,26 +10774,26 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" "Please use -- (and optionally --no-guess) to disambiguate" msgstr "" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -10706,286 +10805,287 @@ msgid "" "checkout.defaultRemote=origin in your config." msgstr "" -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "" -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." msgstr "" -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." msgstr "" -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." msgstr "" -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." msgstr "" -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." msgstr "" -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." msgstr "" -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "" @@ -11128,22 +11228,22 @@ msgstr "" msgid "remove only ignored files" msgstr "" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" msgstr "" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" msgstr "" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "" @@ -11152,7 +11252,7 @@ msgstr "" msgid "don't create a checkout" msgstr "" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "" @@ -11184,11 +11284,11 @@ msgstr "" msgid "number of submodules cloned in parallel" msgstr "" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "" @@ -11202,8 +11302,8 @@ msgstr "" msgid "use --reference only while cloning" msgstr "" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "" @@ -11228,7 +11328,7 @@ msgstr "" msgid "create a shallow clone of that depth" msgstr "" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "" @@ -11259,11 +11359,11 @@ msgstr "" msgid "any cloned submodules will be shallow" msgstr "" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "" @@ -11385,7 +11485,7 @@ msgstr "" msgid "cannot unlink temporary alternates file" msgstr "" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "" @@ -11402,83 +11502,83 @@ msgstr "" msgid "--bare and --separate-git-dir are incompatible." msgstr "" -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "" -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "" -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" msgstr "" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "" -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "" -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "" -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "" @@ -11514,90 +11614,99 @@ msgstr "" msgid "--command must be the first argument" msgstr "" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <split options>" msgstr "" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" msgstr "" #: builtin/commit-tree.c:18 @@ -11962,7 +12071,7 @@ msgid "version" msgstr "" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "" @@ -11975,8 +12084,8 @@ msgid "terminate entries with NUL" msgstr "" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "" @@ -12630,35 +12739,45 @@ msgstr "" msgid "--broken is incompatible with commit-ishes" msgstr "" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "" -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "" +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "" @@ -12801,82 +12920,103 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "" -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "" @@ -13185,40 +13325,40 @@ msgstr "" msgid "You need to specify a tag name." msgstr "" -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -13658,8 +13798,8 @@ msgstr "" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "" @@ -13888,11 +14028,11 @@ msgstr "" msgid "invalid option combination, ignoring --threads" msgstr "" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "" @@ -14087,7 +14227,7 @@ msgstr "" msgid "used more bytes than were available" msgstr "" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "" @@ -14158,8 +14298,8 @@ msgstr "" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "" @@ -14220,7 +14360,7 @@ msgstr "" msgid "Resolving deltas" msgstr "" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "" @@ -14285,58 +14425,67 @@ msgstr "" msgid "cannot store index file" msgstr "" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "" msgstr[1] "" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "" msgstr[1] "" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "" -#: builtin/index-pack.c:1780 -msgid "--fix-thin cannot be used without --stdin" +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" msgstr "" #: builtin/index-pack.c:1782 +msgid "--fix-thin cannot be used without --stdin" +msgstr "" + +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "" @@ -14380,90 +14529,99 @@ msgstr "" msgid "not copying templates from '%s': %s" msgstr "" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "" -#: builtin/init-db.c:380 builtin/init-db.c:601 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format -msgid "unknown hash algorithm '%s'" +msgid "%s already exists" msgstr "" -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:444 #, c-format -msgid "%s already exists" +msgid "re-init: ignored --initial-branch=%s" msgstr "" -#: builtin/init-db.c:458 +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" msgstr "" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "" + +#: builtin/init-db.c:564 msgid "hash" msgstr "" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" "dir=<directory>)" msgstr "" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "" @@ -16154,7 +16312,7 @@ msgstr "" msgid "read object names from the standard input" msgstr "" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "" @@ -16185,334 +16343,355 @@ msgid "" "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]" msgstr "" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" " %s" msgstr "" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" " %s" msgstr "" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -17669,7 +17848,7 @@ msgstr "" msgid "git receive-pack <git-dir>" msgstr "" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -17686,7 +17865,7 @@ msgid "" "'receive.denyCurrentBranch' configuration variable to 'refuse'." msgstr "" -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -17698,11 +17877,11 @@ msgid "" "To squelch this message, you can set it to 'refuse'." msgstr "" -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "" @@ -19179,6 +19358,14 @@ msgstr "" msgid "cannot find commit %s (%s)" msgstr "" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -19229,50 +19416,54 @@ msgstr "" msgid "this worktree is not sparse (sparse-checkout file may not exist)" msgstr "" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "" @@ -19934,12 +20125,37 @@ msgstr "" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "" @@ -20538,244 +20754,238 @@ msgstr "" msgid "git worktree unlock <path>" msgstr "" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" +#: builtin/worktree.c:85 +msgid "not a valid directory" msgstr "" -#: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" msgstr "" -#: builtin/worktree.c:90 builtin/worktree.c:99 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +msgid "unable to read gitdir file (%s)" msgstr "" -#: builtin/worktree.c:109 +#: builtin/worktree.c:115 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" msgstr "" -#: builtin/worktree.c:117 -#, c-format -msgid "Removing worktrees/%s: invalid gitdir file" +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "" + +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" msgstr "" -#: builtin/worktree.c:126 +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" +msgid "Removing %s/%s: %s" msgstr "" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" +msgid "unusable worktree destination '%s'" msgstr "" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" "use 'move -f -f' to override or unlock first" msgstr "" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" msgstr "" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" "use 'remove -f -f' to override or unlock first" msgstr "" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" msgstr "" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "" @@ -20796,32 +21006,32 @@ msgstr "" msgid "only useful for debugging" msgstr "" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "" -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "" -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -20840,66 +21050,76 @@ msgid "" "You can delete any lines you don't wish to share.\n" msgstr "" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -21057,30 +21277,30 @@ msgstr "" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -21088,111 +21308,134 @@ msgid "" " redirect: %s" msgstr "" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "" -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "" @@ -22189,26 +22432,26 @@ msgstr "" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr "" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr "" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -22557,44 +22800,44 @@ msgid_plural "touched %d paths\n" msgstr[0] "" msgstr[1] "" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." msgstr "" -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." msgstr "" -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." msgstr "" -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." msgstr "" -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." msgstr "" -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -22603,12 +22846,12 @@ msgid "" "Lines starting with %s will be removed.\n" msgstr "" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -22617,7 +22860,7 @@ msgid "" "d - do not stage this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -22626,7 +22869,7 @@ msgid "" "d - do not stash this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -22635,7 +22878,7 @@ msgid "" "d - do not unstage this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -22644,7 +22887,7 @@ msgid "" "d - do not apply this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -22653,7 +22896,7 @@ msgid "" "d - do not discard this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -22662,7 +22905,7 @@ msgid "" "d - do not discard this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -22671,7 +22914,7 @@ msgid "" "d - do not apply this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -22680,7 +22923,7 @@ msgid "" "d - do not apply this hunk or any of the later hunks in the file" msgstr "" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -22693,85 +22936,90 @@ msgid "" "? - print help\n" msgstr "" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "" -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "" -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "" + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "" -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "" msgstr[1] "" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "" msgstr[1] "" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -22782,19 +23030,19 @@ msgid "" "changes\n" msgstr "" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "" @@ -23072,56 +23320,56 @@ msgstr "" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "" @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-27 18:21+0200\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-11 15:31+0200\n" "Last-Translator: Alessandro Menti <alessandro.menti@alessandromenti.it>\n" "Language-Team: Italian <>\n" "Language: it\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 20.04.1\n" +"X-Generator: Lokalize 20.04.2\n" #: add-interactive.c:368 #, c-format @@ -115,21 +115,21 @@ msgstr[1] "aggiunti %d percorsi\n" msgid "ignoring unmerged: %s" msgstr "ignoro ciò che non è stato sottoposto a merge: %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Sono stati modificati solo file binari.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "Nessuna modifica.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Aggiornamento patch" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "Rivedi diff" @@ -204,11 +204,11 @@ msgstr "seleziona un elemento numerato" msgid "(empty) select nothing" msgstr "(vuoto) non selezionare nulla" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Comandi ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Cosa faccio ora" @@ -225,7 +225,7 @@ msgstr "rimosso dall'area di staging" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "percorso" @@ -234,27 +234,32 @@ msgstr "percorso" msgid "could not refresh index" msgstr "impossibile aggiornare l'indice" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Ciao.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "Modifica modo stage [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "Eliminazione stage [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "Aggiunta stage [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "Eseguire lo stage di quest'hunk [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -262,7 +267,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà " "contrassegnato immediatamente per l'aggiunta all'area di staging." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -279,22 +284,27 @@ msgstr "" "d - non aggiungere né quest'hunk né quelli successivi nel file all'area di " "staging\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "Modifica modo stash [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "Eliminazione stash [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "Aggiunta stash [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "Eseguire lo stash di quest'hunk [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -302,7 +312,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà " "contrassegnato immediatamente per lo stash." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -316,22 +326,27 @@ msgstr "" "a - esegui lo stash di quest'hunk e di tutti quelli successivi nel file\n" "d - non eseguire lo stash né di quest'hunk né di quelli successivi nel file\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "Rimozione modifica modo dall'area di staging [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "Rimozione eliminazione dall'area di staging [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "Rimozione aggiunta dall'area di staging [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "Rimuovere quest'hunk dall'area di staging [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -339,7 +354,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà " "contrassegnato immediatamente per la rimozione dall'area di staging." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -356,22 +371,27 @@ msgstr "" "d - non rimuovere né quest'hunk né quelli successivi nel file dall'area di " "staging\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "Applicare la modifica modo all'indice [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "Applicare l'eliminazione all'indice [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "Applicare l'aggiunta all'indice [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "Applicare quest'hunk all'indice [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -379,7 +399,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà " "contrassegnato immediatamente per l'applicazione." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -393,25 +413,31 @@ msgstr "" "a - applica quest'hunk e tutti quelli successivi nel file\n" "d - non applicare né quest'hunk né quelli successivi nel file\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "Scartare le modifiche modo dall'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "Scartare l'eliminazione dall'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "Scartare l'aggiunta dall'albero di lavoro [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "Scartare quest'hunk dall'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -419,7 +445,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà " "contrassegnato immediatamente per la rimozione." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -433,26 +459,32 @@ msgstr "" "a - rimuovi quest'hunk e tutti quelli successivi nel file\n" "d - non rimuovere né quest'hunk né quelli successivi nel file\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Scartare la modifica modo dall'indice e dall'albero di lavoro [y,n,q,a,d" "%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Scartare l'eliminazione dall'indice e dall'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "" +"Scartare l'aggiunta dall'indice e dall'albero di lavoro [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Scartare quest'hunk dall'indice e dall'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -466,26 +498,32 @@ msgstr "" "a - rimuovi quest'hunk e tutti quelli successivi nel file\n" "d - non rimuovere né quest'hunk né quelli successivi nel file\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Applicare la modifica modo all'indice e all'albero di lavoro [y,n,q,a,d" "%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Applicare l'eliminazione all'indice e all'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "" +"Applicare l'aggiunta all'indice e all'albero di lavoro [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Applicare quest'hunk all'indice e all'albero di lavoro [y,n,q,a,d%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -499,7 +537,7 @@ msgstr "" "a - applica quest'hunk e tutti quelli successivi nel file\n" "d - non applicare né quest'hunk né quelli successivi nel file\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -513,34 +551,34 @@ msgstr "" "a - applica quest'hunk e tutti quelli successivi nel file\n" "d - non applicare né quest'hunk né quelli successivi nel file\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "impossibile analizzare l'header hunk '%.*s'" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "impossibile analizzare l'header hunk colorato '%.*s'" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "impossibile analizzare il diff" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "impossibile analizzare il diff colorato" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "esecuzione di '%s' non riuscita" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "output di interactive.diffFilter non corrispondente" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -548,7 +586,7 @@ msgstr "" "Il filtro deve mantenere una corrispondenza uno a uno\n" "fra le righe di input e di output." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -557,7 +595,7 @@ msgstr "" "attesa riga contesto %d in\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -570,13 +608,13 @@ msgstr "" "\tnon termina con:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "" "Modalità manuale modifica hunt - vedi la fine del file per una guida " "veloce.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -590,7 +628,7 @@ msgstr "" "Le righe che iniziano con %c saranno rimosse.\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -600,11 +638,11 @@ msgstr "" "di modificarla di nuovo. Se tutte le righe dell'hunk saranno state\n" "rimosse, la modifica sarà interrotta e l'hunk non sarà modificato.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "impossibile analizzare l'header hunk" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "'git apply --cached' non riuscito" @@ -620,26 +658,26 @@ msgstr "'git apply --cached' non riuscito" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "L'hunk modificato non può essere applicato senza problemi. Modificarlo di " "nuovo (se rispondi \"no\", sarà eliminato!) [y/n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "Gli hunk selezionati non si applicano senza problemi all'indice!" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "Vuoi comunque applicarli all'albero di lavoro? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Non è stato applicato nulla.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -663,69 +701,69 @@ msgstr "" "e - modifica manualmente l'hunk corrente\n" "? - stampa una guida\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "Nessun hunk precedente" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "Nessun hunk successivo" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "Nessun altro hunk a cui andare" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "a quale hunk desideri andare (premi <Invio> per vederne altri)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "a quale hunk desideri andare? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Numero non valido: '%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Mi dispiace, è disponibile solo %d hunk." msgstr[1] "Mi dispiace, sono disponibili solo %d hunk." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "Nessun altro hunk in cui eseguire la ricerca" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "cercare un'espressione regolare? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Espressione regolare di ricerca %s malformata: %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "Nessun hunk corrisponde al pattern fornito" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Mi dispiace, non posso suddividere quest'hunk" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "Suddiviso in %d hunk." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Mi dispiace, non posso modificare quest'hunk" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' non riuscito" @@ -1433,7 +1471,7 @@ msgstr "assicura che almeno <n> righe di contesto corrispondano" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "azione" @@ -1525,7 +1563,7 @@ msgstr "il percorso non è codificato validamente in UTF-8: %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "percorso troppo lungo (%d caratteri, SHA1: %s): %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "errore deflate (%d)" @@ -1595,8 +1633,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "anteponi <prefisso> a ogni nome percorso nell'archivio" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1824,10 +1862,10 @@ msgstr "" "le opzioni --reverse e --first-parent se usate insieme richiedono che sia " "specificato l'ultimo commit" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "impostazione percorso revisioni non riuscita" @@ -1996,84 +2034,88 @@ msgstr "Il checkout di '%s' è già stato eseguito in '%s'" msgid "HEAD of working tree %s is not updated" msgstr "L'HEAD dell'albero di lavoro %s non è aggiornato" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' non sembra essere un file bundle v2" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "lunghezza algoritmo hash sconosciuta" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "intestazione non riconosciuta: %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "impossibile aprire '%s'" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Dal repository mancano questi commit richiesti come prerequisito:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "è necessario un repository per verificare un bundle" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "Il bundle contiene questo riferimento:" msgstr[1] "Il bundle contiene questi %d riferimenti:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "Nel bundle è registrata una cronologia completa." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "Il bundle richiede questo riferimento:" msgstr[1] "Il bundle richiede questi %d riferimenti:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "impossibile duplicare il descrittore bundle" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "Impossibile avviare pack-objects" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "comando pack-objects morto" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "comando rev-list morto" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "il riferimento '%s' è escluso dalle opzioni di rev-list" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "argomento non riconosciuto: %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "Mi rifiuto di creare un bundle vuoto." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "impossibile creare '%s'" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "comando index-pack morto" @@ -2082,271 +2124,261 @@ msgstr "comando index-pack morto" msgid "invalid color value: %.*s" msgstr "valore colore non valido: %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "il file grafo dei commit %s è troppo piccolo" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "la firma del grafo dei commit %X non corrisponde alla firma %X" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "la versione del grafo dei commit %X non corrisponde alla versione %X" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "" "la versione hash del grafo dei commit %X non corrisponde alla versione %X" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "voce blocco grafo dei commit mancante nella tabella di ricerca; il file " "potrebbe non essere completo" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "offset blocco grafo dei commit improprio %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "l'ID del blocco grafo dei commit %08x compare più volte" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "il grafo dei commit non ha un blocco grafi di base" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "la catena del grafo dei commit non corrisponde" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "catena grafo dei commit non valida: la riga '%s' non è un hash" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "impossibile trovare tutti i file grafo dei commit" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "" "posizione commit non valida. Il grafo dei commit è probabilmente corrotto" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "impossibile trovare il commit %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "impossibile analizzare il commit %s" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "" "Scrittura dell'indice dei filtri di Bloom per i percorsi modificati in corso" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "" "Scrittura dei dati dei filtri di Bloom per i percorsi modificati in corso" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "impossibile recuperare il tipo dell'oggetto %s" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Caricamento commit noti nel grafo dei commit in corso" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "Espansione dei commit raggiungibili nel grafo dei commit in corso" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Rimozione dei contrassegni commit nel grafo dei commit in corso" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Calcolo numeri generazione del grafo dei commit in corso" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "" "Calcolo dei filtri di Bloom per i percorsi modificati nei commit in corso" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "Raccolta dei commit referenziati in corso" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Ricerca dei commit per il grafo dei commit in %d pack in corso" msgstr[1] "Ricerca dei commit per il grafo dei commit in %d pack in corso" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "errore durante l'aggiunta del pack %s" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "errore durante l'apertura dell'indice per %s" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "" -"Ricerca dei commit per il grafo dei commit da %d riferimento in corso" -msgstr[1] "" -"Ricerca dei commit per il grafo dei commit da %d riferimenti in corso" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "ID oggetto commit non valido: %s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "" "Ricerca dei commit per il grafo dei commit fra gli oggetti nei pack in corso" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Conteggio commit distinti nel grafo dei commit in corso" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Ricerca degli archi aggiuntivi nel grafo dei commit in corso" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "impossibile scrivere il numero esatto degli ID grafo di base" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "impossibile creare le prime directory di %s" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "impossibile creare il livello grafico temporaneo" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "impossibile modificare i permessi condivisi per '%s'" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Scrittura in %d passaggio del grafo dei commit in corso" msgstr[1] "Scrittura in %d passaggi del grafo dei commit in corso" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "impossibile aprire il file catena grafo dei commit" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "impossibile ridenominare il file di base grafo dei commit" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "impossibile ridenominare il file temporaneo grafo dei commit" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "Scansione dei commit sottoposti a merge in corso" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "ID commit duplicato inatteso: %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "Merge del grafo dei commit in corso" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "" "il formato del grafo dei commit non può essere usato per scrivere %d commit" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "troppi commit da scrivere nel grafo" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "il file del grafo dei commit ha un checksum non corretto e probabilmente è " "corrotto" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "il grafo dei commit ha un ordine OID non corretto: %s seguito da %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "" "il grafo dei commit ha un valore fanout non corretto: fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "impossibile analizzare il commit %s nel grafo dei commit" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Verifica dei commit nel grafo dei commit in corso" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "impossibile analizzare il commit %s dal database oggetti per il grafo dei " "commit" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" "l'OID dell'albero radice per il commit %s nel grafo dei commit è %s != %s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "l'elenco genitori nel grafo dei commit per il commit %s è troppo lungo" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "il genitore nel grafo dei commit per %s è %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "" "l'elenco genitori nel grafo dei commit per il commit %s è finito prima del " "previsto" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2354,7 +2386,7 @@ msgstr "" "il grafo dei commit ha un numero generazione zero per il commit %s ma non " "pari a zero per gli altri" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2362,12 +2394,12 @@ msgstr "" "il grafo dei commit ha un numero generazione non pari a zero per il commit " "%s ma pari a zero per gli altri" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "il numero generazione nel grafo dei commit per il commit %s è %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2404,27 +2436,27 @@ msgstr "" "Per disabilitare questo messaggio, esegui\n" "\"git config advice.graftFileDeprecated false\"" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "Il commit %s ha una firma GPG non affidabile, presumibilmente di %s." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "Il commit %s ha una firma GPG non valida presumibilmente di %s." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Il commit %s non ha una firma GPG." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "Il commit %s ha una firma GPG valida di %s\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2619,7 +2651,7 @@ msgstr "valore malformato per %s: %s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "dev'essere nothing, matching, simple, upstream o current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "livello compressione pack %d non valido" @@ -2773,72 +2805,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "il server non supporta '%s'" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "il server non supporta la funzionalità '%s'" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "atteso flush dopo lettura funzionalità " -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "ignoro le funzionalità dopo la prima riga '%s'" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "errore protocollo: capabilities^{} non atteso" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "errore protocollo: atteso SHA1 shallow, ricevuto '%s'" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "il repository della controparte non può essere shallow" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "pacchetto non valido" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "errore protocollo: '%s' non atteso" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "formato oggetto '%s' sconosciuto specificato dal server" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "risposta ls-refs non valida: %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "atteso flush dopo elenco ref" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "atteso pacchetto fine risposta dopo elenco ref" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "il protocollo '%s' non è supportato" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "impossibile impostare SO_KEEPALIVE sul socket" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "Risoluzione di %s in corso... " -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "impossibile risolvere %s (porta %s) (%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2847,7 +2888,7 @@ msgstr "" "fatto.\n" "Connessione a %s (porta %s) in corso... " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2857,75 +2898,75 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "fatto." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "impossibile risolvere %s (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "porta %s sconosciuta" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "nome host strano '%s' bloccato" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "porta strana '%s' bloccata" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "impossibile avviare il proxy %s" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "" "nessun percorso specificato; vedere 'git help pull' per le sintassi URL " "valide" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "la variante SSH 'simple' non supporta -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "la variante SSH 'simple' non supporta -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "la variante SSH 'simple' non supporta l'impostazione della porta" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "percorso strano '%s' bloccato" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "impossibile eseguire fork" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Controllo connessione in corso" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "Impossibile eseguire 'git-rev-list'" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "scrittura nella rev-list non riuscita" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "chiusura standard input della rev-list non riuscita" @@ -3194,19 +3235,19 @@ msgstr "" "Non è un repository Git. Usa --no-index per confrontare due percorsi al di " "fuori di un albero di lavoro" -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Analisi della percentuale di cutoff statistiche directory '%s' non " "riuscita\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Parametro statistiche directory '%s' sconosciuto\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3214,7 +3255,7 @@ msgstr "" "l'impostazione colore per file spostati deve essere 'no', 'default', " "'blocks', 'zebra', 'dimmed-zebra', 'plain'" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3224,7 +3265,7 @@ msgstr "" "space-change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-" "change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3232,13 +3273,13 @@ msgstr "" "color-moved-ws: allow-indentation-change non può essere combinata con altre " "modalità spazi bianchi" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" "Valore sconosciuto per la variabile di configurazione 'diff.submodule': '%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3247,36 +3288,36 @@ msgstr "" "Trovati errori nella variabile di configurazione 'diff.dirstat':\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "processo esterno diff morto, mi fermo a %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "" "le opzioni --name-only, --name-status, --check e -s sono mutuamente esclusive" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "le opzioni -G, -S e --find-object sono mutuamente esclusive" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow richiede esattamente uno specificatore percorso" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "valore non valido per --stat: %s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s richiede un valore numerico" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3285,42 +3326,42 @@ msgstr "" "Analisi del parametro dell'opzione --dirstat/-X non riuscita:\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "classe modifica '%c' sconosciuta in --diff-filter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "valore sconosciuto dopo ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "impossibile risolvere '%s'" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s richiede il formato <n>/<m>" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s richiede un carattere, ricevuto '%s'" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "argomento --color-moved errato: %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "modo non valido '%s' in --color-moved-ws" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3328,151 +3369,151 @@ msgstr "" "l'opzione diff-algorithm accetta i valori \"myers\", \"minimal\", \"patience" "\" e \"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "argomento non valido per %s" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "analisi del parametro dell'opzione --submodule non riuscita: '%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "argomento --word-diff errato: %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Opzioni formato output diff" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "genera patch" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "non visualizzare l'output del diff" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "genera diff con <n> righe di contesto" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "genera il diff in formato grezzo" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "sinonimo di '-p --raw'" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "sinonimo di '-p --stat'" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "--stat leggibile da una macchina" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "emetti in output solo l'ultima riga di --stat" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<parametro1,parametro2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" "emetti in output la distribuzione del numero di modifiche relativo a ogni " "sottodirectory" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "sinonimo di --dirstat=cumulative" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "sinonimo di --dirstat=files,parametro1,parametro2..." -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "avvisa se le modifiche introducono marcatori conflitto o errori spazi bianchi" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "" "riassunto conciso (ad es. elementi creati, ridenominati e modifiche modi)" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "visualizza solo i nomi dei file modificati" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "visualizza solo i nomi e lo stato dei file modificati" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<ampiezza>[,<ampiezza nome>[,<numero>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "genera diffstat" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<ampiezza>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "genera il diffstat con un'ampiezza specificata" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "genera il diffstat con un'ampiezza nomi specificata" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "genera il diffstat con un'ampiezza grafo specificata" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<numero>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "genera il diffstat con righe limitate" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "genera riassunto conciso nel diffstat" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "stampa in output un diff binario che può essere applicato" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "visualizza i nomi oggetto pre e post immagine nelle righe \"indice\"" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "visualizza diff colorato" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<tipo>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3480,7 +3521,7 @@ msgstr "" "evidenzia gli errori di spazi bianchi nelle righe 'contesto', 'vecchie' o " "'nuove' nel diff" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3488,91 +3529,91 @@ msgstr "" "non rimuovere i nomi percorso e usare caratteri NUL come terminatori campo " "in --raw o --numstat" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<prefisso>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "visualizza il prefisso sorgente specificato invece di \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "visualizza il prefisso destinazione specificato invece di \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "anteponi un prefisso aggiuntivo ad ogni riga dell'output" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "non visualizzare alcun prefisso sorgente o destinazione" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "" "visualizza il contesto tra gli hunk del diff fino al numero di righe " "specificato" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<carattere>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "specifica il carattere che indica una nuova riga al posto di '+'" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "specifica il carattere che indica una vecchia riga al posto di '-'" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "specifica il carattere che indica un contesto al posto di ' '" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Opzioni rinominazione diff" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "" "spezza modifiche di riscrittura completa in coppie eliminazione/creazione" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "rileva le ridenominazioni" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "ometti la preimmagine per le eliminazioni" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "rileva le copie" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "usa file non modificati come sorgente per trovare copie" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "disabilita rilevamento ridenominazione" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "usa blob vuoti come sorgente ridenominazione" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "" "continua a elencare la cronologia di un file al di là delle ridenominazioni" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3580,159 +3621,159 @@ msgstr "" "impedisci il rilevamento ridenominazione/copia se il numero delle " "destinazioni ridenominazione/copia eccede il limite specificato" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Opzioni algoritmo diff" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "produci il diff più piccolo possibile" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "ignora gli spazi bianchi durante il confronto delle righe" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "ignora le modifiche al numero degli spazi bianchi" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "ignora modifiche agli spazi bianchi a fine riga" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "ignora carattere ritorno a capo a fine riga" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "ignora modifiche che riguardano solo righe vuote" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "" "euristica per spostare i limiti degli hunk nel diff per una lettura agevole" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "genera il diff usando l'algoritmo \"patience diff\"" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "genera il diff usando l'algoritmo \"histogram diff\"" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<algoritmo>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "seleziona un algoritmo diff" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<testo>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "genera il diff usando l'algoritmo \"anchored diff\"" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<modalità >" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "" "visualizza il diff parola per parola usando <modalità > per delimitare le " "parole modificate" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<espressione regolare>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "usa <espressione regolare> per decidere cosa costituisce una parola" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "" "equivalente di --word-diff=color --word-diff-regex=<espressione regolare>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "le righe di codice spostate sono colorate in modo diverso" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "modo in cui sono ignorati gli spazi bianchi in --color-moved" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "Altre opzioni diff" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "se eseguito da una sottodirectory, escludi le modifiche esterne ad essa e " "visualizza i percorsi relativi" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "tratta tutti i file come se fossero di testo" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "scambia i due input, genera un diff al contrario" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "esci con codice 1 se ci sono differenze, con 0 altrimenti" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "disabilita l'intero output del programma" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "consenti l'esecuzione di un helper diff esterno" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" "esegui filtri di conversione in testo esterni quando si confrontano file " "binari" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<quando>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "ignora le modifiche ai sottomoduli durante la generazione del diff" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<formato>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "specifica come verranno visualizzate le differenze nei sottomoduli" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "nascondi le voci 'git add -N' nell'indice" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "tratta le voci 'git add -N' come reali nell'indice" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<stringa>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" @@ -3740,7 +3781,7 @@ msgstr "" "cerca differenze che modificano il numero di occorrenze della stringa " "specificata" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -3748,24 +3789,24 @@ msgstr "" "cerca differenze che modificano il numero di occorrenze dell'espressione " "regolare specificata" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "visualizza tutte le modifiche nel changeset con -S o -G" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "" "tratta la <stringa> nell'opzione -S come un'espressione regolare POSIX estesa" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "controlla l'ordine con cui i file appariranno nell'output" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<ID oggetto>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" @@ -3773,34 +3814,34 @@ msgstr "" "cerca differenze che modificano il numero di occorrenze dell'oggetto " "specificato" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "seleziona file in base al tipo diff" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<file>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "Salva l'output in un file specifico" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "il rilevamento ridenominazione non esatta è stato omesso per la presenza di " "troppi file." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "" "trovate solo copie dai percorsi modificati per la presenza di troppi file." -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3817,62 +3858,62 @@ msgstr "lettura dell'orderfile '%s' non riuscita" msgid "Performing inexact rename detection" msgstr "Rilevamento ridenominazione non esatta in corso" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "" "lo specificatore percorso '%s' non corrisponde ad alcun file noto a git" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "pattern non riconosciuto: '%s'" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "pattern negativo non riconosciuto: '%s'" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "" "il file sparse-checkout potrebbe avere dei problemi: il pattern '%s' è " "ripetuto" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "disabilito il pattern matching di tipo cone" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "impossibile usare %s come file di esclusione" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "impossibile aprire la directory '%s'" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "impossibile ottenere il nome e le informazioni sul kernel" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "la cache non tracciata è disabilitata su questo sistema o percorso" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "file index corrotto nel repository %s" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "impossibile creare le directory per %s" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "impossibile migrare la directory git da '%s' a '%s'" @@ -3883,11 +3924,11 @@ msgid "hint: Waiting for your editor to close the file...%c" msgstr "" "suggerimento: In attesa della chiusura del file da parte dell'editor...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "Filtraggio contenuto in corso" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "impossibile eseguire stat sul file '%s'" @@ -3907,230 +3948,248 @@ msgstr "impossibile impostare GIT_DIR a '%s'" msgid "too many args to run %s" msgstr "troppi argomenti per eseguire %s" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: attesa lista shallow" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack: atteso pacchetto flush dopo lista shallow" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack: attesi ACK/NAK, ricevuto pacchetto flush" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: attesi ACK/NAK, ricevuto '%s'" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "impossibile scrivere sul remoto" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc richiede multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "riga shallow non valida: '%s'" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "riga unshallow non valida: '%s'" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "oggetto non trovato: %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "errore nell'oggetto: %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "nessuno shallow trovato: %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "attesi shallow/unshallow, ricevuto %s" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "ricevuto %s %d %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "commit non valido: %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "smetto di provare" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "fatto" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "ricevuto %s (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "Contrassegno %s come completo" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "ho già %s (%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "" "fetch-pack: impossibile eseguire il fork del demultiplexer della banda " "laterlae" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "errore protocollo: intestazione pack non valida" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack: impossibile eseguire il fork di %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s non riuscito" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "errore nel demultiplexer della banda laterale" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "La versione del server è %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "Il server supporta %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "Il server non supporta client shallow" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "Il server non supporta --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "Il server non supporta --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "Il server non supporta --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "Il server non supporta il formato oggetti di questo repository" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "nessun commit in comune" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack: recupero non riuscito." #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "algoritmi non corrispondenti: client %s; server %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "il server non supporta l'algoritmo '%s'" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "Il server non supporta le richieste shallow" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "Il server supporta filter" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "impossibile scrivere la richiesta sul remoto" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "errore durante la lettura dell'intestazione di sezione '%s'" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "atteso '%s', ricevuto '%s'" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "riga di conferma inattesa: '%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "errore durante l'elaborazione degli ack: %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "ci si attendeva che il packfile fosse inviato dopo 'ready'" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "" "ci si attendeva che nessun'altra sezione fosse inviata in assenza di 'ready'" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "errore durante l'elaborazione delle informazioni shallow: %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "atteso wanted-ref, ricevuto '%s'" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "wanted-ref inatteso: '%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "errore durante l'elaborazione dei riferimenti desiderati: %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: atteso pacchetto fine risposta" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "nessun head remoto corrispondente" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "il remoto non ha inviato tutti gli oggetti necessari" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "riferimento remoto non esistente: %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "Il server non consente richieste per l'oggetto non pubblicizzato %s" @@ -4166,7 +4225,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s': impossibile leggere %s" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4311,16 +4370,16 @@ msgstr[1] "" "\n" "I comandi maggiormente simili sono" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<opzioni>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4423,6 +4482,11 @@ msgstr "atteso qualcosa dopo la ricombinazione:" msgid "multiple filter-specs cannot be combined" msgstr "non è possibile combinare più specificatori filtro" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "" +"impossibile aggiornare il formato repository per supportare il clone parziale" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4793,7 +4857,7 @@ msgstr "aggiunta/aggiunta" msgid "Skipped %s (merged same as existing)" msgstr "Omesso %s (elemento sottoposto a merge uguale a quello esistente)" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "sottomodulo" @@ -4921,7 +4985,7 @@ msgid "failed to read the cache" msgstr "lettura della cache non riuscita" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "impossibile scrivere il nuovo file index" @@ -5171,22 +5235,22 @@ msgstr "impossibile analizzare l'oggetto: %s" msgid "hash mismatch %s" msgstr "hash non corrispondente: %s" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "impossibile recuperare le dimensioni di %s" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "offset collocato prima della fine del packfile (.idx corrotto?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "" "offset collocato prima dell'inizio dell'indice pack per %s (indice corrotto?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "" @@ -5396,46 +5460,50 @@ msgid "unable to write delim packet" msgstr "impossibile scrivere il pacchetto delim" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "impossibile scrivere il pacchetto separatore senza stato" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "scrittura con flush pacchetto non riuscita" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "errore protocollo: riga impossibilmente lunga" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "scrittura pacchetto con formato non riuscita" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "" "scrittura pacchetto non riuscita - i dati sono più della dimensione massima " "pacchetto" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "scrittura pacchetto non riuscita" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "errore di lettura" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "l'interlocutore remoto ha chiuso inaspettatamente la connessione" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "errore protocollo: carattere lunghezza riga non valido: %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "errore protocollo: lunghezza riga non valida: %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "errore remoto: %s" @@ -5615,7 +5683,7 @@ msgstr "voci stage non ordinate per '%s'" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5672,7 +5740,7 @@ msgstr "impossibile aggiornare l'indice condiviso '%s'" msgid "broken index, expect %s in %s, got %s" msgstr "indice corrotto, atteso %s in %s, presente %s" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "impossibile chiudere '%s'" @@ -5860,7 +5928,7 @@ msgstr "" msgid "could not read '%s'." msgstr "impossibile leggere '%s'." -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "sparito" @@ -6086,7 +6154,7 @@ msgstr "oggetto malformato in '%s'" msgid "ignoring ref with broken name %s" msgstr "ignoro il riferimento con il nome malformato %s" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "ignoro il riferimento rotto %s" @@ -6116,94 +6184,108 @@ msgstr "nome dell'oggetto %s malformato" msgid "option `%s' must point to a commit" msgstr "l'opzione `%s' deve puntare ad un commit" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "%s non punta a un oggetto valido!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "impossibile recuperare `%s`" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "nome branch non valido: %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "ignoro il riferimento simbolico pendente %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "impossibile aprire '%s' in scrittura: %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "impossibile leggere il riferimento '%s'" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "il riferimento '%s' esiste già " -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "ID oggetto inatteso durante la scrittura di '%s'" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "impossibile scrivere su '%s'" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "impossibile aprire '%s' in scrittura" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "ID oggetto inatteso durante l'eliminazione di '%s'" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "il registro per il riferimento %s ha delle voci mancanti dopo %s" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "il registro per il riferimento %s è terminato inaspettatamente a %s" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "il registro per %s è vuoto" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "mi rifiuto di aggiornare il riferimento con il nome non valido '%s'" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "update_ref per il riferimento '%s' non riuscita: %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "aggiornamenti multipli per il riferimento '%s' non consentiti" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "aggiornamenti riferimento vietati nell'ambiente quarantena" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "aggiornamento ref interrotto dall'hook" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' esiste già ; impossibile creare '%s'" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "impossibile gestire '%s' e '%s' contemporaneamente" @@ -6505,7 +6587,7 @@ msgstr[1] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (usa \"git pull\" per eseguire il merge del branch remoto nel tuo)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "impossibile analizzare il nome oggetto atteso '%s'" @@ -6632,20 +6714,20 @@ msgstr "impossibile determinare la revisione HEAD" msgid "failed to find tree of %s" msgstr "impossibile trovare l'albero di %s" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "sembra che il tuo branch corrente sia rotto" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "il tuo branch corrente '%s' non ha ancora commit" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent non è compatibile con --bisect" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L non supporta ancora formati diff oltre a -p e -s" @@ -6687,11 +6769,15 @@ msgstr "decompressione sul remoto non riuscita: %s" msgid "failed to sign the push certificate" msgstr "firma del certificato per il push non riuscita" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "il ricevente non supporta l'algoritmo hash di questo repository" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "il ricevente non supporta i push --signed" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6699,11 +6785,11 @@ msgstr "" "non invio un certificato push perché il ricevente non supporta i push --" "signed" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "il ricevente non supporta i push --atomic" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "il ricevente non supporta le opzioni push" @@ -6824,7 +6910,7 @@ msgstr "nessuna chiave presente in '%.*s'" msgid "unable to dequote value of '%s'" msgstr "impossibile rimuovere gli apici dal valore di '%s'" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7672,84 +7758,84 @@ msgstr "" msgid "this operation must be run in a work tree" msgstr "quest'operazione deve essere eseguita in un albero di lavoro" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Attesa versione repository Git <= %d, trovata %d" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "trovate estensioni repository sconosciute:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "errore durante l'apertura di '%s'" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "'%s' troppo grande per essere un file .git" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "errore durante la lettura di %s" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "formato file Git non valido: %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "nessun percorso presente nel file Git: %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "%s non è un repository Git" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' è troppo grande" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "'%s' non è un repository Git" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "impossibile modificare la directory corrente in '%s'" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "impossibile tornare alla directory di lavoro corrente" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "stat di '%*s%s%s' non riuscito" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Impossibile leggere la directory di lavoro corrente" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "impossibile entrare in '%s'" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "%s non è un repository Git (né lo è alcuna delle directory genitrici)" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7759,7 +7845,7 @@ msgstr "" "Mi fermo al limite del filesystem (l'opzione GIT_DISCOVERY_ACROSS_FILESYSTEM " "non è impostata)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7769,15 +7855,15 @@ msgstr "" "(0%.3o).\n" "Il proprietario dei file deve avere sempre i permessi di lettura e scrittura." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "apertura di /dev/null o dup non riuscita" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "fork non riuscita" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "setsid non riuscita" @@ -7964,7 +8050,7 @@ msgstr "deflateEnd non riuscita sull'oggetto %s (%d)" msgid "confused by unstable object source data for %s" msgstr "sono confuso dall'origine dati oggetto non stabile per %s" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "utime() di %s non riuscita" @@ -8144,43 +8230,43 @@ msgid "invalid object name '%.*s'." msgstr "nome oggetto non valido: '%.*s'." #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8188,14 +8274,14 @@ msgstr[0] "%u byte" msgstr[1] "%u byte" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u byte/s" msgstr[1] "%u byte/s" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "impossibile modificare '%s'" @@ -8449,7 +8535,7 @@ msgstr "impossibile leggere il file di input '%s'" msgid "could not read from stdin" msgstr "impossibile leggere dallo standard input" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "impossibile eseguire lo stat di '%s'" @@ -8473,20 +8559,20 @@ msgstr "impossibile aprire un file temporaneo" msgid "could not rename temporary file to %s" msgstr "impossibile ridenominare il file temporaneo in %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "scrittura completa verso l'helper remoto non riuscita" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "impossibile trovare l'helper remoto per '%s'" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "impossibile duplicare il descrittore file dell'output helper" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8495,161 +8581,166 @@ msgstr "" "capability necessaria %s sconosciuta; quest'helper remoto probabilmente " "richiede una versione di Git più recente" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "questo helper remoto dovrebbe implementare la capability refspec" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s ha inviato un messaggio inatteso: '%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s ha bloccato anche %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "impossibile eseguire fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "errore durante l'esecuzione di fast-import" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "impossibile leggere il riferimento %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "risposta inattesa a connect: %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "" "l'impostazione del percorso del servizio remoto non è supportata dal " "protocollo" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "percorso servizio remoto non valido" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "operazione non supportata dal protocollo" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "impossibile connettersi al sottoservizio %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "attesi ok/error, l'helper ha inviato '%s'" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "l'helper ha segnalato uno stato inatteso di %s" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "l'helper %s non supporta dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "l'helper %s non supporta --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "l'helper %s non supporta --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "l'helper %s non supporta --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "l'helper %s non supporta 'push-option'" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "" "l'helper remoto non supporta il push; è necessario uno specificatore " "riferimento" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "l'helper %s non supporta 'force'" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "impossibile eseguire fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "errore durante l'esecuzione di fast-export" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "Nessun riferimento in comune e nessuno specificato; non eseguo nulla.\n" -"Forse dovresti specificare un branch come 'master'.\n" +"Forse dovresti specificare un branch.\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "formato oggetto non supportato: '%s'" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "risposta malformata nell'elenco riferimenti: %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "read(%s) non riuscita" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "write(%s) non riuscita" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "thread %s non riuscito" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "join non riuscita per il thread %s: %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "impossibile avviare il thread per la copia dei dati: %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "wait non riuscita per il processo %s" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "processo %s non riuscito" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "impossibile avviare il thread per la copia dei dati" @@ -8663,33 +8754,33 @@ msgstr "L'upstream di '%s' sarebbe impostato a '%s' di '%s'\n" msgid "could not read bundle '%s'" msgstr "impossibile leggere il bundle '%s'" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "trasporto: opzione profondità '%s' non valida" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "vedi protocol.version in 'git help config' per maggiori dettagli" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "le opzioni server richiedono la versione 2 o successiva del protocollo" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "impossibile analizzare la configurazione transport.color.*" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "supporto alla versione 2 del protocollo non ancora implementato" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "valore sconosciuto per la configurazione '%s': %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "trasporto '%s' non consentito" @@ -8698,7 +8789,7 @@ msgstr "trasporto '%s' non consentito" msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync non è più supportato" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8707,7 +8798,7 @@ msgstr "" "I seguenti percorsi sottomodulo contengono modifiche\n" "non trovate su nessun remoto:\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8734,11 +8825,11 @@ msgstr "" "per eseguirne il push a un remoto.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Interrompo l'operazione." -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "push di tutti i sottomoduli richiesti non riuscito" @@ -9031,7 +9122,7 @@ msgstr "" msgid "Updating index flags" msgstr "Aggiornamento dei contrassegni indice in corso" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "atteso flush dopo recupero argomenti" @@ -9068,50 +9159,50 @@ msgstr "parte percorso '..' non valida" msgid "Fetching objects" msgstr "Recupero oggetti in corso" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "lettura di '%s' non riuscita" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "" "'%s' nell'albero di lavoro principale non è la directory del repository" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "" "il file '%s' non contiene il percorso assoluto alla posizione dell'albero di " "lavoro" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' non esiste" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' non è un file .git, codice d'errore %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' non punta a '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "impossibile aprire '%s' in lettura e scrittura" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "impossibile accedere a '%s'" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "impossibile ottenere la directory di lavoro corrente" @@ -9519,39 +9610,45 @@ msgstr "Attualmente stai eseguendo una bisezione." msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (usa \"git bisect reset\" per tornare al branch originario)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "" +"Sei in uno sparse checkout in cui è presente il %d%% dei file tracciati." + +#: wt-status.c:1733 msgid "On branch " msgstr "Sul branch " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "rebase interattivo in corso su " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "rebase in corso su " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Attualmente non sei su alcun branch." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Commit iniziale" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "Non ci sono ancora commit" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "File non tracciati" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "File ignorati" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9563,31 +9660,31 @@ msgstr "" "ma devi stare attento a non dimenticarti di aggiungere\n" "autonomamente i file nuovi (vedi 'git help status')." -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "File non tracciati non elencati%s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (usa l'opzione -u per visualizzare i file non tracciati)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "Nessuna modifica" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "nessuna modifica aggiunta al commit (usa \"git add\" e/o \"git commit -a\")\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "nessuna modifica aggiunta al commit\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9596,68 +9693,68 @@ msgstr "" "non è stato aggiunto nulla al commit ma sono presenti file non tracciati " "(usa \"git add\" per tracciarli)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" "non è stato aggiunto nulla al commit ma sono presenti file non tracciati\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "non c'è nulla di cui eseguire il commit (crea/copia dei file e usa \"git add" "\" per tracciarli)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "non c'è nulla di cui eseguire il commit\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "non c'è nulla di cui eseguire il commit (usa -u per visualizzare i file non " "tracciati)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "non c'è nulla di cui eseguire il commit, l'albero di lavoro è pulito\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "Non ci sono ancora commit su" -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (nessun branch)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "differente" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "indietro " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "avanti " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "impossibile eseguire %s: ci sono delle modifiche non in staging." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "" "inoltre, l'indice contiene modifiche di cui non è stato eseguito il commit." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "" @@ -9736,7 +9833,7 @@ msgstr "test controllato" msgid "interactive picking" msgstr "scelta interattiva" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "seleziona gli hunk in modalità interattiva" @@ -9866,14 +9963,14 @@ msgstr "L'opzione --ignore-missing può essere usata solo con --dry-run" msgid "--chmod param '%s' must be either -x or +x" msgstr "Il parametro --chmod '%s' deve essere -x o +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "" "--pathspec-from-file non è compatibile con gli argomenti specificatore " "percorso" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul richiede --pathspec-from-file" @@ -10141,7 +10238,7 @@ msgstr "opzione storica -- non esegue nulla" msgid "allow fall back on 3way merging if needed" msgstr "consenti il ripiego sul merge a tre vie se necessario" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "non visualizzare messaggi" @@ -10198,7 +10295,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "formato" @@ -10504,113 +10601,117 @@ msgstr "" "argomento %s non valido per 'git bisect terms'.\n" "Le opzioni supportate sono: --term-good|--term-old e --term-bad|--term-new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' non è un termine valido" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "opzione non riconosciuta: '%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "sembra che '%s' non sia una revisione valida" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "HEAD non valida - ho bisogno di un'HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "" "checkout di '%s' non riuscito. Prova con 'git bisect start <branch valido>'." -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "non eseguirò la bisezione su un albero sottoposto a cg-seek" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "head non valida - riferimento simbolico strano" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "riferimento non valido: '%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "esegui 'git bisect next'" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "scrivi i termini in .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "pulisci lo stato bisezione" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "controlla se le revisioni attese sono presenti" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "reimposta lo stato della bisezione" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "scrivi lo stato della bisezione in BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "controlla e imposta i termini in uno stato bisezione" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "" "controlla se esistono termini per revisioni non funzionanti o funzionanti" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "stampa i termini della bisezione" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "inizia la sessione di bisezione" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "aggiorna BISECT_HEAD anziché eseguire il checkout del commit corrente" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "non registrare le operazioni eseguite per BISECT_WRITE" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms richiede due argomenti" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state non richiede argomenti" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset richiede o nessun argomento o un commit" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write richiede o quattro o cinque argomenti" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms richiede tre argomenti" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check richiede due o tre argomenti" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms richiede zero o un argomento" @@ -11245,20 +11346,20 @@ msgstr "git bundle list-heads <file> [<nome riferimento>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <file> [<nome riferimento>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "non visualizzare la barra di avanzamento" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "visualizza la barra di avanzamento" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "" "visualizza la barra di avanzamento durante la fase di scrittura oggetti" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "simile a --all-progress quando è visualizzata la barra di avanzamento" @@ -11299,11 +11400,11 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<formato>] | --batch-check[=<formato>])" +" [--follow-symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11337,7 +11438,7 @@ msgstr "esegui textconv sul contenuto dell'oggetto (per gli oggetti blob)" msgid "for blob objects, run filters on object's content" msgstr "esegui i filtri sul contenuto dell'oggetto (per gli oggetti blob)" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "blob" @@ -11401,8 +11502,8 @@ msgstr "leggi i nomi dei file dallo standard input" msgid "terminate input and output records by a NUL character" msgstr "termina i record di input e output con un carattere NUL" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "non visualizzare l'avanzamento dell'operazione" @@ -11494,7 +11595,7 @@ msgstr "scrivi il contenuto in file temporanei" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "stringa" @@ -11611,11 +11712,11 @@ msgstr "'%s' o '%s' non possono essere usati con %s" msgid "path '%s' is unmerged" msgstr "il percorso '%s' non è stato sottoposto a merge" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "prima devi risolvere l'indice corrente" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11624,50 +11725,50 @@ msgstr "" "impossibile continuare con modifiche in stage nei file seguenti:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Impossibile esaminare il registro dei riferimenti per '%s': %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD si trova ora a" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "impossibile aggiornare HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "Ripristina il branch '%s'\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Si è già su '%s'\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Si è passati al branch '%s' e lo si è reimpostato\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Si è passati a un nuovo branch '%s'\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "Si è passati al branch '%s'\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ...e altri %d.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11690,7 +11791,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11717,19 +11818,19 @@ msgstr[1] "" " git branch <nome del nuovo branch> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "errore interno durante la visita delle revisioni" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "La precedente posizione di HEAD era" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Sei su un branch che deve ancora essere creato" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11738,7 +11839,7 @@ msgstr "" "'%s' potrebbe essere sia un file locale, sia un branch da tracciare.\n" "Usa -- (e facoltativamente --no-guess) per rimuovere l'ambiguità " -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11759,51 +11860,51 @@ msgstr "" "rispetto a un particolare remoto, ad es. 'origin', potresti voler\n" "impostare checkout.defaultRemote=origin nel tuo file di configurazione." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' corrisponde a più (%d) branch che ne tracciano uno remoto" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "atteso solo un riferimento" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "atteso solo un riferimento, %d specificati." -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "riferimento non valido: %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "il riferimento non è un albero: %s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "atteso branch, ricevuto tag '%s'" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "atteso branch, ricevuto branch remoto '%s'" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "atteso branch, ricevuto '%s'" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "atteso branch, ricevuto commit '%s'" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11811,7 +11912,7 @@ msgstr "" "impossibile cambiare branch durante un merge\n" "Considera l'uso di \"git merge --quit\" o di \"git worktree add\"." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11819,7 +11920,7 @@ msgstr "" "impossibile cambiare branch nel bel mezzo di una sessione am\n" "Considera l'uso di \"git am --quit\" o di \"git worktree add\"." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11827,7 +11928,7 @@ msgstr "" "impossibile cambiare branch durante un rebase\n" "Considera l'uso di \"git rebase --quit\" o di \"git worktree add\"." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11835,7 +11936,7 @@ msgstr "" "impossibile cambiare branch durante un cherry-pick\n" "Considera l'uso di \"git cherry-pick --quit\" o di \"git worktree add\"." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11843,149 +11944,149 @@ msgstr "" "impossibile cambiare branch durante un revert\n" "Considera l'uso di \"git revert --quit\" o di \"git worktree add\"." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "stai cambiando branch durante una bisezione" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "i percorsi non possono essere usati passando da un branch a un altro" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' non può essere usato passando da un branch a un altro" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' non può essere usato con '%s'" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s' non accetta l'argomento <punto di partenza>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Impossibile cambiare branch per passare a '%s' che non è un commit" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "argomento branch o commit mancante" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "forza l'indicazione d'avanzamento dell'operazione" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "esegui un merge a tre vie con il nuovo branch" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "stile" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "stile conflitti (merge o diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "scollega l'HEAD al commit specificato" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "imposta le informazioni sull'upstream per il nuovo branch" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "esegui forzatamente il checkout (scarta le modifiche locali)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "nuovo branch" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "nuovo branch senza genitore" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "aggiorna i file ignorati (impostazione predefinita)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "" "non controllare se un altro albero di lavoro contiene il riferimento " "specificato" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "" "esegui il checkout della nostra versione per i file non sottoposti a merge" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "" "esegui il checkout della loro versione per i file non sottoposti a merge" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "non limitare gli specificatori percorso solo alle voci sparse" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "le opzioni -%c, -%c e --orphan sono mutuamente esclusive" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "le opzioni -p e --overlay sono mutualmente esclusive" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track richiede il nome di un branch" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "nome del branch mancante; prova con -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "impossibile risolvere %s" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "specificatore percorso non valido" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "" "'%s' non è un commit e non si può creare un branch '%s' che parta da esso" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach non accetta un percorso '%s' come argomento" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file non è compatibile con --detach" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file non è compatibile con --patch" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11993,69 +12094,70 @@ msgstr "" "git checkout: --ours/--theirs, --force e --merge sono incompatibili quando\n" "si esegue il checkout dell'indice." -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "devi specificare il percorso/i percorsi da ripristinare" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "branch" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "crea un nuovo branch ed eseguine il checkout" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "crea/reimposta un branch ed eseguine il checkout" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "crea il registro dei riferimenti per il nuovo branch" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "prevedi 'git checkout <branch inesistente>' (impostazione predefinita)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "usa modalità overlay (impostazione predefinita)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "crea un nuovo branch e passa a quest'ultimo" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "crea/reimposta un branch e passa a quest'ultimo" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "prevedi 'git switch <branch inesistente>'" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "scarta le modifiche locali" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "albero da cui eseguire il checkout" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "ripristina l'indice" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "ripristina l'albero di lavoro (impostazione predefinita)" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "ignora voci non sottoposte a merge" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "usa modalità overlay" @@ -12220,11 +12322,7 @@ msgstr "elimina anche i file ignorati" msgid "remove only ignored files" msgstr "elimina solo i file ignorati" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x e -X non possono essere usati insieme" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -12232,7 +12330,7 @@ msgstr "" "clean.requireForce è impostato a true e né -i, né -n, né -f sono stati " "specificati; mi rifiuto di eseguire la pulizia" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -12240,6 +12338,10 @@ msgstr "" "clean.requireForce è true per impostazione predefinita e né -i, né -n, né -f " "sono stati specificati; mi rifiuto di eseguire la pulizia" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x e -X non possono essere usati insieme" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<opzioni>] [--] <repository> [<directory>]" @@ -12248,7 +12350,7 @@ msgstr "git clone [<opzioni>] [--] <repository> [<directory>]" msgid "don't create a checkout" msgstr "non creare un checkout" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "crea un repository spoglio" @@ -12280,11 +12382,11 @@ msgstr "inizializza sottomoduli durante la clonazione" msgid "number of submodules cloned in parallel" msgstr "numero di sottomoduli clonati in parallelo" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "directory modelli" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "directory da cui saranno recuperati i modelli" @@ -12298,8 +12400,8 @@ msgstr "repository di riferimento" msgid "use --reference only while cloning" msgstr "usa --reference solo durante la clonazione" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "nome" @@ -12324,7 +12426,7 @@ msgstr "profondità " msgid "create a shallow clone of that depth" msgstr "crea un clone shallow con questa profondità " -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "tempo" @@ -12357,11 +12459,11 @@ msgstr "non clonare alcun tag e fai sì che i fetch successivi non li seguano" msgid "any cloned submodules will be shallow" msgstr "tutti i sottomoduli clonati saranno shallow" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "directory Git" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "separa la directory Git dall'albero di lavoro" @@ -12495,7 +12597,7 @@ msgstr "impossibile eseguire il repack per pulire l'area di lavoro" msgid "cannot unlink temporary alternates file" msgstr "impossibile eseguire l'unlink del file alternates temporaneo" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "Troppi argomenti." @@ -12512,49 +12614,49 @@ msgstr "le opzioni --bare e --origin %s non sono compatibili." msgid "--bare and --separate-git-dir are incompatible." msgstr "le opzioni --bare e --separate-git-dir non sono compatibili." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "il repository '%s' non esiste" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "la profondità %s non è un numero positivo" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "" "il percorso di destinazione '%s' esiste già e non è una directory vuota." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "l'albero di lavoro '%s' esiste già ." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "impossibile creare le prime directory di '%s'" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "impossibile creare la directory dell'albero di lavoro '%s'" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Clone nel repository spoglio '%s' in corso...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Clone in '%s' in corso...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" @@ -12562,36 +12664,36 @@ msgstr "" "il clone --recursive non è compatibile né con --reference né con --reference-" "if-able" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "L'opzione --depth è ignorata nei cloni locali; usa file://." -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "L'opzione --shallow-since è ignorata nei cloni locali; usa file://." -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "L'opzione --shallow-exclude è ignorata nei cloni locali; usa file://." -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "L'opzione --filter è ignorata nei cloni locali; usa file://." -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "il repository sorgente è shallow, ignoro l'opzione --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "l'opzione --local è ignorata" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Il branch remoto %s non è stato trovato nell'upstream %s" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "Sembra che tu abbia clonato un repository vuoto." @@ -12627,14 +12729,14 @@ msgstr "Spazi vuoti fra le colonne" msgid "--command must be the first argument" msgstr "--command deve essere il primo argomento" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <directory oggetti>] [--shallow] [--" "[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12644,80 +12746,89 @@ msgstr "" "split[=<strategia>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <opzioni split>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "impossibile trovare la directory oggetti corrispondente a %s" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "directory" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "La directory oggetti in cui memorizzare il grafo" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "se il grafo dei commit è diviso, verifica solo l'ultimo file" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "Impossibile aprire il grafo dei commit '%s'" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "argomento --split non riconosciuto, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "ID oggetto non esadecimale inatteso: %s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "oggetto non valido: %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "inizia la visita da tutti i riferimenti" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "" "esamina i pack-index elencati sullo standard input alla ricerca di commit" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "inizia la visita ai commit elencati sullo standard input" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "includi tutti i commit già presenti nel file commit-graph" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "abilita calcolo percorsi modificati" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "consenti la scrittura di un file grafo dei commit incrementale" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "numero massimo di commit in un grafo dei commit diviso non di base" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "rapporto massimo fra due livelli di un grafo dei commit diviso" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "fai scadere solo i file più vecchi di una determinata data e ora" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "usa al più un'opzione fra --reachable, --stdin-commits o --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "ID oggetto non esadecimale inatteso: %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "Raccolta dei commit dall'input in corso" #: builtin/commit-tree.c:18 msgid "" @@ -13124,7 +13235,7 @@ msgid "version" msgstr "versione" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "output leggibile da una macchina" @@ -13137,8 +13248,8 @@ msgid "terminate entries with NUL" msgstr "termina le voci con NUL" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "modo" @@ -13842,35 +13953,45 @@ msgstr "--dirty non è compatibile con le espressioni commit" msgid "--broken is incompatible with commit-ishes" msgstr "--broken non è compatibile con le espressioni commit" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s': non è un file regolare o un collegamento simbolico" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "opzione non valida: %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: non esiste una base per il merge" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "Non è un repository Git" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "specificato oggetto non valido '%s'." -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "più di due blob specificati: '%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "specificato oggetto non gestito '%s'." +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s: esistono più basi per il merge, utilizzo %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<opzioni>] [<commit> [<commit>]] [--] [<percorso>...]" @@ -14024,88 +14145,109 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [opzioni-elenco-rev]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "" "Errore: Impossibile esportare i tag nidificati a meno che non sia " "specificata l'opzione --mark-tags." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "il token --anonymize-map non può essere vuoto" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "visualizza l'avanzamento dopo <n> oggetti" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "seleziona la gestione dei tag firmati" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "seleziona la gestione dei tag che contrassegnano oggetti filtrati" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "" "seleziona la gestione dei messaggi di commit in una codifica alternativa" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "Esegui il dump dei contrassegni in questo file" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "Importa i contrassegni da questo file" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "Importa i contrassegni da questo file se esiste" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "Usa un tagger falso se i tag non ne hanno uno" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "Visualizza in output l'albero completo per ogni commit" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "Usa la funzionalità \"fatto\" per terminare il flusso" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "Ometti l'output dei dati dei blob" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "specificatore riferimento" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "Applica lo specificatore riferimento ai riferimenti esportati" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "rendi anonimo l'output" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "da:a" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "converte <da> ad <a> nell'output in forma anonima" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "" "Fai riferimento ai genitori non nel flusso fast-export tramite l'ID oggetto" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "Visualizza gli ID oggetto originari dei blob/commit" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "Etichetta i tag con ID contrassegno" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map senza --anonymize non ha senso" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "" "Impossibile fornire entrambe le opzioni --import-marks e --import-marks-if-" "exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "File di lock creato ma non segnalato: %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<opzioni>] [<repository> [<specificatore riferimento>...]]" @@ -14436,41 +14578,41 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Devi specificare il nome di un tag." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "Le profondità negative in --deepen non sono supportate" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "le opzioni --deepen e --depth sono mutualmente esclusive" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth e --unshallow non possono essere usati insieme." -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow su un repository completo non ha senso" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all non richiede un repository come argomento" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all non ha senso con degli specificatori riferimento" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "Remoto o gruppo remoti non esistente: %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "Recuperare un gruppo e specificare gli specificatori riferimento non ha senso" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14933,8 +15075,8 @@ msgstr "specificato numero non valido di thread (%d) per %s" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "non vi è supporto per i thread, ignoro %s" @@ -15168,11 +15310,11 @@ msgstr "l'opzione --untracked non è supportata con --recurse-submodules" msgid "invalid option combination, ignoring --threads" msgstr "combinazione di opzioni non valida, ignoro --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "non vi è supporto per i thread, ignoro --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "specificato numero non valido di thread (%d)" @@ -15375,7 +15517,7 @@ msgstr "errore di lettura in input" msgid "used more bytes than were available" msgstr "usati più byte di quelli disponibili" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "pack troppo largo per la definizione corrente di off_t" @@ -15446,8 +15588,8 @@ msgstr "inconsistenza grave di inflate" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "TROVATA COLLISIONE SHA1 CON %s !" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "impossibile leggere %s" @@ -15508,7 +15650,7 @@ msgstr "confusione oltre ogni follia in parse_pack_objects()" msgid "Resolving deltas" msgstr "Risoluzione dei delta" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "impossibile creare il thread: %s" @@ -15573,58 +15715,67 @@ msgstr "impossibile archiviare il file pack" msgid "cannot store index file" msgstr "impossibile archiviare index file" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "pack.indexversion=%<PRIu32> non valida" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Impossibile aprire il file pack '%s' esistente" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Impossibile aprire il file pack idx esistente per '%s'" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "non delta: %d oggetto" msgstr[1] "non delta: %d oggetti" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "lunghezza della catena = %d: %lu oggetto" msgstr[1] "lunghezza della catena = %d: %lu oggetti" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "impossibile tornare alla directory di lavoro corrente" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "%s errato" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "algoritmo hash '%s' sconosciuto" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin non può essere usato senza --stdin" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin richiede un repository Git" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format non può essere usato con --stdin" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify senza un nome del file pack specificato" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "errore fsck negli oggetti sottoposti a pack" @@ -15668,51 +15819,56 @@ msgstr "modelli non trovati in %s" msgid "not copying templates from '%s': %s" msgstr "non copio i modelli da '%s': %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "nome branch iniziale non valido: '%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "impossibile gestire il tipo di file %d" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "impossibile spostare %s in %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "tentativo di reinizializzare il repository con un hash differente" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "algoritmo hash '%s' sconosciuto" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s esiste già " -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init: opzione --initial-branch=%s ignorata" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "Reinizializzato repository Git condiviso esistente in %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Reinizializzato repository Git esistente in %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Inizializzato repository Git condiviso vuoto in %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Inizializzato repository Git vuoto in %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15720,33 +15876,37 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<directory-modello>] [--" "shared[=<permessi>]] [<directory>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "permessi" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "specifica che il repository Git deve essere condiviso con più utenti" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "esegui l'override del nome del branch iniziale" + +#: builtin/init-db.c:564 msgid "hash" msgstr "hash" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "specifica l'algoritmo hash da usare" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "impossibile creare la directory %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "impossibile modificare la directory corrente in %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15755,7 +15915,7 @@ msgstr "" "%s (o --work-tree=<directory>) non consentito senza specificare %s (o --git-" "dir=<directory>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "Impossibile accedere all'albero di lavoro '%s'" @@ -17533,7 +17693,7 @@ msgstr "il tentativo di rimuovere una nota inesistente non è un errore" msgid "read object names from the standard input" msgstr "leggi i nomi degli oggetti dallo standard input" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "non rimuovere, limitati a visualizzare" @@ -17568,106 +17728,122 @@ msgstr "" "git pack-objects [<opzioni>...] <nome base> [< <elenco riferimenti> | < " "<elenco oggetti>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "CRC oggetto sottoposto a pack %s errato" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "oggetto sottoposto a pack %s corrotto" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "rilevato delta ricorsivo per l'oggetto %s" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "%u oggetti ordinati, attesi %<PRIu32>" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" "disabilito la scrittura delle bitmap, i pack sono divisi a causa " "dell'impostazione pack.packSizeLimit" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Scrittura degli oggetti in corso" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "stat di %s non riuscito" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "scritti %<PRIu32> oggetti quando me ne attendevo %<PRIu32>" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "" "disabilito la scrittura delle bitmap perché alcuni oggetti non saranno " "sottoposti a pack" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "overflow dell'offset base del delta nel pack per %s" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "offset base del delta fuori dall'intervallo consentito per %s" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Conteggio degli oggetti in corso" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "impossibile analizzare l'intestazione oggetto di %s" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "impossibile leggere l'oggetto %s" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "" "oggetto %s: lunghezza oggetto inconsistente (%<PRIuMAX> contro %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "pack subottimo - memoria esaurita" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Compressione delta in corso, uso fino a %d thread" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "impossibile eseguire il pack degli oggetti raggiungibili dal tag %s" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Compressione oggetti in corso" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "inconsistenza con il numero dei delta" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" +"il valore di uploadpack.blobpackfileuri dev'essere nella forma '<hash oggetto" +"> <hash pack> <URI>' (ricevuto '%s')" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" +"oggetto già configurato in un altro uploadpack.blobpackfileuri (ricevuto '%s')" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17676,7 +17852,7 @@ msgstr "" "atteso ID oggetto arco, ricevuti dati errati:\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17685,234 +17861,243 @@ msgstr "" "atteso ID oggetto, ricevuti dati errati:\n" " %s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "valore non valido per --missing" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "impossibile aprire l'indice pack" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "impossibile esaminare l'oggetto sciolto %s" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "impossibile forzare l'oggetto sciolto" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "'%s' non è una revisione" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "revisione '%s' errata" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "impossibile aggiungere gli oggetti recenti" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "versione %s di index non supportata" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "versione '%s' di index errata" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<versione>[,<offset>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "scrivi il file indice pack usando la versione formato idx specificata" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "dimensione massima di ogni file pack in output" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "ignora gli oggetti presi in prestito dallo store oggetti alternativo" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "ignora gli oggetti sottoposti a pack" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "limita la finestra di pack al numero di oggetti specificato" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "" "limita la finestra di pack alla memoria specificata in aggiunta al limite " "sugli oggetti" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "lunghezza massima della catena di delta consentita nel pack risultante" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "riusa i delta esistenti" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "riusa gli oggetti esistenti" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "usa oggetti OFS_DELTA" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "" "usa più thread durante la ricerca delle migliori corrispondenze per i delta" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "non creare un output pack vuoto" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "leggi gli argomenti revisione dallo standard input" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "limita gli oggetti a quelli non ancora sottoposti a pack" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "includi gli oggetti raggiungibili da qualunque riferimento" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "includi gli oggetti referenziati da voci del log riferimenti" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "includi gli oggetti referenziati dall'indice" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "invia il pack in output sullo standard output" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "" "includi gli oggetti tag che fanno riferimento agli oggetti da sottoporre a " "pack" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "mantieni gli oggetti non raggiungibili" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "esegui il pack degli oggetti non raggiungibili sciolti" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "decomprimi gli oggetti non raggiungibili più recenti di <tempo>" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "usa l'algoritmo di raggiungibilità sparse" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "crea pack thin" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "crea pack adatti per fetch shallow" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "ignora i pack che hanno un file .keep che li accompagna" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "ignora questo pack" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "livello compressione pack" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "non nascondere i commit innestati" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "" "usa un indice bitmap se disponibile per velocizzare il conteggio degli " "oggetti" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "scrivi un indice bitmap insieme all'indice pack" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "scrivi un indice bitmap se possibile" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "azione da eseguire sugli oggetti mancanti" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "non eseguire il pack degli oggetti nei file pack promettenti" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "rispetta le isole durante la compressione delta" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "protocollo" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "" +"escludi tutti gli uploadpack.blobpackfileuri configurati con questo protocollo" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "la profondità della catena dei delta (%d) è troppo elevata, forzo %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "il valore pack.deltaCacheLimit è troppo elevato, forzo %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" "--max-pack-size non può essere usato per generare un pack da trasferire" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "il limite minimo delle dimensioni dei pack è 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin non può essere usato per generare un pack indicizzabile" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable e --unpack-unreachable non sono compatibili" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "impossibile usare --filter senza --stdout" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Enumerazione degli oggetti in corso" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -19244,7 +19429,7 @@ msgstr "Fast forward da %s a %s eseguito.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <directory Git>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -19277,7 +19462,7 @@ msgstr "" "il comportamento predefinito, imposta la variabile di\n" "configurazione 'receive.denyCurrentBranch' a 'refuse'." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -19300,11 +19485,11 @@ msgstr "" "Per non visualizzare più questo messaggio, puoi impostarla a\n" "'refuse'." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "non visualizzare messaggi" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Devi specificare una directory." @@ -20883,6 +21068,14 @@ msgstr "'%s' non è un riferimento valido." msgid "cannot find commit %s (%s)" msgstr "impossibile trovare il commit %s (%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "algoritmo hash" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "Algoritmo hash sconosciuto" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20941,50 +21134,55 @@ msgstr "" "questo albero di lavoro non è sparse (il file sparse-checkout potrebbe non " "esistere)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "creazione della directory per il file sparse-checkout non riuscita" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "" +"impossibile aggiornare il formato repository per abilitare worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "impostazione dell'opzione extensions.worktreeConfig non riuscita" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "inizializza il checkout sparse in modalità cone" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "apertura di '%s' non riuscita" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "impossibile normalizzare il percorso '%s'" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <pattern>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "impossibile rimuovere le virgolette dalla stringa in stile C '%s'" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "impossibile caricare i pattern sparse-checkout esistenti" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "leggi i pattern dallo standard input" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "errore durante l'aggiornamento della directory di lavoro" @@ -21698,12 +21896,40 @@ msgstr "Non visualizzare l'output dell'impostazione dell'URL del sottomodulo" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <percorso> <nuovo URL>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "imposta il branch tracciato predefinito a master" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "imposta il branch tracciato predefinito" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-d|--default) <percorso>" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <" +"percorso>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "è richiesto specificare --branch o --default" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "le opzioni --branch e --default sono mutualmente esclusive" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s non supporta --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' non è un sottocomando submodule--helper valido" @@ -22358,205 +22584,197 @@ msgstr "git worktree remove [<opzioni>] <albero di lavoro>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <percorso>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "eliminazione di '%s' non riuscita" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "Rimuovo worktrees/%s: non è una directory valida" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "Rimuovo worktrees/%s: il file gitdir non esiste" +msgid "not a valid directory" +msgstr "directory non valida" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "Rimuovo worktrees/%s: impossibile leggere il file gitdir (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "il file gitdir non esiste" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "" -"Rimuovo worktrees/%s: letti meno dati del previsto (attesi %<PRIuMAX>byte, " -"%<PRIuMAX> letti)" +msgid "unable to read gitdir file (%s)" +msgstr "impossibile leggere il file gitdir (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "Rimuovo worktrees/%s: file gitdir non valido" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "lettura troppo breve (attesi %<PRIuMAX> byte, letti %<PRIuMAX>)" -#: builtin/worktree.c:126 +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "file gitdir non valido" + +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "il file gitdir punta a un percorso non esistente" + +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "Rimuovo worktrees/%s: il file gitdir punta a un percorso non esistente" +msgid "Removing %s/%s: %s" +msgstr "Rimuovo %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "segnala gli alberi di lavoro eliminati" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "fai scadere gli alberi di lavoro più vecchi di <tempo>" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' esiste già " -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "impossibile aggiungere nuovamente l'albero di lavoro '%s'" +msgid "unusable worktree destination '%s'" +msgstr "destinazione albero di lavoro non utilizzabile: '%s'" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "'%s' è un albero di lavoro mancante ma bloccato;\n" -"usa 'add -f -f' per eseguire l'override, o 'unlock' e 'prune' o 'remove' per " -"rimuoverlo" +"usa '%s -f -f' per eseguire l'override, o 'unlock' e 'prune' o 'remove' per" +" rimuoverlo" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "'%s' è un albero di lavoro mancante ma già registrato;\n" -"usa 'add -f' per eseguire l'override, o 'prune' o 'remove' per rimuoverlo" +"usa '%s -f' per eseguire l'override, o 'prune' o 'remove' per rimuoverlo" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "impossibile creare la directory di '%s'" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Preparazione dell'albero di lavoro in corso (nuovo branch '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "" "Preparazione dell'albero di lavoro in corso (reimposto il branch '%s'; era a " "%s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Preparazione dell'albero di lavoro in corso (checkout di '%s')" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Preparazione dell'albero di lavoro in corso (HEAD scollegato %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" "esegui il checkout di <branch> anche se tale operazione è stata eseguita in " "un altro albero di lavoro" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "crea un nuovo branch" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "crea o reimposta un branch" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "popola il nuovo albero di lavoro" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "mantieni bloccato il nuovo albero di lavoro" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "imposta la modalità tracking (vedi git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "" "tenta di cercare una corrispondenza fra il nome del nuovo branch e un branch " "remoto da tracciare" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "le opzioni -b, -B e --detach sono mutualmente esclusive" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "" "l'opzione --[no-]track può essere usata solo se viene creato un nuovo branch" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "motivo di blocco" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' non è un albero di lavoro" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "Non è possibile bloccare o sbloccare l'albero di lavoro principale" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' è già bloccato per questo motivo: %s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' è già bloccato" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' non è bloccato" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "" "gli alberi di lavoro contenenti sottomoduli non possono essere spostati o " "rimossi" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "forza lo spostamento anche se l'albero di lavoro è sporco o bloccato" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' è un albero di lavoro principale" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "impossibile determinare il nome destinazione da '%s'" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "la destinazione '%s' esiste già " - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22566,7 +22784,7 @@ msgstr "" "usa 'move -f -f' per eseguirne l'override o sbloccalo prima di eseguire " "l'operazione" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22575,37 +22793,37 @@ msgstr "" "usa 'move -f -f' per eseguirne l'override o sbloccalo prima di eseguire " "l'operazione" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "validazione non riuscita, impossibile spostare l'albero di lavoro: %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "spostamento di '%s' in '%s' non riuscito" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "esecuzione di 'git status' su '%s' non riuscita" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "'%s' contiene file modificati o non tracciati, usa --force per eliminarlo" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "esecuzione di 'git status' su '%s' non riuscita, codice %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "forza la rimozione anche se l'albero di lavoro è sporco o bloccato" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22615,7 +22833,7 @@ msgstr "" "usa 'remove -f -f' per eseguirne l'override o sbloccalo prima di eseguire " "l'operazione" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22624,7 +22842,7 @@ msgstr "" "usa 'remove -f -f' per eseguirne l'override o sbloccalo prima di eseguire " "l'operazione" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "validazione non riuscita, impossibile rimuovere l'albero di lavoro: %s" @@ -22645,33 +22863,33 @@ msgstr "scrivi l'oggetto albero per una sottodirectory <prefisso>" msgid "only useful for debugging" msgstr "utile solo per il debug" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "versione di git:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() non riuscita: errore '%s' (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "informazioni sul compilatore: " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "informazioni su libc: " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "" "comando non eseguito da un repository Git - nessun hook da visualizzare\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <file>] [-s|--suffix <formato>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22708,69 +22926,79 @@ msgstr "" "Rivedi il resto della segnalazione d'errore qui sotto.\n" "Puoi eliminare le righe che non desideri condividere.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "" "specifica una destinazione per il file contenente la segnalazione d'errore" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "specifica un suffisso in formato strftime per il nome del file" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "impossibile creare le prime directory per '%s'" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "Informazioni di sistema" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Hook abilitati" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "impossibile creare un nuovo file in '%s'" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "impossibile scrivere su %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Nuovo report creato in '%s'.\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "Contrassegni Da mancanti per il sottomodulo '%s'" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "Contrassegni A mancanti per il sottomodulo '%s'" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "Atteso comando 'mark', ricevuto %s" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "Atteso comando 'to', ricevuto %s" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "" "Per l'opzione riscrittura sottomodulo ci si attendeva un formato nome:" "nomefile" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "funzionalità '%s' vietata nell'input senza --allow-unsafe-features" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "l'argomento di --packfile dev'essere un hash valido (ricevuto '%s')" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22950,32 +23178,32 @@ msgstr "Il controllo delegazione non è supportato con cURL < 7.22.0" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "Il pinning delle chiavi pubbliche non è supportato con cURL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REVOKE non è supportato con cURL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Le restrizioni protocollo non sono supportate con cURL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "Backend SSL '%s' non supportato. Backend SSL supportati:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" "Impossibile impostare il backend SSL a '%s': cURL è stato compilato senza " "backend SSL" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "Impossibile impostare il backend SSL a '%s': già impostato" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22986,119 +23214,142 @@ msgstr "" " richiesta: %s\n" " redirect: %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "virgolette non valide nel valore push-option: '%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs non valido: è un repository Git?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "" "risposta del server non valida; atteso servizio, ricevuto pacchetto flush" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "risposta del server non valida; ricevuto '%s'" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "repository '%s' non trovato" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "Autenticazione non riuscita per '%s'" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "impossibile accedere a '%s': %s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "redirezione a %s in corso" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "" "non dovrebbe esserci un pacchetto fine file se non si è accomodanti con " "questi ultimi" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "il server remoto ha inviato un separatore senza stato" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "" "impossibile ritornare a un punto precedente dei dati POST RPC - prova ad " "aumentare il valore di http.postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: carattere lunghezza riga non valido: %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: pacchetto fine risposta non atteso" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC non riuscita; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "impossibile gestire push così grandi" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "" "impossibile eseguire il deflate della richiesta; errore deflate zlib %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "impossibile eseguire il deflate della richiesta; errore fine zlib %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "sono stati ricevuti %d byte dell'intestazione sulla lunghezza" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "sono ancora attesi %d byte del corpo" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "il trasporto http stupido non supporta le funzionalità shallow" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "recupero non riuscito." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "" "impossibile recuperare i dati in base allo SHA1 con il trasporto HTTP " "intelligente" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "errore protocollo: atteso SHA/riferimento, ricevuto '%s'" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "il trasporto HTTP non supporta %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push non riuscito" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: uso: git remote-curl <remoto> [<URL>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl: errore durante la lettura del flusso dei comandi da Git" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl: tentato un fetch senza un repository locale" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl: ricevuto comando sconosciuto '%s' da Git" @@ -24156,26 +24407,26 @@ msgstr "Percorso del sottomodulo '$displaypath': '$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Ricorsione nel percorso del sottomodulo '$displaypath' non riuscita" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "L'opzione --cached non può essere usata con l'opzione --files" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "modalità $mod_dst inattesa" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Attenzione: $display_name non contiene il commit $sha1_src" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Attenzione: $display_name non contiene il commit $sha1_dst" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -24603,7 +24854,7 @@ msgid_plural "touched %d paths\n" msgstr[0] "eseguito touch su %d percorso\n" msgstr[1] "eseguito touch su %d percorsi\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24611,7 +24862,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà \n" "contrassegnato immediatamente per l'aggiunta all'area di staging." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24619,7 +24870,7 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà \n" "contrassegnato immediatamente per lo stash." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24627,8 +24878,8 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà \n" "contrassegnato immediatamente per la rimozione dall'area di staging." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24636,8 +24887,8 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà \n" "contrassegnato immediatamente per l'applicazione." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24645,12 +24896,12 @@ msgstr "" "Se la patch viene applicata senza problemi, l'hunk modificato sarà \n" "contrassegnato immediatamente per la rimozione." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "apertura del file di modifica hunk in scrittura non riuscita: %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24663,12 +24914,12 @@ msgstr "" "Per rimuovere '%s' righe, eliminale.\n" "Le righe che iniziano con %s saranno rimosse.\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "apertura del file di modifica hunk in lettura non riuscita: %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24685,7 +24936,7 @@ msgstr "" "d - non aggiungere né quest'hunk né quelli successivi nel file all'area di " "staging" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24699,7 +24950,7 @@ msgstr "" "a - esegui lo stash di quest'hunk e di tutti quelli successivi nel file\n" "d - non eseguire lo stash né di quest'hunk né di quelli successivi nel file" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24716,7 +24967,7 @@ msgstr "" "d - non rimuovere né quest'hunk né quelli successivi nel file dall'area di " "staging" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24730,7 +24981,7 @@ msgstr "" "a - applica quest'hunk e tutti quelli successivi nel file\n" "d - non applicare né quest'hunk né quelli successivi nel file" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24744,7 +24995,7 @@ msgstr "" "a - rimuovi quest'hunk e tutti quelli successivi nel file\n" "d - non rimuovere né quest'hunk né quelli successivi nel file" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24758,7 +25009,7 @@ msgstr "" "a - rimuovi quest'hunk e tutti quelli successivi nel file\n" "d - non rimuovere né quest'hunk né quelli successivi nel file" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24772,7 +25023,7 @@ msgstr "" "a - applica quest'hunk e tutti quelli successivi nel file\n" "d - non applicare né quest'hunk né quelli successivi nel file" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24786,7 +25037,7 @@ msgstr "" "a - applica quest'hunk e tutti quelli successivi nel file\n" "d - non applicare né quest'hunk né quelli successivi nel file" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24810,85 +25061,90 @@ msgstr "" "e - modifica manualmente l'hunk corrente\n" "? - stampa una guida\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "Gli hunk selezionati non si applicano senza problemi all'indice!\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "ignoro ciò che non è stato sottoposto a merge: %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "Applicare la modifica modo all'albero di lavoro [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "Applicare l'eliminazione all'albero di lavoro [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Applicare l'aggiunta all'albero di lavoro [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "Applicare quest'hunk all'albero di lavoro [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "Nessun altro hunk a cui andare\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Numero non valido: '%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Mi dispiace, è disponibile solo %d hunk.\n" msgstr[1] "Mi dispiace, sono disponibili solo %d hunk.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "Nessun altro hunk in cui ricercare\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Espressione regolare di ricerca %s malformata: %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "Nessun hunk corrisponde al pattern fornito\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "Nessun hunk precedente\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "Nessun hunk successivo\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Mi dispiace, non posso suddividere quest'hunk\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "Suddiviso in %d hunk.\n" msgstr[1] "Suddiviso in %d hunk.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Mi dispiace, non posso modificare quest'hunk\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24908,19 +25164,19 @@ msgstr "" "add untracked - aggiunge i contenuti dei file non tracciati all'insieme di\n" " modifiche nell'area di staging\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "-- mancante" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "modalità --patch sconosciuta: %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "argomento %s non valido, atteso --" @@ -25246,61 +25502,93 @@ msgstr "(mbox) Aggiungo cc: %s dalla riga '%s'\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) Aggiungo to: %s dalla riga '%s'\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non mbox) Aggiungo cc: %s dalla riga '%s'\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(corpo) Aggiungo cc: %s dalla riga '%s'\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) Impossibile eseguire '%s'" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) Aggiungo %s: %s da: '%s'\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) chiusura della pipe a '%s' non riuscita" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "impossibile inviare il messaggio con codifica a 7 bit" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "codifica di trasferimento non valida" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "impossibile aprire %s: %s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s: la patch contiene una riga più lunga di 998 caratteri" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "Salto %s con il suffisso di backup '%s'.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "Inviare %s? [y|N]: " #, c-format +#~ msgid "Finding commits for commit graph from %d ref" +#~ msgid_plural "Finding commits for commit graph from %d refs" +#~ msgstr[0] "" +#~ "Ricerca dei commit per il grafo dei commit da %d riferimento in corso" +#~ msgstr[1] "" +#~ "Ricerca dei commit per il grafo dei commit da %d riferimenti in corso" + +#, c-format +#~ msgid "invalid commit object id: %s" +#~ msgstr "ID oggetto commit non valido: %s" + +#, c-format +#~ msgid "Removing worktrees/%s: not a valid directory" +#~ msgstr "Rimuovo worktrees/%s: non è una directory valida" + +#, c-format +#~ msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +#~ msgstr "Rimuovo worktrees/%s: impossibile leggere il file gitdir (%s)" + +#, c-format +#~ msgid "Removing worktrees/%s: invalid gitdir file" +#~ msgstr "Rimuovo worktrees/%s: file gitdir non valido" + +#, c-format +#~ msgid "unable to re-add worktree '%s'" +#~ msgstr "impossibile aggiungere nuovamente l'albero di lavoro '%s'" + +#, c-format +#~ msgid "target '%s' already exists" +#~ msgstr "la destinazione '%s' esiste già " + +#, c-format #~ msgid "" #~ "Cannot update sparse checkout: the following entries are not up to date:\n" #~ "%s" @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git 2.27.0\n" +"Project-Id-Version: git 2.28.0\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-27 07:40+0100\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-11 17:50+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" @@ -111,21 +111,21 @@ msgstr[1] "lade till %d sökvägar\n" msgid "ignoring unmerged: %s" msgstr "ignorerar ej sammanslagen: %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Endast binära filer ändrade.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "Inga ändringar.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Uppdatera patch" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "Granska diff" @@ -193,11 +193,11 @@ msgstr "markera en numrerad post" msgid "(empty) select nothing" msgstr "(tomt) markera ingenting" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Kommandon ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Vad nu" @@ -214,7 +214,7 @@ msgstr "ej köad" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "sökväg" @@ -223,27 +223,32 @@ msgstr "sökväg" msgid "could not refresh index" msgstr "kunde inte uppdatera indexet" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Hej dÃ¥.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "Köa ändrat läge [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "Köa borttagning [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "Köa tillägg [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "Köa stycket [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -251,7 +256,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att köas " "omedelbart." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -265,22 +270,27 @@ msgstr "" "a - köa stycket och alla följande i filen\n" "d - köa inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "Stash:a ändrat läge [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "Stash:a borttagning [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "Stash:a tillägg [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "Stash:a stycket [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -288,7 +298,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att läggas till " "i \"stash\" omedelbart." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -302,22 +312,27 @@ msgstr "" "a - \"stash\":a stycket och alla följande i filen\n" "d - \"stash\":a inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "Ta bort ändrat läge frÃ¥n kön [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "Ta bort borttagning frÃ¥n kön [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "Ta bort tillägg frÃ¥n kön [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "Ta bort stycket frÃ¥n kön [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -325,7 +340,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att tas bort " "frÃ¥n kön omedelbart." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -339,22 +354,27 @@ msgstr "" "a - ta bort stycket och alla följande i filen frÃ¥n kön\n" "d - ta inte bort stycket eller nÃ¥got av de följande i filen frÃ¥n kön\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "Applicera ändrat läge pÃ¥ indexet [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "Applicera borttagning pÃ¥ indexet [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "Applicera tillägg pÃ¥ indexet [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "Applicera stycket pÃ¥ indexet [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -362,7 +382,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att markeras " "för applicering omedelbart." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -376,25 +396,31 @@ msgstr "" "a - applicera stycket och alla följande i filen\n" "d - applicera inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "Kasta ändrat läge frÃ¥n arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "Kasta borttagning frÃ¥n arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "Kasta tillägg frÃ¥n arbetskatalogen [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "Kasta stycket frÃ¥n arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -402,7 +428,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att markeras " "för kasta omedelbart." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -416,22 +442,27 @@ msgstr "" "a - förkasta stycket och alla följande i filen\n" "d - förkasta inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "Kasta ändrat läge frÃ¥n indexet och arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "Kasta borttagning frÃ¥n indexet och arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "Kasta tillägg frÃ¥n indexet och arbetskatalogen [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "Kasta stycket frÃ¥n indexet och arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -445,22 +476,27 @@ msgstr "" "a - förkasta stycket och alla följande i filen\n" "d - förkasta inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "Applicera ändrat läge pÃ¥ indexet och arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "Applicera borttagning pÃ¥ indexet och arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "Applicera tillägg pÃ¥ indexet och arbetskatalogen [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "Applicera stycket pÃ¥ indexet och arbetskatalogen [y,n,q,a,d%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -474,7 +510,7 @@ msgstr "" "a - applicera stycket och alla följande i filen\n" "d - applicera inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -488,34 +524,34 @@ msgstr "" "a - applicera stycket och alla följande i filen\n" "d - applicera inte stycket eller nÃ¥got av de följande i filen\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "kunde inte tolka styckehuvudet \"%.*s\"" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "kunde inte tolka färgat styckehuvud \"%.*s\"" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "kunde inte tolka diff" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "kunde inte tolka färgad diff" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "misslyckades att köra \"%s\"" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "omaka utdata frÃ¥n interactive.diffFilter" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -523,7 +559,7 @@ msgstr "" "Alla rader i indata mÃ¥ste ha en motsvarande rad i utdata frÃ¥n\n" "ditt filter." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -532,7 +568,7 @@ msgstr "" "förväntade sammanhangsrad %d i\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -545,11 +581,11 @@ msgstr "" "\tavslutas inte med:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "Manuellt styckeredigeringsläge -- se nederst för snabbguide.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -563,7 +599,7 @@ msgstr "" "Rader som börjar med %c kommer att tas bort.\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -573,11 +609,11 @@ msgstr "" "redigera den igen. Om alla rader i ett stycke tas bort avbryts\n" "redigeringen och stycket lämnas oförändrat.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "kunde inte tolka styckehuvud" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "\"git apply --cached\" misslyckades" @@ -593,26 +629,26 @@ msgstr "\"git apply --cached\" misslyckades" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "Ditt redigerade stycke kan inte appliceras. Redigera igen (\"nej\" kastar!) " "[y/n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "Markerade stycken kan inte appliceras pÃ¥ indexet!" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "Applicera dem pÃ¥ arbetskatalogen trots det? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Ingenting applicerades.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -634,69 +670,69 @@ msgstr "" "e - redigera aktuellt stycke manuellt\n" "? - visa hjälp\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "Inget föregÃ¥ende stycke" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "Inget följande stycke" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "Inga andra stycken att gÃ¥ till" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "gÃ¥ till vilket stycke (<ret> för att se fler)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "gÃ¥ till vilket stycke? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Ogiltigt siffervärde: \"%s\"" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Beklagar, det finns bara %d stycke." msgstr[1] "Beklagar, det finns bara %d stycken." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "Inga andra stycken att söka efter" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "sök efter reguljärt uttryck? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Felaktigt format pÃ¥ reguljärt sökuttryck %s: %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "Inga stycken motsvarar givet mönster" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Beklagar, kan inte dela stycket" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "Dela i %d stycken." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Beklagar, kan inte redigera stycket" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "\"git apply\" misslyckades" @@ -923,7 +959,7 @@ msgstr "git-diff-huvudet saknar filnamnsinformation (rad %d)" #: apply.c:1481 #, c-format msgid "recount: unexpected line: %.*s" -msgstr "recount: förväntade rad: %.*s" +msgstr "recount: oväntad rad: %.*s" #: apply.c:1550 #, c-format @@ -1394,7 +1430,7 @@ msgstr "se till att Ã¥tminstone <n> rader sammanhang är lika" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "Ã¥tgärd" @@ -1483,7 +1519,7 @@ msgstr "sökvägen är inte giltig UTF-8: %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "sökvägen för lÃ¥ng (%d tecken, SHA1: %s): %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "fel i deflate (%d)" @@ -1553,8 +1589,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "lägg till prefix till varje sökväg i arkivet" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1781,10 +1817,10 @@ msgstr "" "--reverse och --first-parent tillsammans kräver att du anger senaste " "incheckningen" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "misslyckades skapa revisionstraversering" @@ -1949,84 +1985,88 @@ msgstr "\"%s\" är redan utcheckad pÃ¥ \"%s\"" msgid "HEAD of working tree %s is not updated" msgstr "HEAD i arbetskatalogen %s har inte uppdaterats" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' ser inte ut som en v2-bundle-fil" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "okänd hashningsalgoritmlängd" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "okänt huvud: %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "kunde inte öppna \"%s\"" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Arkivet saknar dessa nödvändiga incheckningar:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "behöver ett arkiv för att verifiera ett paket (bundle)." -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "Paketet (bundlen) innehÃ¥ller denna referens:" msgstr[1] "Paketet (bundlen) innehÃ¥ller dessa %d referenser:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "Paketet (bundlen) beskriver en komplett historik." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "Paketet (bundlen) kräver denna referens:" msgstr[1] "Paketet (bundlen) kräver dessa %d referenser:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "kan inte duplicera pakethandtag" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "Kunde inte starta pack-objects" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "pack-objects misslyckades" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list dog" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "referensen \"%s\" exkluderas av argumenten till rev-list" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "okänt argument: %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "Vägrar skapa ett tomt paket (bundle)." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "kan inte skapa \"%s\"" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "index-pack dog" @@ -2035,258 +2075,250 @@ msgstr "index-pack dog" msgid "invalid color value: %.*s" msgstr "felaktigt färgvärde: %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "incheckningsgraffilen %s är för liten" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "incheckningsgrafens signatur %X stämmer inte med signaturen %X" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "incheckningsgrafens version %X stämmer inte med versionen %X" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "incheckningsgrafens hashversion %X stämmer inte med versionen %X" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "incheckningsgrafen saknar post i styckeuppslagningstabell; filen kan vara " "ofullständig" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "felaktigt offset för stycke %08x%08x i incheckningsgraffilen" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "incheckningsgrafens stycke-id %08x förekommer flera gÃ¥nger" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "incheckningsgrafen har inga bas-graf-stycken" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "incheckningsgrafens kedja stämmer inte" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "ogiltig incheckingsgrafkedja: rad \"%s\" är inte ett hash-värde" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "kan inte hitta alla incheckingsgraffiler" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "ogiltig incheckningsposition. incheckningsgrafen är troligtvis trasig" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "kunde inte hitta incheckningen %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "kunde inte tolka incheckningen %s" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "Skriver Bloom-filterindex för ändrade sökvägar" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "Skriver Bloom-filterdata för ändrade sökvägar" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "kunde inte hämta typ för objektet %s" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Läser in kända incheckningar i incheckningsgraf" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "Expanderar nÃ¥bara incheckningar i incheckningsgraf" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Rensar incheckningsmärken i incheckningsgraf" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Beräknar generationsvärden för incheckningsgraf" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "Beräknar Bloom-filter för sökvägar ändrade av incheckningen" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "Samlar refererade incheckningar" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Söker incheckningar för incheckingsgraf i %d paket" msgstr[1] "Söker incheckningar för incheckingsgraf i %d paket" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "fel vid tillägg av paketet %s" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "fel vid öppning av indexet för %s" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "Söker incheckningar för incheckingsgraf frÃ¥n %d referens" -msgstr[1] "Söker incheckningar för incheckingsgraf frÃ¥n %d referenser" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "ogiltigt inchecknings-objekt-id %s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "Söker incheckningar för incheckingsgraf i packade objekt" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Räknar olika incheckningar i incheckningsgraf" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Söker ytterligare kanter i incheckingsgraf" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "kunde inte skriva korrekt antal bas-graf-id:n" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "kunde inte skapa inledande kataloger för %s" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "kan inte skapa temporärt graflager" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "kan inte justera delade behörigheter för \"%s\"" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Skriver ut incheckningsgraf i %d pass" msgstr[1] "Skriver ut incheckningsgraf i %d pass" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "Kunde inte öppna incheckningsgrafkedjefilen" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "kunde inte byta namn pÃ¥ bas-incheckingsgraffilen" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "kunde inte byta namn pÃ¥ temporär incheckningsgraffil" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "Söker sammanslagna incheckningar" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "oväntat duplicerat inchecknings-id %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "SlÃ¥r ihop incheckningsgraf" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "formatet pÃ¥ incheckningsgrafen kan inte visa %d incheckningar" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "för mÃ¥nga incheckningar för att skriva graf" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "filen med incheckningsgraf har felaktig checksumma och är troligtvis trasig" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "incheckningsgrafen har felaktig OID-ordning: %s sÃ¥ %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "" "incheckningsgrafen har felaktig utbredningsvärde: fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "kunde inte tolka incheckning %s frÃ¥n incheckningsgraf" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Bekräftar incheckningar i incheckningsgrafen" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "misslyckades tolka incheckning %s frÃ¥n objektdatabasen för incheckningsgraf" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "rot-trädets OID för incheckningen %s i incheckningsgrafen är %s != %s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "incheckningsgrafens föräldralista för incheckningen %s är för lÃ¥ng" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "incheckningsgrafens förälder för %s är %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "" "incheckningsgrafens föräldralista för incheckningen %s avslutas för tidigt" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2294,7 +2326,7 @@ msgstr "" "incheckningsgrafen har generationsnummer noll för incheckningen %s, men icke-" "noll pÃ¥ annan plats" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2302,12 +2334,12 @@ msgstr "" "incheckningsgrafen har generationsnummer skilt frÃ¥n noll för incheckningen " "%s, men noll pÃ¥ annan plats" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "incheckningsgrafens generation för incheckningen %s är %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2345,29 +2377,29 @@ msgstr "" "SlÃ¥ av detta meddelande genom att skriva\n" "\"git config advice.graftFileDeprecated false\"" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" "Incheckningen %s har en obetrodd GPG-signatur som pÃ¥stÃ¥s vara gjord av %s." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "" "Incheckningen %s har en felaktig GPG-signatur som pÃ¥stÃ¥s vara gjord av %s." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Incheckning %s har inte nÃ¥gon GPG-signatur." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "Incheckningen %s har en korrekt GPG-signatur av %s\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2562,7 +2594,7 @@ msgstr "felformat värde för %s: %s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "mÃ¥ste vara en av nothing, matching, simple, upstream eller current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "felaktig paketkomprimeringsgrad %d" @@ -2711,72 +2743,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "Servern stöder inte \"%s\"" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "servern stöder inte funktionen \"%s\"" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "förväntade \"flush\" efter förmÃ¥gor" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "ignorerar förmÃ¥gor efter första raden \"%s\"" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "protokollfel: förväntade inte capabilities^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "protokollfel: förväntade \"shallow sha-1\" fick \"%s\"" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "arkivet pÃ¥ andra sidan kan inte vara grunt" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "ogiltigt paket" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "protokollfel: förväntade inte \"%s\"" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "okänt objektformat \"%s\" angavs av servern" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "ogiltigt svar pÃ¥ ls-refs: %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "förväntade \"flush\" efter ref-listan" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "förväntade svarsavslutningspaket efter ref-listan" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "protokollet \"%s\" stöds inte" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "kunde inte sätta SO_KEEPALIVE pÃ¥ uttaget" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "SlÃ¥r upp %s..." -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "kan inte slÃ¥ upp %s (port %s) (%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2785,7 +2826,7 @@ msgstr "" "klart.\n" "Ansluter till %s (port %s)..." -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2795,75 +2836,75 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "klart." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "kunde inte slÃ¥ upp %s (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "okänd port %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "konstigt värdnamn \"%s\" blockerat" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "konstig port \"%s\" blockerad" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "kan inte starta mellanserver (proxy) %s" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "ingen sökväg angavs; se \"git help pull\" för giltig URL-syntax" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "ssh-varianten \"simple\" stöder inte -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "ssh-varianten \"simple\" stöder inte -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "ssh-varianten \"simple\" stöder inte val av port" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "konstigt sökvägsnamn \"%s\" blockerat" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "kunde inte grena (fork)" # Vague original, not networking-related, but rather related to the actual # objects in the database. -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Kontrollerar konnektivitet" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "Kunde inte köra \"git rev-list\"" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "kunde inte skriva till rev-list" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "kunde inte stänga rev-list:s standard in" @@ -3127,17 +3168,17 @@ msgstr "" "Inte ett git-arkiv. Använd --no-index för att jämföra tvÃ¥ sökvägar utanför " "en arbetskatalog." -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " Misslyckades tolka dirstat-avskärningsprocentandel \"%s\"\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Okänd dirstat-parameter \"%s\"\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3145,7 +3186,7 @@ msgstr "" "färginställningen för flyttade block mÃ¥ste vara en av \"no\", \"default\", " "\"blocks\", \"zebra\", \"dimmed_zebra\", \"plain\"" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3155,7 +3196,7 @@ msgstr "" "\", \"ignore-space-at-eol\", \"ignore-all-space\", \"allow-indentation-change" "\"" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3163,12 +3204,12 @@ msgstr "" "color-moved-ws: allow-indentation-change kan inte kombineras med andra " "blankstegslägen" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Okänt värde för konfigurationsvariabeln \"diff.submodule\": \"%s\"" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3177,35 +3218,35 @@ msgstr "" "Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "extern diff dog, stannar vid %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-only, --name-status, -check och -s är ömsesidigt uteslutande" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-G, -S och --find-object är ömsesidigt uteslutande" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow kräver exakt en sökvägsangivelse" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "ogiltigt värde för --stat: %s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s förväntar ett numeriskt värde" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3214,42 +3255,42 @@ msgstr "" "Misslyckades tolka argument till flaggan --dirstat/-X;\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "okänd ändringsklass \"%c\" i --diff-filter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "okänt värde efter ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "kunde inte slÃ¥ upp \"%s\"" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s förväntar formen <n>/<m>" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s förväntar ett tecken, fick \"%s\"" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "felaktigt argument till --color-moved: %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "ogiltigt läge %s\" i --color-moved-ws" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3257,149 +3298,149 @@ msgstr "" "flaggan diff-algorithm godtar\"myers\", \"minimal\", \"patience\" och " "\"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "ogiltigt argument för %s" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "misslyckades tolka argument till flaggan --submodule: \"%s\"" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "felaktigt argument --word-diff: %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Formatflaggor för diff-utdata" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "skapar patch" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "undertryck diff-utdata" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "skapa diffar med <n> rader sammanhang" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "generera diff i rÃ¥format" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "synonym till \"-p --raw\"" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "synonym till \"-p --stat\"" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "maskinläsbar --stat" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "skriv bara ut den sista raden för --stat" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<param1,param2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" "skriv ut distributionen av relativa mängder ändringar för varje underkatalog" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "synonym för --dirstat=cumulative" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "synonym för --dirstat=filer,param1,param2..." -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "varna om ändringar introducerar konfliktmarkörer eller blankstegsfel" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "kortfattad summering sÃ¥som skapade, namnbyten och ändrade lägen" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "visa endast namnen pÃ¥ ändrade filer" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "visa endast namn och status för ändrade filer" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<bredd>[,<namn-bredd>[,<antal>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "skapa diffstat" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<bredd>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "generera en diffstat med given bredd" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "generera en diffstat med given namnbredd" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "generera en diffstat med given grafbredd" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<antal>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "generera diffstat med begränsade rader" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "skapa kompakt översikt i diffstat" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "skapa en binärdiff som kan appliceras" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "" "visa fullständiga objektnamn i \"index\"-rader för läget bÃ¥de före och efter" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "visa färgad diff" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<typ>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3407,7 +3448,7 @@ msgstr "" "ljusmarkera blankstegsfel i \"context\" (sammanhang), \"old\" (gamla) eller " "\"new\" (nya) rader i diffen" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3415,87 +3456,87 @@ msgstr "" "skriv inte om sökvägsnamn och använd NUL-tecken som fältseparerare i --raw " "eller --numstat" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<prefix>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "visa givet källprefix istället för \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "visa givet mÃ¥lprefix istället för \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "lägg till ytterligare prefix pÃ¥ alla rader i utdata" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "visa inte käll- eller mÃ¥lprefix" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "visa sammnhang mellan diff-stycken upp till angivet antal rader" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<tecken>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "ange tecken för att ange ny rad istället för \"+\"" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "ange tecken för att ange gammal rad istället för \"-\"" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "ange tecken för att ange sammanhang istället för \" \"" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Diff-namnbytesflaggor" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "dela upp kompletta omskrivningar till ta bort och skapa-par" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "detektera namnändringar" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "ta bort för-version för borttagningar" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "detektera kopior" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "använd oförändrade som källa för att hitta kopior" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "inaktivera detektering av namnbyten" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "använd tomma blob:ar som namnändringskälla" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "fortsätt lista historiken för en fil bortom namnändringar" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3503,159 +3544,159 @@ msgstr "" "förhindra namnbyte/kopie-detektering om antalet namnbyten/kopior överskriver " "given gräns" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Alternativ för diff-algoritm" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "skapa minsta möjliga diff" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "ignorera blanktecken vid radjämförelse" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "ignorera ändringar i antal blanktecken vid radjämförelse" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "ignorera blanktecken vid radslut" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "ignorera CR-tecken vid radslut" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "ignorera ändringar i rader som är helt blanka" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "heuristik för att flytta diff-gränser för lättare läsning" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "skapa diffar med algoritmen \"patience diff\"" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "skapa diffar med algoritmen \"histogram diff\"" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<algoritm>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "välj en diff-algoritm" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<text>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "skapa diffar med algoritmen \"anchored diff\"" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<läge>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "visa orddiff, där <läge> avgränsar ändrade ord" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<reguttr>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "använd <reguttr> för att bestämma vad som är ett ord" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "motsvarar --word-diff=color --word-diff-regex=<reguttr>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "flyttade kodrader färgas pÃ¥ annat sätt" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "hur blanktecken ignoreras i --color-moved" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "Andra diff-flaggor" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "vid start frÃ¥n underkatalog, uteslut ändringar utanför och visa relativa " "sökvägar" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "hantera alla filer som text" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "växla tvÃ¥ indatafiler, vänd diffen" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "avsluta med 1 vid ändringar, annars 0" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "slÃ¥ av alla utdata frÃ¥n programmet" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "tillÃ¥t köra en extern diff-hjälpare" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "kör externt textkonverteringsfiler när binärfiler jämförs" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<när>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "ignorera ändringar i undermoduler när diffen skapas" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<format>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "ange hur ändringar i undermoduler visas" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "dölj \"git add -N\"-poster frÃ¥n indexet" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "tolka \"git add -N\"-poster som äkta i indexet" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<sträng>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" msgstr "se efter ändringar som ändrar antalet förekomster av angiven sträng" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -3663,54 +3704,54 @@ msgstr "" "se efter ändringar som ändrar antalet förekomster av angivet reguljärt " "uttryck" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "visa alla ändringar i ändringsuppsättningen med -S eller -G" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "tolka <sträng> i -S som utökade POSIX-reguljära uttryck" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "styr ordningen i vilken filer visas i utdata" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<objekt-id>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" msgstr "se efter ändringar som ändrar antalet förekomster av angivet objekt" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "välj filter efter diff-typ" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<fil>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "Skriv utdata till en specifik fil" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "onöjaktig namnbytesdetektering utfördes inte pÃ¥ grund av för mÃ¥nga filer." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "hittade bara kopior frÃ¥n ändrade sökvägar pÃ¥ grund av för mÃ¥nga filer." -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3726,61 +3767,61 @@ msgstr "kunde inte läsa orderfilen \"%s\"" msgid "Performing inexact rename detection" msgstr "Utför onöjaktig namnbytesdetektering" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "sökvägsangivelsen \"%s\" motsvarade inte nÃ¥gra av git kända filer" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "okänt mönster: %s" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "okänt negativt mönster: %s" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "" "din \"sparse-checkout\"-fil kan ha problem: mönstret \"%s\" förekommer flera " "gÃ¥nger" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "inaktiverar konmönstermatchning" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "kan inte använda %s som exkluderingsfil" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "kunde inte öppna katalogen \"%s\"" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "misslyckades hämta kärnans namn och information" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "ospÃ¥rad cache är inaktiverad pÃ¥ systemet eller platsen" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "indexfilen trasig i arkivet %s" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "kunde inte skapa kataloger för %s" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "kunde inte migrera git-katalog frÃ¥n \"%s\" till \"%s\"" @@ -3790,11 +3831,11 @@ msgstr "kunde inte migrera git-katalog frÃ¥n \"%s\" till \"%s\"" msgid "hint: Waiting for your editor to close the file...%c" msgstr "tips: Väntar pÃ¥ att textredigeringsprogrammet ska stänga filen...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "Filtrerar innehÃ¥ll" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "kunde inte ta status pÃ¥ filen \"%s\"" @@ -3814,228 +3855,246 @@ msgstr "kunde inte ställa in GIT_DIR till \"%s\"" msgid "too many args to run %s" msgstr "för mÃ¥nga flaggor för att köra %s" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: förväntade grund lista" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack: förväntade ett flush-paket efter grund lista" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack: förväntade ACK/NAK, fick flush-paket" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: förväntade ACK/NAK, fick \"%s\"" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "kunde inte skriva till fjärren" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc kräver \"multi_ack_detailed\"" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "ogiltig \"shallow\"-rad: %s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "ogiltig \"unshallow\"-rad: %s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "objektet hittades inte: %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "fel i objekt: %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "ingen \"shallow\" hittades: %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "förväntade shallow/unshallow, fick %s" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "fick %s %d %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "ogiltig incheckning %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "ger upp" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "klart" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "fick %s (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "Markerar %s som komplett" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "har redan %s (%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-patch: kunde inte grena av sidbandsmultiplexare" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "protokollfel: felaktigt packhuvud" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-patch: kunde inte grena av %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s misslyckades" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "fel i sidbands-avmultiplexare" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "Serverversionen är %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "Servern stöder %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "Servern stöder inte klienter med grunda arkiv" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "Servern stöder inte --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "Servern stöder inte --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "Servern stöder inte --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "Servern stöder inte det här arkivets objektformat" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "inga gemensamma incheckningar" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-patch: hämtning misslyckades." #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "omaka algoritmer: klient %s; server %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "servern stöder inte algoritmen \"%s\"" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "Servern stöder inte grunda förfrÃ¥gningar" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "Servern stöder filter" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "kunde inte skriva anrop till fjärren" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "fel vid läsning av styckehuvudet \"%s\"" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "förväntade \"%s\", tog emot \"%s\"" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" -msgstr "förväntade bekräftelserad: \"%s\"" +msgstr "oväntad bekräftelserad: \"%s\"" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "fel vid hantering av bekräftelser: %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "väntade att paketfil skulle sändas efter \"ready\"" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "" "väntade inte att nÃ¥gra ytterligare sektioner skulle sändas efter \"ready\"" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "fel vid hantering av grund (\"shallow\") info: %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "förväntade wanted-ref, fick %s" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "oväntad wanted-ref: \"%s\"" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "fel vid hantering av önskade referenser: %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: förväntade svarsavslutningspaket" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "inget motsvarande fjärrhuvud" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "fjärren sände inte alla nödvändiga objekt" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "ingen sÃ¥dan fjärreferens: %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "Servern tillÃ¥ter inte förfrÃ¥gan om ej tillkännagivet objekt %s" @@ -4071,7 +4130,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "\"%s\" kunde inte läsa %s" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4216,16 +4275,16 @@ msgstr[1] "" "\n" "Mest lika kommandon är" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<flaggor>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4324,6 +4383,10 @@ msgstr "förväntade nÃ¥gonting efter combine:" msgid "multiple filter-specs cannot be combined" msgstr "flera filterspecifikationer kan inte kombineras" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "kunde inte uppgradera arkivformat till att stöda delvis klon" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4690,7 +4753,7 @@ msgstr "tillägg/tillägg" msgid "Skipped %s (merged same as existing)" msgstr "Hoppade över %s (sammanslagen samma som befintlig)" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "undermodul" @@ -4817,7 +4880,7 @@ msgid "failed to read the cache" msgstr "misslyckades läsa cachen" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "kunde inte skriva ny indexfil" @@ -5064,21 +5127,21 @@ msgstr "kunde inte tolka objektet: %s" msgid "hash mismatch %s" msgstr "hashvärde stämmer inte överens %s" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "kan inte hämta storlek pÃ¥ %s" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "offset före slutet av packfilen (trasig .idx?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "offset före slutet av packindex för %s (trasigt index?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "offset borton slutet av packindex för %s (trunkerat index?)" @@ -5283,44 +5346,48 @@ msgid "unable to write delim packet" msgstr "kan inte skriva delim-paket" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "kan inte skriva tillstÃ¥ndslöst avdelarpaket" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "fel vid skrivning av \"flush\"-paket" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "protokollfel: omöjligt lÃ¥ng rad" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "paketskrivning med format misslyckades" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "paketskrivning misslyckades - data överskrider maximal paketstorlek" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "paketskrivning misslyckades" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "läsfel" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "fjärren lade pÃ¥ oväntat" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "protokollfel: felaktig radlängdstecken: %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "protokollfel: felaktig radlängd: %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "fjärrfel: %s" @@ -5499,7 +5566,7 @@ msgstr "osorterade köposter för \"%s\"" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5556,7 +5623,7 @@ msgstr "kunde inte uppdatera delat index \"%s\"" msgid "broken index, expect %s in %s, got %s" msgstr "trasigt index, förväntade %s i %s, fick %s" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "kunde inte stänga \"%s\"" @@ -5743,7 +5810,7 @@ msgstr "" msgid "could not read '%s'." msgstr "kunde inte läsa \"%s\"." -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "försvunnen" @@ -5968,7 +6035,7 @@ msgstr "felformat objekt vid \"%s\"" msgid "ignoring ref with broken name %s" msgstr "ignorerar referens med trasigt namn %s" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "ignorerar trasig referens %s" @@ -5998,94 +6065,108 @@ msgstr "felformat objektnamn %s" msgid "option `%s' must point to a commit" msgstr "flaggan \"%s\" mÃ¥ste peka pÃ¥ en incheckning" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "\"%s\" pekar inte pÃ¥ ett giltigt objekt!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "kunde inte hämta \"%s\"" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "felaktigt namn pÃ¥ gren: %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "ignorerar dinglande symbolisk referens %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "kunde inte öppna \"%s\" för skrivning: %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "Kunde inte läsa referensen \"%s\"" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "referensen \"%s\" finns redan" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "oväntat objekt-id vid skrivning \"%s\"" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "kunde inte skriva till \"%s\"" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "kunde inte öppna \"%s\" för skrivning" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "oväntat objekt-id vid borttagning \"%s\"" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "loggen för referensen %s har lucka efter %s" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "loggen för referensen %s slutade oväntat pÃ¥ %s" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "loggen för %s är tom" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "vägrar uppdatera referens med trasigt namn \"%s\"" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "update_ref misslyckades för referensen \"%s\": %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "flera uppdateringar för referensen \"%s\" tillÃ¥ts inte" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "referensuppdateringar förbjudna i karantänmiljö" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "referensuppdateringar avbrutna av krok" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "\"%s\" finns; kan inte skapa \"%s\"" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "kan inte hantera \"%s\" och \"%s\" samtidigt" @@ -6370,7 +6451,7 @@ msgstr[1] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (använd \"git pull\" för att slÃ¥ ihop fjärrgrenen med din egen)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "kan inte tolka förväntat objektnamn \"%s\"" @@ -6497,20 +6578,20 @@ msgstr "kunde inte bestämma HEAD-revision" msgid "failed to find tree of %s" msgstr "kunde inte hitta trädet för %s." -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "din nuvarande gren verkar vara trasig" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "din nuvarande gren \"%s\" innehÃ¥ller ännu inte nÃ¥gra incheckningar" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent är inkompatibelt med --bisect" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L stöder ännu inte andra diff-format än -p och -s" @@ -6550,11 +6631,15 @@ msgstr "fjärruppackning misslyckades: %s" msgid "failed to sign the push certificate" msgstr "misslyckades underteckna push-certifikatet" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "mottagarsidan stöder inte arkivets hashningsalgoritm" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "mottagarsidan stöder inte push med --signed" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6562,11 +6647,11 @@ msgstr "" "sänder inte push-certifikat eftersom mottagarsidan inte stlder push med --" "signed" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "mottagarsidan stöder inte push med --atomic" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "mottagarsidan stöder inte push-flaggor" @@ -6687,7 +6772,7 @@ msgstr "ingen nyckel i \"%.*s\"" msgid "unable to dequote value of '%s'" msgstr "kan inte ta bort citering av värdet \"%s\"" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7525,84 +7610,84 @@ msgstr "kan inte skapa arbetskatalog med felaktig konfiguration" msgid "this operation must be run in a work tree" msgstr "funktionen mÃ¥ste köras i en arbetskatalog" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Förväntade git-arkivversion <= %d, hittade %d" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "okända arkivutökningar hittades:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "fel vid öppning av \"%s\"" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "för stor för att vara en .git-fil: \"%s\"" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "fel vid läsning av %s" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "ogiltigt gitfilformat: %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "ingen sökväg i gitfil: %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "inte ett git-arkiv: %s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "\"$%s\" för stor" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "inte ett git-arkiv: \"%s\"" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "kan inte byta katalog (chdir) till \"%s\"" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "kan inte gÃ¥ tillbaka till arbetskatalogen (cwd)" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "misslyckades ta status pÃ¥ \"%*ss%s%s\"" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Kan inte läsa aktuell arbetskatalog" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "kan inte byta till \"%s\"" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "inte ett git-arkiv (eller nÃ¥gon av föräldrakatalogerna): %s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7612,7 +7697,7 @@ msgstr "" "monteringspunkten %s)\n" "Stoppar vid filsystemsgräns (GIT_DISCOVERY_ACROSS_FILESYSTEM är inte satt)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7621,15 +7706,15 @@ msgstr "" "problem med filläges-värdet i core.sharedRepository (0%.3o).\n" "Ägaren av filerna mÃ¥ste alltid ha läs- och skrivbehörighet." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "misslyckades öppna /dev/null eller \"dup\"" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "\"fork\" misslyckades" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "\"setsid\" misslyckades" @@ -7810,7 +7895,7 @@ msgstr "\"deflateend\" pÃ¥ objektet %s misslyckades (%d)" msgid "confused by unstable object source data for %s" msgstr "förvirrad av instabil objektkälldata för %s" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "\"utime()\" misslyckades pÃ¥ %s" @@ -7986,43 +8071,43 @@ msgid "invalid object name '%.*s'." msgstr "felaktigt objektnamn \"%.*s\"." #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u,%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u,%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u,%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u,%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u,%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u,%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8030,14 +8115,14 @@ msgstr[0] "%u byte" msgstr[1] "%u bytes" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u byte/s" msgstr[1] "%u bytes/s" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "kunde inte redigera \"%s\"" @@ -8284,7 +8369,7 @@ msgstr "kunde inte läsa indatafilen \"%s\"" msgid "could not read from stdin" msgstr "kunde inte läsa frÃ¥n standard in" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "kunde inte ta status pÃ¥ %s" @@ -8308,20 +8393,20 @@ msgstr "kunde inte öppna temporär fil" msgid "could not rename temporary file to %s" msgstr "kunde inte byta namn pÃ¥ temporär fil till %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "komplett skrivning till fjärrhjälpare misslyckades" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "kan inte hitta fjärrhjälpare för \"%s\"" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "kunde inte duplicera utdata-filhandtag" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8330,159 +8415,164 @@ msgstr "" "okänd krävd förmÃ¥ga (capability) %s; fjärrhjälparen behöver antagligen en " "nyare version av Git" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "" "fjärrhjälparen behöver implementera förmÃ¥ga för referensspecifikationer " "(refspec)" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s sade oväntat: \"%s\"" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s lÃ¥ste ocksÃ¥ %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "kunde inte köra fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "fel när fast-import kördes" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "kunde inte läsa referensen %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "okänt svar pÃ¥ ansluntning: %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "protkollet stöder inte att sätta sökväg till fjärrtjänst" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "felaktig sökväg till fjärrtjänst" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "funktionen stöds inte av protokollet" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "kan inte ansluta till undertjänsten %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "förväntade ok/error, hjälpprogrammet svarade \"%s\"" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "hjälparen returnerade oväntad status %s" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "hjälparen %s stöder inte dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "hjälparen %s stöder inte --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "hjälparen %s stöder inte --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "hjälparen %s stöder inte --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "hjälparen %s stöder inte \"push-option\"" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "fjärrhjälparen stöder inte push; referensspecifikation krävs" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "hjälparen %s stöder inte \"force\"" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "kunde inte köra fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "fel vid körning av fast-export" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "Inga gemensamma referenser och inga angavs; gör inget.\n" -"Du kanske borde ange en gren sÃ¥som \"master\".\n" +"Du kanske borde ange en gren.\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "objektformatet \"%s\" stöds ej" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "felformat svar i referenslistan: %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "läs(%s) misslyckades" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "skriv(%s) misslyckades" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "%s-trÃ¥den misslyckades" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "%s-trÃ¥den misslyckades ansluta: %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "kan inte starta trÃ¥d för kopiering av data: %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "processen %s misslyckades vänta" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "processen %s misslyckades" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "kan inte skapa trÃ¥d för kopiering av data" @@ -8496,33 +8586,33 @@ msgstr "Skulle sätta uppströms för \"%s\" till \"%s\" frÃ¥n \"%s\"\n" msgid "could not read bundle '%s'" msgstr "kunde inte läsa paketet (bundlen) \"%s\"" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "transport: ogiltig flagga för depth: \"%s\"" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "se protocol.version i \"git help config\" för mer information" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "serverflaggor kräver protokollversion 2 eller senare" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "kunde inte tolka inställningen för transport.color.*" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "stöd för protokoll v2 ännu ej implementerat" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "okänt värde för inställningen \"%s\": %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "transporten \"%s\" tillÃ¥ts inte" @@ -8531,7 +8621,7 @@ msgstr "transporten \"%s\" tillÃ¥ts inte" msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync stöds inte längre" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8540,7 +8630,7 @@ msgstr "" "Följande undermodulsökvägar innehÃ¥ller ändringar som\n" "inte kan hittas av fjärrarna:\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8567,11 +8657,11 @@ msgstr "" "för att sända dem till fjärren.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Avbryter." -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "kunde inte sända alla nödvändiga undermoduler" @@ -8850,7 +8940,7 @@ msgstr "" msgid "Updating index flags" msgstr "Uppdaterar indexflaggor" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "förväntade \"flush\" efter \"fetch\"-argument" @@ -8887,47 +8977,47 @@ msgstr "felaktigt \"..\"-sökvägssegment" msgid "Fetching objects" msgstr "Hämtar objekt" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "misslyckades läsa \"%s\"" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "\"%s\" i huvudarbetskatalogen är inte arkivkatalogen" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "filen \"%s\" innehÃ¥ller inte absolut sökväg till arbetskatalogen" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "\"%s\" finns inte" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "\"%s\" är inte en .git-fil, felkod %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "\"%s\" pekar inte tillbaka till \"%s\"" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "kunde inte öppna \"%s\" för läsning och skrivning" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "kan inte komma Ã¥t \"%s\"" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "kan inte hämta aktuell arbetskatalog" @@ -9314,39 +9404,44 @@ msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr "" " (använd \"git bisect reset\" för att komma tillbaka till ursprungsgrenen)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "Du är i en gles utcheckning med %d%% spÃ¥rade filer pÃ¥ plats." + +#: wt-status.c:1733 msgid "On branch " msgstr "PÃ¥ grenen " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "interaktiv ombasering pÃ¥gÃ¥r; ovanpÃ¥ " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "ombasering pÃ¥gÃ¥r; ovanpÃ¥ " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Inte pÃ¥ nÃ¥gon gren för närvarande." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Första incheckning" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "Inga incheckningar ännu" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "OspÃ¥rade filer" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "Ignorerade filer" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9358,32 +9453,32 @@ msgstr "" "lägga till nya filer själv (se \"git help status\")." # %s är nästa sträng eller tom. -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "OspÃ¥rade filer visas ej%s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (använd flaggan -u för att visa ospÃ¥rade filer)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "Inga ändringar" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "inga ändringar att checka in (använd \"git add\" och/eller \"git commit -a" "\")\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "inga ändringar att checka in\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9392,62 +9487,62 @@ msgstr "" "inget köat för incheckning, men ospÃ¥rade filer finns (spÃ¥ra med \"git add" "\")\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "inget köat för incheckning, men ospÃ¥rade filer finns\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "inget att checka in (skapa/kopiera filer och spÃ¥ra med \"git add\")\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "inget att checka in\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "inget att checka in (använd -u för att visa ospÃ¥rade filer)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "inget att checka in, arbetskatalogen ren\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "Inga incheckningar ännu pÃ¥ " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (ingen gren)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "olika" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "efter " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "före " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "kan inte %s: Du har oköade ändringar." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "dessutom innehÃ¥ller dit index ändringar som inte har checkats in." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "kan inte %s: Ditt index innehÃ¥ller ändringar som inte checkats in." @@ -9524,7 +9619,7 @@ msgstr "testkörning" msgid "interactive picking" msgstr "plocka interaktivt" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "välj stycken interaktivt" @@ -9651,12 +9746,12 @@ msgstr "Flaggan --ignore-missing kan endast användas tillsammans med --dry-run" msgid "--chmod param '%s' must be either -x or +x" msgstr "--chmod-parametern \"%s\" mÃ¥ste antingen vara -x eller +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file är inkompatibelt med sökvägsangivelsesparametrar" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul kräver --pathspec-from-file" @@ -9921,7 +10016,7 @@ msgstr "historisk flagga -- no-op" msgid "allow fall back on 3way merging if needed" msgstr "tillÃ¥t falla tillbaka pÃ¥ trevägssammanslagning om nödvändigt" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "var tyst" @@ -9976,7 +10071,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "format" @@ -10271,113 +10366,117 @@ msgstr "" "ogiltigt argument %s för \"git bisect terms\".\n" "Flaggor som stöds är: --term-good|--term-old och --term-bad|--term-new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "\"\" är inte en giltig term" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "okänd flagga: %s" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "\"%s\" verkar inte vara en giltig revision" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "felaktigt HEAD - Jag behöver ett HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "" "misslyckades checka ut \"%s\". Försök \"git bisect reset <giltig_gren>\"." # cogito-relaterat -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "kör inte \"bisect\" pÃ¥ träd där \"cg-seek\" använts" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "felaktigt HEAD - konstig symbolisk referens" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "ogiltig referens: \"%s\"" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "utför 'git bisect next'" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "skriv termerna i .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "städar upp bisect-tillstÃ¥nd" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "kontrollera för förväntade versioner" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "Ã¥terställ bisect-tillstÃ¥nd" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "skriver bisect-tillstÃ¥ndet i BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "visa och ange termer för bisect-tillstÃ¥nd" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "se efter om termer för rätt och fel finns" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "skriv ut termer för bisect" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "pÃ¥börja bisect-körningen" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "uppdatera BISECT_HEAD istället för att checka ut aktuell incheckning" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "ingen logg för BISECT_WRITE" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms kräver tvÃ¥ argument" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state tar inga argument" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset kräver antingen inget argument eller en incheckning" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write kräver antingen 4 eller 5 argument" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms kräver tre argument" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check kräver 2 eller 3 argument" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms kräver noll eller ett argument" @@ -10977,19 +11076,19 @@ msgstr "git bundle list-heads <fil> [<refnamn>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <fil> [<refnamn>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "visa inte förloppsindikator" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "visa förloppsindikator" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "visa förloppsindikator under objektskrivningsfasen" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "som --all-progress när förloppsindikatorn visas" @@ -11029,11 +11128,11 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11067,7 +11166,7 @@ msgstr "för blob-objekt, kör filter pÃ¥ objektets innehÃ¥ll" msgid "for blob objects, run filters on object's content" msgstr "för blob-objekt, kör filger pÃ¥ objektets innehÃ¥ll" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "blob" @@ -11128,8 +11227,8 @@ msgstr "läs filnamn frÃ¥n standard in" msgid "terminate input and output records by a NUL character" msgstr "avsluta in- och utdataposter med NUL-tecken" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "undertryck förloppsrapportering" @@ -11221,7 +11320,7 @@ msgstr "skriv innehÃ¥ll till temporära filer" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "sträng" @@ -11336,11 +11435,11 @@ msgstr "\"%s\" eller \"%s\" kan inte användas med %s" msgid "path '%s' is unmerged" msgstr "sökvägen \"%s\" har inte slagits ihop" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "du mÃ¥ste lösa ditt befintliga index först" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11349,50 +11448,50 @@ msgstr "" "kan inte fortsätta med köade ändringar i följande filer:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Kan inte skapa referenslogg för \"%s\": %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD är nu pÃ¥" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "kan inte uppdatera HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "Ã…terställ gren \"%s\"\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Redan pÃ¥ \"%s\"\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Växlade till och nollställde grenen \"%s\"\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Växlade till en ny gren \"%s\"\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "Växlade till grenen \"%s\"\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ... och %d till.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11415,7 +11514,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11442,19 +11541,19 @@ msgstr[1] "" " git branch <nytt_grennamn> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "internt fel vid genomgÃ¥ng av revisioner (revision walk)" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "Tidigare position för HEAD var" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Du är pÃ¥ en gren som ännu inte är född" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11463,7 +11562,7 @@ msgstr "" "\"%s\" kan vara bÃ¥de en lokal fil och en spÃ¥rande gren.\n" "Använd -- (och möjligen --no-guess) för att göra otvetydig" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11483,51 +11582,51 @@ msgstr "" "föredra en fjärr, t.ex fjärren \"origin\" kan du ställa in\n" "checkout.defaultRemote=origin i din konfiguration." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "\"%s\" motsvarar flera (%d) spÃ¥rade fjärrgrenar" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "endast en referens förväntades" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "endast en referens förväntades, %d gavs." -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "felaktig referens: %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "referensen är inte ett träd: %s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "förväntade gren, fick taggen \"%s\"" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "förväntade gren, fick fjärrgrenen \"%s\"" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "förväntade gren, fick \"%s\"" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "förväntade gren, fick incheckningen \"%s\"" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11535,7 +11634,7 @@ msgstr "" "kan inte växla gren vid sammanslagning\n" "Överväg \"git merge --quit\" eller \"git worktree add\"." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11543,7 +11642,7 @@ msgstr "" "kan inte växla gren mitt i en \"am\"-körning\n" "Överväg \"git am --quit\" eller \"git worktree add\"." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11551,7 +11650,7 @@ msgstr "" "kan inte växla gren vid ombasering\n" "Överväg \"git rebase --quit\" eller \"git worktree add\"." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11559,7 +11658,7 @@ msgstr "" "kan inte växla gren i en \"cherry-pick\"\n" "Överväg \"git cherry-pick --quit\" eller \"git worktree add\"." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11567,146 +11666,146 @@ msgstr "" "kan inte växla gren i en \"revert\"\n" "Överväg \"git revert --quit\" eller \"git worktree add\"." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "dÃ¥ växlar grenar medan du gör en \"bisect\"" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "sökvägar kan inte användas vid byte av gren" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "\"%s\" kan inte användas vid byte av gren" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "\"%s\" kan inte användas med \"%s\"" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "\"%s\" kan inte ta <startpunkt>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kan inte växla gren till icke-incheckningen \"%s\"" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "saknar gren- eller incheckingsargument" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "tvinga förloppsrapportering" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "utför en 3-vägssammanslagning för den nya grenen" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "stil" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "konfliktstil (merge eller diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "koppla frÃ¥n HEAD vid namngiven incheckning" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "sätt uppströmsinformation för ny gren" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "tvinga utcheckning (kasta bort lokala ändringar)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "ny-gren" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "ny gren utan förälder" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "uppdatera ignorerade filer (standard)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "" "kontrollera inte om en annan arbetskatalog hÃ¥ller den angivna referensen" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "checka ut vÃ¥r version för ej sammanslagna filer" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "checka ut deras version för ej sammanslagna filer" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "begränsa inte sökvägar till endast glesa poster" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%c, -%c och --orphan är ömsesidigt uteslutande" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p och --overlay är ömsesidigt uteslutande" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track behöver ett namn pÃ¥ en gren" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "grennamn saknas; försök med -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "kunde inte upplösa %s" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "felaktig sökvägsangivelse" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "" "\"%s\" är inte en incheckning och grenen \"%s\" kan inte skapas frÃ¥n den" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach tar inte en sökväg som argument \"%s\"" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file är inkompatibelt med --detach" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file är inkompatibelt med --patch" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11714,69 +11813,70 @@ msgstr "" "git checkout: --ours/--theirs, --force och --merge är inkompatibla när\n" "du checkar ut frÃ¥n indexet." -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "du mÃ¥ste ange katalog(er) att Ã¥terställa" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "gren" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "skapa och checka ut en ny gren" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "skapa/nollställ och checka ut en gren" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "skapa reflogg för ny gren" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "förutspÃ¥ \"git checkout <gren-saknas>\" (förval)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "använd överläggsläge (standard)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "skapa och växla till en ny gren" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "skapa/nollställ och växla till en gren" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "förutspÃ¥ \"git checkout <gren-saknas>\"" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "kasta bort lokala ändringar" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "vilken träd-igt att checka ut frÃ¥n" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "Ã¥terställ indexet" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "Ã¥terställ arbetskatalogen (förval)" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "ignorera ej sammanslagna poster" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "använd överläggsläge" @@ -11940,11 +12040,7 @@ msgstr "ta även bort ignorerade filer" msgid "remove only ignored files" msgstr "ta endast bort ignorerade filer" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x och -X kan inte användas samtidigt" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -11952,7 +12048,7 @@ msgstr "" "clean.requireForce satt till true, men varken -i, -n eller -f angavs; vägrar " "städa" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -11960,6 +12056,10 @@ msgstr "" "clean.requireForce har standardvärdet true och varken -i, -n eller -f " "angavs; vägrar städa" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x och -X kan inte användas samtidigt" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<flaggor>] [--] <arkiv> [<kat>]" @@ -11968,7 +12068,7 @@ msgstr "git clone [<flaggor>] [--] <arkiv> [<kat>]" msgid "don't create a checkout" msgstr "skapa inte nÃ¥gon utcheckning" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "skapa ett naket (\"bare\") arkiv" @@ -12000,11 +12100,11 @@ msgstr "initiera undermoduler i klonen" msgid "number of submodules cloned in parallel" msgstr "antal undermoduler som klonas parallellt" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "mallkatalog" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "katalog att använda mallar frÃ¥n" @@ -12018,8 +12118,8 @@ msgstr "referensarkiv" msgid "use --reference only while cloning" msgstr "använd --reference endast under kloningen" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "namn" @@ -12044,7 +12144,7 @@ msgstr "djup" msgid "create a shallow clone of that depth" msgstr "skapa en grund klon pÃ¥ detta djup" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "tid" @@ -12075,11 +12175,11 @@ msgstr "klona inga taggar och gör att senare hämtningar inte följer dem" msgid "any cloned submodules will be shallow" msgstr "klonade undermoduler kommer vara grunda" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "gitkat" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "separera gitkatalogen frÃ¥n arbetskatalogen" @@ -12209,7 +12309,7 @@ msgstr "kan inte packa om för att städa upp" msgid "cannot unlink temporary alternates file" msgstr "kunde inte ta bort temporär \"alternates\"-fil" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "För mÃ¥nga argument." @@ -12226,85 +12326,85 @@ msgstr "flaggorna --bare och --origin %s är inkompatibla." msgid "--bare and --separate-git-dir are incompatible." msgstr "flaggorna --bare och --separate-git-dir är inkompatibla." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "arkivet \"%s\" finns inte" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "djupet %s är inte ett positivt tal" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "destinationssökvägen \"%s\" finns redan och är inte en tom katalog." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "arbetsträdet \"%s\" finns redan." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "kunde inte skapa inledande kataloger för \"%s\"" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "kunde inte skapa arbetskatalogen \"%s\"" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klonar till ett naket arkiv \"%s\"...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klonar till \"%s\"...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" msgstr "" "clone --recursive är inte kompatibel med --reference och --reference-if-able" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth ignoreras i lokala kloningar; använd file:// istället." -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "--shallow-since ignoreras i lokala kloningar; använd file:// istället." -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" "--shallow-exclude ignoreras i lokala kloningar; använd file:// istället." -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "--filter ignoreras i lokala kloningar; använd file:// istället." -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "källarkivet är grunt, ignorerar --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local ignoreras" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "Du verkar ha klonat ett tomt arkiv." @@ -12340,13 +12440,13 @@ msgstr "Spaltfyllnad mellan spalter" msgid "--command must be the first argument" msgstr "--command mÃ¥ste vara första argument" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <objkat>] [--shallow] [--[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12356,80 +12456,89 @@ msgstr "" "split[=<strategi>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <delnings-flaggor>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "kunde inte hitta objektkatalog för %s" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "kat" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "Objektkatalogen där grafen ska lagras" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "om inchecknignsgrafen är delad, kontrollera bara spetsfilen" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "Kunde inte öppna incheckningsgrafen \"%s\"" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "okänt argument för --split, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "oväntat icke-hexadecimalt objekt-ID: %s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "ogiltigt objekt: %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "starta traversering vid alla referenser" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "sök paketindex listade pÃ¥ standard in efter incheckningar" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "börja gÃ¥ genom incheckningar listade pÃ¥ standard in" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "ta med alla incheckningar redan i filen commit-graph" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "aktivera beräkning av ändrade sökvägar" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "tillÃ¥t skriva en inkrementell incheckningsgraffil" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "" "maximalt antal incheckningar i en delad incheckingsgraf som inte är bad" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "maximalt förhÃ¥llande mellan tvÃ¥ nivÃ¥er av en delad incheckningsgraf" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "lÃ¥t tid endast gÃ¥ ut för filer äldre än givet datum och tid" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "använd som mest en av --reachable, --stdin-commit och --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "förväntade icke-hexadecimalt objekt-ID: %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "Hämtar incheckningar frÃ¥n indata" #: builtin/commit-tree.c:18 msgid "" @@ -12832,7 +12941,7 @@ msgid "version" msgstr "version" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "maskinläsbar utdata" @@ -12845,8 +12954,8 @@ msgid "terminate entries with NUL" msgstr "terminera poster med NUL" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "läge" @@ -13531,35 +13640,45 @@ msgstr "--dirty är inkompatibelt med \"commit-ish\"-värden" msgid "--broken is incompatible with commit-ishes" msgstr "--broken är inkompatibelt med \"commit-ish\"-värden" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "\"%s\": inte en normal fil eller symbolisk länk" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "ogiltig flagga: %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: ingen sammanslagningsbas" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "Inte ett git-arkiv" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "objektet \"%s\" som angavs är felaktigt." -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "mer än tvÃ¥ blobbar angavs: \"%s\"" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "ej hanterat objekt \"%s\" angavs." +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s: flera sammanslagningsbaser, använder %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "" @@ -13711,82 +13830,103 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-flaggor]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "Fel: Kan inte exportera nästlade taggar sÃ¥vida inte --mark-tags anges." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "symbolen för --anonymize-map kan inte vara tom" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "visa förlopp efter <n> objekt" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "välj hantering av signerade taggar" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "välj hantering av taggar som har taggfiltrerade objekt" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "välj hantering av incheckningsmeddelanden i alternativ teckenkodning" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "Dumpa märken till filen" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "Importera märken frÃ¥n filen" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "Importera märken frÃ¥n filen, om den finns" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "Fejka taggare när taggen saknar en" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "Skriv ut hela trädet för varje incheckning" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "Använd done-funktionen för att avsluta strömmen" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "Hoppa över skrivning av blob-data" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "referensspecifikation" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "Applicera referensspecifikation pÃ¥ exporterade referenser" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "anonymisera utdata" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "frÃ¥n:till" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "konvertera <frÃ¥n> till <till> i anonymiserad utdata" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "Referera föräldrar som inte finns i fast-export-ström med objekt-id" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "Visa ursprungliga objekt-id för blobbar/incheckningar" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "Märk taggar med märke-id" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map utan --anonymize ger ingen mening" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "Kan inte ange bÃ¥de --import-marks och --import-marks-if-exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "LÃ¥sfil skapad men inte rapporterad: %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<flaggor>] [<arkiv> [<refspec>...]]" @@ -14112,40 +14252,40 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Du mÃ¥ste ange namnet pÃ¥ en tagg." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "Negativa djup stöds inte i --deepen" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen och --depth är ömsesidigt uteslutande" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth och --unshallow kan inte användas samtidigt" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow kan inte användas pÃ¥ ett komplett arkiv" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all tar inte namnet pÃ¥ ett arkiv som argument" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kan inte anges med referensspecifikationer" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "Fjärren eller fjärrgruppen finns inte: %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Kan inte hämta frÃ¥n grupp och ange referensspecifikationer" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14604,8 +14744,8 @@ msgstr "felaktigt antal trÃ¥dar angivet (%d) för %s" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "trÃ¥dstöd saknas, ignorerar %s" @@ -14834,11 +14974,11 @@ msgstr "--untracked stöds inte med --recurse-submodules" msgid "invalid option combination, ignoring --threads" msgstr "ogiltig kombination av flaggor, ignorerar --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "trÃ¥dstöd saknas, ignorerar --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "felaktigt antal trÃ¥dar angivet (%d)" @@ -15040,7 +15180,7 @@ msgstr "indataläsfel" msgid "used more bytes than were available" msgstr "använde fler byte än tillgängligt" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "paket för stort för nuvarande definition av off_t" @@ -15111,8 +15251,8 @@ msgstr "allvarlig inflate-inkonsekvens" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "SHA1-KOLLISION UPPTÄCKT VID %s !" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "kunde inte läsa %s" @@ -15173,7 +15313,7 @@ msgstr "förvirrad bortom vanvett i parse_pack_objects()" msgid "Resolving deltas" msgstr "Analyserar delta" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "kunde inte skapa trÃ¥d: %s" @@ -15238,58 +15378,67 @@ msgstr "kan inte spara paketfil" msgid "cannot store index file" msgstr "kan inte spara indexfil" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "felaktig pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kan inte öppna befintlig paketfil \"%s\"" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Kan inte öppna befintlig paket-idx-fil för \"%s\"" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "icke-delta: %d objekt" msgstr[1] "icke-delta: %d objekt" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "kedjelängd = %d: %lu objekt" msgstr[1] "kedjelängd = %d: %lu objekt" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "Kan inte gÃ¥ tillbaka till arbetskatalogen (cwd)" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "felaktig %s" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "okänd hashningsalgoritm \"%s\"" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin kan inte användas med --stdin" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin kräver ett git-arkiv" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format kan inte användas med --stdin" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify angavs utan paketfilnamn" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "fsck-fel i packat objekt" @@ -15333,51 +15482,56 @@ msgstr "mallarna hittades inte i %s" msgid "not copying templates from '%s': %s" msgstr "kopierade inte mallar frÃ¥n \"%s\": %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "ogiltigt namn pÃ¥ första gren: \"%s\"" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "kan inte hantera filtyp %d" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "kan inte flytta %s till %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "försöker initiera arkivet pÃ¥ nytt med annan hash" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "okänd hashningsalgoritm \"%s\"" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s finns redan" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init: ignorerade --initial-branch=%s" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "Ominitierade befintligt delat Git-arkiv i %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Ominitierade befintligt Git-arkiv i %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Initierade tomt delat Git-arkiv i %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Initierade tomt Git-arkiv i %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15385,33 +15539,37 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<mallkatalog>] [--" "shared[=<behörigheter>]] [<katalog>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "behörigheter" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "ange att git-arkivet ska delas bland flera användare" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "överstyr namnet pÃ¥ första gren" + +#: builtin/init-db.c:564 msgid "hash" msgstr "hash" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "ange hashningsalgoritm att använda" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "kan inte skapa katalogen (mkdir) %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "kan inte byta katalog (chdir) till %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15420,7 +15578,7 @@ msgstr "" "%s (eller --work-tree=<katalog>) inte tillÃ¥tet utan att ange %s (eller --git-" "dir=<katalog>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "Kan inte komma Ã¥t arbetskatalogen \"%s\"" @@ -17161,7 +17319,7 @@ msgstr "försök att ta bort icke-existerande anteckningar är inte ett fel" msgid "read object names from the standard input" msgstr "läs objektnamn frÃ¥n standard in" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "ta inte bort, bara visa" @@ -17194,102 +17352,118 @@ msgid "" msgstr "" "git pack-objects [<flaggor>...] <basnamn> [< <reflista> | < <objektlista>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "felaktig CRC för packat objekt %s" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "trasigt packat objekt för %s" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "rekursivt delta upptäcktes för objektet %s" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "ordnade %u objekt, förväntade %<PRIu32>" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" "inaktiverar skrivning av bitkarta, paket delas pÃ¥ grund av pack.packSizeLimit" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Skriver objekt" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "misslyckades ta status pÃ¥ %s" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "skrev %<PRIu32> objekt medan %<PRIu32> förväntades" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "inaktiverar skrivning av bitkarta dÃ¥ nÃ¥gra objekt inte packas" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "deltabasoffset utanför gränsen i pack för %s" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "deltabasoffset utanför gränsvärden för %s" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Räknar objekt" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "kunde inte tolka objekthuvud för %s" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "objektet %s kunde inte läsas" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "objektet %s har inkonsistent objektlängd (%<PRIuMAX> mot %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "icke-optimalt pack - minnet slut" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Deltakomprimering använder upp till %d trÃ¥dar" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "kan inte packa objekt nÃ¥bara frÃ¥n taggen %s" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Komprimerar objekt" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "deltaräknaren är inkonsekvent" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" +"värdet pÃ¥ uploadpack.blobpackfileuri mÃ¥ste vara pÃ¥ formen '<objekt-hash> " +"<paket-hash> <uri>' (fick '%s')" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" +"objektet redan konfigurerat i et annat uploadpack.blobpackfileuri (fick '%s)" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17298,7 +17472,7 @@ msgstr "" "förväntade kant-objekt-id, fick skräp:\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17307,227 +17481,236 @@ msgstr "" "förväntade objekt-id, fick skräp:\n" " %s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "ogiltigt värde för --missing" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "kan inte öppna paketfilen" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "lösa objekt pÃ¥ %s kunde inte underökas" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "kan inte tvinga lösa objekt" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "inte en referens \"%s\"" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "felaktig revision \"%s\"" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "kan inte lägga till nya objekt" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "indexversionen %s stöds ej" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "felaktig indexversion \"%s\"" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<version>[,<offset>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "skriv paketindexfilen i angiven indexformatversion" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "maximal storlek pÃ¥ varje utdatapaketfil" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "ignorera lÃ¥nade objekt frÃ¥n supplerande objektlager" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "ignorera packade objekt" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "begränsa paketfönster efter objekt" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "begränsa paketfönster efter minne förutom objektgräns" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "maximal längd pÃ¥ deltakedja tillÃ¥ten i slutligt paket" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "Ã¥teranvänd befintliga delta" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "Ã¥teranvänd befintliga objekt" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "använd OFS_DELTA-objekt" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "använd trÃ¥dar vid sökning efter bästa deltaträffar" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "försök inte skapa tom paketutdata" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "läs revisionsargument frÃ¥n standard in" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "begränsa objekt till dem som ännu inte packats" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "inkludera objekt som kan nÃ¥s frÃ¥n nÃ¥gon referens" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "inkludera objekt som refereras frÃ¥n referensloggposter" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "inkludera objekt som refereras frÃ¥n indexet" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "skriv paket pÃ¥ standard ut" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "inkludera taggobjekt som refererar objekt som ska packas" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "behÃ¥ll onÃ¥bara objekt" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "packa lösa onÃ¥bara objekt" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "packa upp onÃ¥bara objekt nyare än <tid>" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "använd gles-nÃ¥barhetsalgoritmen" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "skapa tunna paket" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "skapa packfiler lämpade för grunda hämtningar" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "ignorera paket som har tillhörande .keep-fil" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "ignorera detta paket" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "komprimeringsgrad för paket" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "göm inte incheckningar med ympningar (\"grafts\")" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "använd bitkartindex om tillgängligt för att räkna objekt snabbare" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "använd bitkartindex tillsammans med packindexet" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "skriv bitkartindex om möjligt" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "hantering av saknade objekt" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "packa inte objekt i kontraktspackfiler" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "respektera öar under deltakomprimering" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "protokoll" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "" +"uteslut redan konfigurerade uploadpack.blobpackfileuri med detta protokoll" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "deltakedjedjupet %d är för djupt, pÃ¥tvingar %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "pack.deltaCacheLimit är för högt, pÃ¥tvingar %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" "--max-pack-size kan inte användas för att bygga ett paket som ska överföras" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "minsta packstorlek är 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin kan inte användas för att bygga ett indexerbart paket" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable och -unpack-unreachable kan inte användas samtidigt" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "kan inte använda --filter utan --stdout" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Räknar upp objekt" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -18817,7 +19000,7 @@ msgstr "Snabbspolade %s till %s.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <git-katalog>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -18847,7 +19030,7 @@ msgstr "" "För att undvika detta meddelande och fortfarande behÃ¥lla det\n" "normala beteendet, sätt \"receive.denyCurrentBranch\" till \"refuse\"." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -18868,11 +19051,11 @@ msgstr "" "\n" "För att undvika detta meddelande kan du sätta det till \"refuse\"." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "tyst" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Du mÃ¥ste ange en katalog." @@ -20420,6 +20603,14 @@ msgstr "\"%s\" är inte en giltig referens." msgid "cannot find commit %s (%s)" msgstr "hittar inte incheckning %s (%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "hashningsalgoritm" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "okänd hashningsalgoritm" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20473,50 +20664,54 @@ msgid "this worktree is not sparse (sparse-checkout file may not exist)" msgstr "" "arbetskatalogen är inte glest (sparse-checkout-filen kanske inte finns)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "misslyckades skapa katalog för \"sparse-checkout\"-filen" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "kunde inte uppgradera arkivformat för att aktivera worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "misslyckades ändra inställningen extensions.worktreeConfig" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "initiera sparse-checkout i konläge" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "misslyckades öppna \"%s\"" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "kunde inte normalisera sökvägen \"%s\"" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <mönster>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "kan inte ta bort citering av C-sträng \"%s\"" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "kunde inte läsa in existerande mönster för gles utcheckning" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "läs mönster frÃ¥n standard in" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "fel vid uppdatering av arbetskatalog" @@ -21214,12 +21409,38 @@ msgstr "Dölj utdata frÃ¥n inställning av url för undermodul" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <sökväg> <nyurl>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "välj master som förvald spÃ¥rad gren" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "välj förvald spÃ¥rad gren" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <sökväg>" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-b|--brand) <gren> <sökväg>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "--branch eller --default krävs" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch och --default är ömsesidigt uteslutande" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s stöder inte --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "\"%s\" är inte ett giltigt underkommando till submodule--helper" @@ -21849,198 +22070,190 @@ msgstr "git worktree remove [<flaggor>] <arbetskatalog>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <sökväg>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "misslyckades ta bort \"%s\"" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "Tar bort worktrees/%s: inte en giltig katalog" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "Tar bort worktrees/%s: gitdir-filen existerar inte" +msgid "not a valid directory" +msgstr "inte i en giltig katalog" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "Tar bort worktrees/%s: kan inte läsa gitdir-filen (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "gitdir-filen existerar inte" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "" -"Tar bort worktrees/%s: kort läsning (förväntade %<PRIuMAX> byte, läste " -"%<PRIuMAX>)" +msgid "unable to read gitdir file (%s)" +msgstr "kunde inte läsa gitdir-filen (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "Tar bort worktrees/%s: felaktig gitdir-fil" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "kort läsning (förväntade %<PRIuMAX> byte, läste %<PRIuMAX>)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "ogiltig gitdir-fil" -#: builtin/worktree.c:126 +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "gitdir-filen pekar pÃ¥ en ickeexisterande plats" + +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "Tar bort worktrees/%s: gitdir-filen pekar pÃ¥ en ickeexisterande plats" +msgid "Removing %s/%s: %s" +msgstr "Tar bort %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "rapportera borttagna arbetskataloger" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "lÃ¥t tid gÃ¥ ut för arbetskataloger äldre än <tid>" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "\"%s\" finns redan" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "kunde inte lägga in arbetskatalogen \"%s\" igen" +msgid "unusable worktree destination '%s'" +msgstr "oanvändbar mÃ¥l för arbetskatalog \"%s\"" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "\"%s\" är en saknad men lÃ¥st arbetskatalog;\n" -"använd \"add -f -f\" för att överstyra, eller \"unlock\" och \"prune\" eller " +"använd \"%s -f -f\" för att överstyra, eller \"unlock\" och \"prune\" eller " "\"remove\" för att rensa" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "\"%s\" är en saknad men redan registrerad arbetskatalog;\n" -"använd \"add -f\" för att överstyra, eller \"prune\" eller \"remove\" för " -"att rensa" +"använd \"%s -f\" för att överstyra, eller \"prune\" eller \"remove\" för att " +"rensa" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "kunde inte skapa katalogen \"%s\"" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Förbereder arbetskatalog (ny gren \"%s\")" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "Förbereder arbetskatalog (Ã¥terställer gren \"%s\"; var pÃ¥ %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Förbereder arbetskatalog (checkar ut \"%s\")" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Förbereder arbetskatalog (frÃ¥nkopplat HEAD %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" "checka ut <gren> även om den redan är utcheckad i en annan arbetskatalog" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "skapa en ny gren" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "skapa eller Ã¥terställ en gren" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "befolka den nya arbetskatalogen" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "lÃ¥t arbetskatalogen förbli lÃ¥st" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "ställ in spÃ¥rningsläge (se git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "försök matcha namn pÃ¥ ny gren mot en fjärrspÃ¥rande gren" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B och --detach är ömsesidigt uteslutande" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "--[no-]track kan endast användas när ny gran skapas" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "orsak till lÃ¥s" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "\"%s\" är inte en arbetskatalog" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "Huvudarbetskatalogen kan inte lÃ¥sas eller lÃ¥sas upp" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "\"%s\" är redan lÃ¥st, orsak: %s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "\"%s\" är redan lÃ¥st" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "\"%s\" är inte lÃ¥st" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "arbetskataloger med undermoduler kan inte flyttas eller tas bort" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "tvinga flyttning även om arbetskatalogen är smutsig eller lÃ¥st" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "\"%s\" är inte en huvudarbetskatalog" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "kunde inte lista ut mÃ¥lnamn frÃ¥n \"%s\"" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "mÃ¥let \"%s\" finns redan" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22049,7 +22262,7 @@ msgstr "" "kan inte flytta en lÃ¥st arbetskatalog, orsak till lÃ¥s: %s\n" "använd \"move -f -f\" för att överstyra, eller lÃ¥s upp först" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22057,38 +22270,38 @@ msgstr "" "kan inte flytta en lÃ¥st arbetskatalog;\n" "använd \"move -f -f\" för att överstyra, eller lÃ¥s upp först" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "kontroll misslyckades, kan inte flytta arbetskatalog: %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "misslyckades flytta \"%s\" till \"%s\"" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "misslyckades köra \"git status\" pÃ¥ \"%s\"" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "\"%s\" innehÃ¥ller ändrade eller ospÃ¥rade filer, använd --force för att ta " "bort det" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "misslyckades köra \"git status\" pÃ¥ \"%s\", kod %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "tvinga ta bort även om arbetskatalogen är smutsig eller lÃ¥st" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22097,7 +22310,7 @@ msgstr "" "kan inte ta bort en lÃ¥st arbetskatalog, orsak till lÃ¥set: %s\n" "använd \"remove -f -f\" för att överstyra, eller lÃ¥s upp först" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22105,7 +22318,7 @@ msgstr "" "kan inte ta bort en lÃ¥st arbetskatalog;\n" "använd \"remove -f -f\" för att överstyra, eller lÃ¥s upp först" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "kontroll misslyckades, kan inte ta bort arbetskatalog: %s" @@ -22126,32 +22339,32 @@ msgstr "visa trädobjekt för underkatalogen <prefix>" msgid "only useful for debugging" msgstr "endast användbart vid felsökning" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "git version:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() misslyckades med felet \"%s\" (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "kompilatorinfo:" -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "libc-info:" -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "körs inte frÃ¥n ett git-arkiv - inga krokar att visa\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <fil>] [-s|--suffix <format>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22187,66 +22400,77 @@ msgstr "" "Se över resten av felrapporten nedan.\n" "Du kan ta bort rader du inte vill dela.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "ange mÃ¥l för buggrapporteringsfilen" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "ange ett filändelse i strftime-format" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "kunde inte skapa inledande kataloger för \"%s\"" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "Systeminfo" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Aktiverade krokar" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "kunde inte skapa filen pÃ¥ \"%s\"" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "kunde inte skriva till %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Skapade ny rapport pÃ¥ \"%s\"\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "Saknar frÃ¥n-märken för undermodulen \"%s\"" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "Saknar till-märken för undermodulen \"%s\"" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "Förväntade \"mark\"-kommando, fick %s" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "Förväntade \"to\"-kommando, fick %s" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "Förvändae formatet namn:filnamn för undermodul-omskrivningsflaggan" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "funktionen \"%s\" förbjuden i indata utan --allow-unsafe-features" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "" +"argumentet till --packfile mÃ¥ste vara ett giltigt hashvärde (fick '%s')" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22424,30 +22648,30 @@ msgstr "Delegerad styrning stöds inte av cURL < 7.22.0" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "FastnÃ¥lning av öppen nyckel stöds inte av cURL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REVOKE stöds inte av cURL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Prtokollbegränsningar stöds inte av cURL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "SSL-bakändan \"%s\" stöds inte. Dessa SSL-bakändor stöds:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "Kan inte sätta SSL-bakända till \"%s\": cURL byggdes utan SSL-bakändor" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "Kunde inte sätta SSL-bakända till \"%s\": redan valt" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22458,111 +22682,134 @@ msgstr "" " bad om: %s\n" " omdirigering: %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "felaktig citering pÃ¥ värde för push-option: \"%s\"" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs inte giltig: är detta ett git-arkiv?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "ogiltigt svar frÃ¥n servern; förväntade tjänst, fick flush-paket" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "ogiltigt svar frÃ¥n servern; fick \"%s\"" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "arkivet \"%s\" hittades inte" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "Autentisering misslyckades \"%s\"" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "kan inte komma Ã¥t \"%s\": %s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "omdirigerar till %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "borde inte ha EOF när inte försiktig pÃ¥ EOF" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "fjärrservern sände tillstÃ¥ndslös avdelare" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "kunde inte spola tillbaka rpc-postdata - försök öka http.postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: felaktig radlängdstecken: %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: oväntat svarsavslutningspaketet" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC misslyckades; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "kan inte hantera sÃ¥ stora sändningar" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "kan inte packa upp anrop; zlib-deflate-fel %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "kan inte packa upp anrop; zlib-slutfel %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "%d byte av längd-huvudet togs emot" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "%d byte av kroppen väntas fortfarande" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "dum http-transport stöder inte grunda arkiv" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "mottagning misslyckades." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "kan inte hämta med sha1 över smart http" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "protokollfel: förväntade sha/ref, fick \"%s\"" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "http-transporten stöder inte %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push misslyckades" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: användning: git remote-curl <fjärr> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl: fel vid läsning av kommandoström frÃ¥n git" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl: försökte ta emot utan lokalt arkiv" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl: okänt kommando \"%s\" frÃ¥n git" @@ -23582,26 +23829,26 @@ msgstr "Undermodulsökvägen \"$displaypath\": \"$command $sha1\"" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Misslyckades rekursera in i undermodulsökvägen \"$displaypath\"" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "Flaggan --cached kan inte användas med flaggan --files" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "oväntat läge $mod_dst" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Varning: $display_name innehÃ¥ller inte incheckningen $sha1_src" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Varning: $display_name innehÃ¥ller inte incheckningen $sha1_dst" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -24012,7 +24259,7 @@ msgid_plural "touched %d paths\n" msgstr[0] "rörde %d sökväg\n" msgstr[1] "rörde %d sökvägar\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24020,7 +24267,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att\n" "köas omedelbart." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24028,7 +24275,7 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att\n" "läggas till i \"stash\" omedelbart." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24036,8 +24283,8 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att\n" "tas bort frÃ¥n kön omedelbart." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24045,8 +24292,8 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att\n" "markeras för applicering omedelbart." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24054,12 +24301,12 @@ msgstr "" "Om patchen kan appliceras rent kommer det redigerade stycket att\n" "markeras för kasta omedelbart." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "misslyckades öppna styckeredigeringsfil för skrivning: %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24072,12 +24319,12 @@ msgstr "" "Ta bort \"%s\" rader genom att radera dem.\n" "Rader som börjar med %s kommer att tas bort.\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "misslyckades öppna styckesredigeringsfil för läsning: %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24091,7 +24338,7 @@ msgstr "" "a - köa stycket och alla följande i filen\n" "d - köa inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24105,7 +24352,7 @@ msgstr "" "a - \"stash\":a stycket och alla följande i filen\n" "d - \"stash\":a inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24119,7 +24366,7 @@ msgstr "" "a - ta bort stycket och alla följande i filen frÃ¥n kön\n" "d - ta inte bort stycket eller nÃ¥got av de följande i filen frÃ¥n kön" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24133,7 +24380,7 @@ msgstr "" "a - applicera stycket och alla följande i filen\n" "d - applicera inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24147,7 +24394,7 @@ msgstr "" "a - förkasta stycket och alla följande i filen\n" "d - förkasta inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24161,7 +24408,7 @@ msgstr "" "a - förkasta stycket och alla följande i filen\n" "d - förkasta inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24175,7 +24422,7 @@ msgstr "" "a - applicera stycket och alla följande i filen\n" "d - applicera inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24189,7 +24436,7 @@ msgstr "" "a - applicera stycket och alla följande i filen\n" "d - applicera inte stycket eller nÃ¥got av de följande i filen" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24211,85 +24458,90 @@ msgstr "" "e - redigera aktuellt stycke manuellt\n" "? - visa hjälp\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "Markerade stycken kan inte appliceras pÃ¥ indexet!\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "ignorerar ej sammanslagen: %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "Applicera ändrat läge pÃ¥ arbetskatalogen [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "Applicera borttagning pÃ¥ arbetskatalogen [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Applicera tillägg pÃ¥ arbetskatalogen [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "Applicera stycket pÃ¥ arbetskatalogen [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "Inga andra stycken att gÃ¥ till\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Ogiltigt siffervärde: \"%s\"\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Beklagar, det finns bara %d stycke.\n" msgstr[1] "Beklagar, det finns bara %d stycken.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "Inga andra stycken att söka efter\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Felaktigt format pÃ¥ reguljärt sökuttryck %s: %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "Inga stycken motsvarar givet mönster\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "Inget föregÃ¥ende stycke\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "Inget följande stycke\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Beklagar, kan inte dela stycket\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "Dela i %d stycke.\n" msgstr[1] "Dela i %d stycken.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Beklagar, kan inte redigera stycket\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24306,19 +24558,19 @@ msgstr "" "diff - visa diff mellan HEAD och index\n" "add untracked - lägg till innehÃ¥ll i ospÃ¥rade filer till köade ändringar\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "saknad --" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "okänt läge för --patch: %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "felaktigt argument %s, förväntar --" @@ -24632,50 +24884,50 @@ msgstr "(mbox) Lägger till cc: %s frÃ¥n raden \"%s\"\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) Lägger till to: %s frÃ¥n raden \"%s\"\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(icke-mbox) Lägger till cc: %s frÃ¥n raden \"%s\"\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(kropp) Lägger till cc: %s frÃ¥n raden \"%s\"\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) Kunde inte köra \"%s\"" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) Lägger till %s: %s frÃ¥n: \"%s\"\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) misslyckades stänga röret till \"%s\"" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "kan inte sända brev som sjubitars" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "ogiltig överföringskondning" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "kunde inte öppna %s: %s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s: patchen innehÃ¥ller en rad längre än 998 tecken" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "" @@ -24683,11 +24935,34 @@ msgstr "" "säkerhetskopior.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: " +#~ msgid "Finding commits for commit graph from %d ref" +#~ msgid_plural "Finding commits for commit graph from %d refs" +#~ msgstr[0] "Söker incheckningar för incheckingsgraf frÃ¥n %d referens" +#~ msgstr[1] "Söker incheckningar för incheckingsgraf frÃ¥n %d referenser" + +#~ msgid "invalid commit object id: %s" +#~ msgstr "ogiltigt inchecknings-objekt-id %s" + +#~ msgid "Removing worktrees/%s: not a valid directory" +#~ msgstr "Tar bort worktrees/%s: inte en giltig katalog" + +#~ msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +#~ msgstr "Tar bort worktrees/%s: kan inte läsa gitdir-filen (%s)" + +#~ msgid "Removing worktrees/%s: invalid gitdir file" +#~ msgstr "Tar bort worktrees/%s: felaktig gitdir-fil" + +#~ msgid "unable to re-add worktree '%s'" +#~ msgstr "kunde inte lägga in arbetskatalogen \"%s\" igen" + +#~ msgid "target '%s' already exists" +#~ msgstr "mÃ¥let \"%s\" finns redan" + #~ msgid "" #~ "Cannot update sparse checkout: the following entries are not up to date:\n" #~ "%s" @@ -25881,9 +26156,6 @@ msgstr "Vill du verkligen sända %s? [y=ja, n=nej]: " #~ msgid "false|true|preserve" #~ msgstr "false|true|preserve" -#~ msgid "unsupported sort specification '%s'" -#~ msgstr "sorteringsangivelsen \"%s\" stöds ej" - #~ msgid "unsupported sort specification '%s' in variable '%s'" #~ msgstr "sorteringsangivelsen \"%s\" i variabeln \"%s\" stöds ej" @@ -89,8 +89,8 @@ msgid "" msgstr "" "Project-Id-Version: Git Turkish Localization Project\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-27 12 40+0300\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-10 13:00+0300\n" "Last-Translator: Emir SARI <bitigchi@me.com>\n" "Language-Team: Turkish (https://github.com/bitigchi/git-po/)\n" "Language: tr\n" @@ -192,21 +192,21 @@ msgstr[1] "%d yol eklendi\n" msgid "ignoring unmerged: %s" msgstr "birleÅŸtirilmeyenler yok sayılıyor: %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Yalnızca ikili dosyalar deÄŸiÅŸtirildi.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "DeÄŸiÅŸiklik yok.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Yama güncellemesi" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "diff'i gözden geçir" @@ -274,11 +274,11 @@ msgstr "numaralandırılmış bir öge seç" msgid "(empty) select nothing" msgstr "(boÅŸ) hiçbir ÅŸey seçme" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Komutlar ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Åžimdi ne" @@ -295,7 +295,7 @@ msgstr "hazırlanmamış" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "yol" @@ -304,27 +304,32 @@ msgstr "yol" msgid "could not refresh index" msgstr "indeks yenilenemedi" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Hoşça kal.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "Kip deÄŸiÅŸimi hazırlansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "Silme hazırlansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "Ekleme hazırlansın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "Bu parça hazırlansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -332,7 +337,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal hazırlama için " "imlenecektir." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -346,22 +351,27 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları hazırla\n" "d - bu parçayı veya sonraki parçalardan herhangi birini hazırlama\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "Kip deÄŸiÅŸimi zulalansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "Silme zulalansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "Ekleme zulalansın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "Bu parça zulalansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -369,7 +379,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal zulalama için " "imlenecektir." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -383,22 +393,27 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları zulala\n" "d - bu parçayı veya sonraki parçalardan herhangi birini zulalama\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "Kip deÄŸiÅŸimi hazırlıktan çıkarılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "Silme hazırlıktan çıkarılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "Ekleme hazırlıktan çıkarılsın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "Bu parça hazırlıktan çıkarılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -406,7 +421,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa, düzenlenen parça derhal hazırlıktan " "çıkarım için imlenecektir." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -420,22 +435,27 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları hazırlıktan çıkar\n" "d - bu parçayı veya sonraki parçalardan herhangi birini hazırlıktan çıkarma\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "Kip deÄŸiÅŸimi indekse uygulansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "Silme indekse uygulansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "Ekleme indekse uygulansın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "Bu parça indekse uygulansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -443,7 +463,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal uygulama için " "imlenecektir." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -457,25 +477,31 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları uygula\n" "d - bu parçayı veya sonraki parçalardan herhangi birini uygulama\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "Kip deÄŸiÅŸimi çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "Silme çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "Ekleme çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "Bu parça çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -483,7 +509,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal ıskartaya çıkarım " "için imlenecektir." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -497,23 +523,28 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları at\n" "d - bu parçayı veya sonraki parçalardan herhangi birini atma\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Kip deÄŸiÅŸimi indeksten ve çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "Silme indeksten ve çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "Ekleme indeksten ve çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "Bu parça indeksten ve çalışma aÄŸacından atılsın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -527,23 +558,28 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları at\n" "d - bu parçayı veya sonraki parçalardan herhangi birini atma\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "" "Kip deÄŸiÅŸimi indekse ve çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "Silme indekse ve çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "Ekleme indekse ve çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "Bu parça indekse ve çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -557,7 +593,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları uygula\n" "d - bu parçayı veya sonraki parçalardan herhangi birini uygulama\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -571,34 +607,34 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları uygula\n" "d - bu parçayı veya sonraki parçalardan herhangi birini uygulama\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "parça üstbilgisi '%.*s' ayrıştırılamadı" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "renklendirilmiÅŸ parça üstbilgisi '%.*s' ayrıştırılamadı" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "diff ayrıştırılamadı" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "renklendirilmiÅŸ diff ayrıştırılamadı" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "'%s' çalıştırılamadı" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "interactive.diffFilter ögesinden eÅŸleÅŸmeyen çıktı" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -606,7 +642,7 @@ msgstr "" "Süzgeciniz kendisinin girdi ve çıktı satırları arasında\n" "birebir karşılık saÄŸlamalıdır." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -615,7 +651,7 @@ msgstr "" "ÅŸurada baÄŸlam satırı #%d bekleniyordu:\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -628,11 +664,11 @@ msgstr "" "\tÅŸununla bitmiyor:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "El ile parça düzenleme kipi -- hızlıca öğrenmek için aÅŸağıya bakın.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -646,7 +682,7 @@ msgstr "" "%c kaldırılacak.\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -656,11 +692,11 @@ msgstr "" "sunulacaktır. Parçanın tüm satırları kaldırılırsa düzenleme durdurulur\n" "ve parça deÄŸiÅŸtirilmeden bırakılır.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "parça üstbilgisi ayrıştırılamadı" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "'git apply --cached' baÅŸarısız oldu" @@ -676,26 +712,26 @@ msgstr "'git apply --cached' baÅŸarısız oldu" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "DüzenlediÄŸiniz parça uygulanamıyor. Yeniden düzenlensin mi (\"n (hayır)\" " "demek iptal eder!) [y/n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "Seçili parçalar indekse uygulanamıyor!" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "Çalışma aÄŸacına yine de uygulansın mı? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Hiçbir ÅŸey uygulanmadı.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -717,69 +753,69 @@ msgstr "" "e - geçerli parçayı el ile düzenle\n" "? - yardımı yazdır\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "Öncesinde parça yok" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "Sonrasında parça yok" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "Gidilecek baÅŸka bir parça yok" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "hangi parçaya gidilsin (daha fazla görmek için <ret>)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "hangi parçaya gidilsin? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Geçersiz sayı: '%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Ãœzgünüm, yalnızca %d parça kullanılabilir." msgstr[1] "Ãœzgünüm, yalnızca %d parça kullanılabilir." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "Aranacak baÅŸka parça yok" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "düzenli ifade aransın mı? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Hatalı oluÅŸturulmuÅŸ düzenli ifade %s: %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "Verilen dizgi ile eÅŸleÅŸen bir parça yok" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Ãœzgünüm, bu parça bölünemiyor" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "%d parçaya bölündü." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Ãœzgünüm, bu parça düzenlenemiyor" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' baÅŸarısız oldu" @@ -1462,7 +1498,7 @@ msgstr "en az <n> baÄŸlam satırının eÅŸleÅŸtiÄŸinden emin ol" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "eylem" @@ -1551,7 +1587,7 @@ msgstr "yol geçerli UTF-8 deÄŸil: %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "yol çok uzun (%d karakter, SHA1: %s): %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "söndürme hatası (%d)" @@ -1620,8 +1656,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "öneki arÅŸivdeki tüm yol adlarının başına ekle" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1846,10 +1882,10 @@ msgid "--reverse and --first-parent together require specified latest commit" msgstr "" "--reverse ve --first-parent birlikte en son gönderinin belirtilmesi gerek" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "revizyonda gezinme ayarlaması baÅŸarısız oldu" @@ -2014,84 +2050,88 @@ msgstr "'%s' çıkışı '%s' konumunda halihazırda yapılmış" msgid "HEAD of working tree %s is not updated" msgstr "%s çalışma aÄŸacının HEAD'i güncellenmemiÅŸ" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' bir v2 demet dosyası gibi görünmüyor" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "bilinmeyen saÄŸlama algoritması uzunluÄŸu" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "tanımlanamayan üstbilgi: %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "'%s' açılamadı" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Depo aÅŸağıdaki önceden gereken gönderilere iye deÄŸil:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "bir demeti doÄŸrulamak için bir depo gerekiyor" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "Demet ÅŸu baÅŸvuruyu içeriyor:" msgstr[1] "Demet ÅŸu %d baÅŸvuruyu içeriyor:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "Demet tam bir geçmiÅŸ kaydını yazar." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "Demet ÅŸu gönderiyi gerektiriyor:" msgstr[1] "Demet ÅŸu %d gönderiyi gerektiriyor:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "demet açıklayıcısı çoÄŸaltılamıyor" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "pack-objects ortaya çıkarılamadı" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "pack-objects sonlandı" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list sonlandı" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "'%s' baÅŸvurusu revizyon listesi seçenekleri tarafından dışlandı" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "tanımlanamayan deÄŸiÅŸken: %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "BoÅŸ demet oluÅŸturma reddediliyor." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "'%s' oluÅŸturulamıyor" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "index-pack sonlandı" @@ -2100,261 +2140,253 @@ msgstr "index-pack sonlandı" msgid "invalid color value: %.*s" msgstr "geçersiz renk deÄŸeri: %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "commit-graph dosyası pek küçük" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "commit-graph imzası %X, %X ile eÅŸleÅŸmiyor" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "commit-graph sürümü %x, %X ile eÅŸleÅŸmiyor" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "commit-graph saÄŸlama sürümü %X, %X ile eÅŸleÅŸmiyor" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "commit-graph iri parça arama tablosu girdisi eksik; dosya tam olmayabilir" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "commit-graph biçimsiz iri parça ofseti %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "commit-graph iri parça numarası %08x birden çok görünüyor" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "commit-graph temel grafiÄŸi iri parçasına iye deÄŸil" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "commit-graph zinciri eÅŸleÅŸmiyor" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "geçersiz commit-graph zinciri: '%s'. satır bir saÄŸlama deÄŸil" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "tüm commit-graph dosyaları bulunamıyor" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "geçersiz gönderi konumu. commit-graph büyük olasılıkla hasar görmüş" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "%s gönderisi bulunamadı" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "%s gönderisi ayrıştırılamıyor" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "DeÄŸiÅŸtirilmiÅŸ yollar için Bloom süzgeçleri indeksi yazılıyor" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "DeÄŸiÅŸtirilmiÅŸ yollar için Bloom süzgeçleri verisi yazılıyor" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "%s nesnesinin türü alınamıyor" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Gönderi grafiÄŸindeki bilinen gönderiler yükleniyor" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "Gönderi grafiÄŸindeki ulaşılabilir gönderiler geniÅŸletiliyor" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Gönderi grafiÄŸindeki gönderi imleri temizleniyor" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Gönderi grafiÄŸi kuÅŸak sayıları hesaplanıyor" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "" "Geçerli gönderilerdeki deÄŸiÅŸtirilmiÅŸ yollar için Bloom süzgeci hesaplanıyor" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "BaÅŸvurulmuÅŸ gönderiler toplanıyor" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "Gönderi grafiÄŸi için gönderiler %d pakette bulunuyor" msgstr[1] "Gönderi grafiÄŸi için gönderiler %d pakette bulunuyor" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "%s paketi eklenirken hata" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "%s için indeks açılırken hata" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "Gönderi grafiÄŸi için gönderiler %d baÅŸvurudan bulunuyor" -msgstr[1] "Gönderi grafiÄŸi için gönderiler %d baÅŸvurudan bulunuyor" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "geçersiz gönderi nesne numarası: %s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "" "Gönderi grafiÄŸi için gönderiler paketlenmiÅŸ nesneler arasından bulunuyor" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Gönderi grafiÄŸindeki belirgin gönderiler sayılıyor" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Gönderi grafiÄŸindeki ek sınırlar bulunuyor" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "temel grafiÄŸi numaralarının doÄŸru sayısı yazılamadı" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "%s öncü dizinleri oluÅŸturulamıyor" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "geçici grafik katmanı oluÅŸturulamıyor" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "'%s' için paylaşılan izinler ayarlanamıyor" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Gönderi grafiÄŸi %d geçiÅŸte yazılıyor" msgstr[1] "Gönderi grafiÄŸi %d geçiÅŸte yazılıyor" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "commit-graph zincir dosyası açılamıyor" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "temel commit-graph dosyası yeniden adlandırılamadı" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "geçici commit-graph dosyası yeniden adlandırılamadı" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "BirleÅŸtirilen gönderiler taranıyor" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "beklenmedik yinelenmiÅŸ gönderi numarası %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "commit-graph birleÅŸtiriliyor" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "gönderi grafiÄŸi biçimi %d gönderiyi yazamıyor" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "grafik yazabilmek için çok fazla gönderi" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "commit-graph dosyasının saÄŸlama toplamı yanlış ve büyük olasılıkla hasar " "görmüş" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "commit-graph hatalı nesne tanımlayıcı sırasına iye: %s, sonra %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "commit-graph hatalı fanout deÄŸerine iye: fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "%s gönderisi commit-graph'tan ayrıştırılamadı" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Gönderi grafiÄŸindeki gönderiler doÄŸrulanıyor" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "%s gönderisi commit-graph için olan nesne veritabanından ayrıştırılamadı" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" "commit-graph'teki %s gönderisi için olan kök aÄŸaç nesne tanımlayıcısı %s != " "%s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "%s gönderisi için olan commit-graph üst öge listesi çok uzun" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "%s için olan commit-graph üst ögesi %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "" "%s gönderisi için olan commit-graph üst öge listesi erkenden sonlanıyor" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2362,7 +2394,7 @@ msgstr "" "%s gönderisi için commit-graph kuÅŸak sayısı sıfır ancak baÅŸka yerlerde " "sıfırdan farklı" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2370,12 +2402,12 @@ msgstr "" "%s gönderisi için commit-graph kuÅŸak sayısı sıfırdan farklı, ancak baÅŸka " "yerlerde sıfır" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "%s gönderisi için commit-graph kuÅŸağı %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2413,28 +2445,28 @@ msgstr "" "\"git config advice.graftFileDeprecated false\"\n" "kullanarak bu iletiyi kapatabilirsiniz." -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" "%s gönderisinin güvenilmeyen bir GPG imzası var, iddiaya göre %s tarafından." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "%s gönderisinin hatalı bir GPG imzası var, iddiaya göre %s tarafından." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "%s gönderisinin bir GPG imzası yok." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "%s gönderisinin %s tarafından saÄŸlanan düzgün bir GPG imzası var\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2631,7 +2663,7 @@ msgstr "%s için hatalı oluÅŸturulmuÅŸ deÄŸer: %s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "nothing, matching, simple, upstream veya current içinden biri olmalı" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "hatalı paket sıkıştırma düzeyi %d" @@ -2780,72 +2812,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "sunucu '%s' desteklemiyor" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "sunucu '%s' özelliÄŸini desteklemiyor" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "yeteneklerden sonra floÅŸ bekleniyordu" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "'%s' ilk satırından sonra yetenekler yok sayılıyor" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "protokol hatası: beklenmedik yetenekler^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "protokol hatası: sığ sha-1 bekleniyordu, '%s' alındı" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "diÄŸer uçtaki depo sığ olamaz" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "geçersiz paket" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "protokol hatası: beklenmedik '%s'" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "geçersiz nesne biçimi '%s' sunucu tarafından belirtildi" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "geçersiz ls-refs yanıtı: %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "baÅŸvuru listelemesinden sonra floÅŸ bekleniyordu" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "baÅŸvuru listelemesinden sonra yanıt sonu paketi bekleniyordu" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "'%s' protokolü desteklenmiyor" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "soket üzerinde SO_KEEPALIVE ayarlanamıyor" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "%s aranıyor..." -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "%s aranamıyor (kapı %s) (%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2854,7 +2895,7 @@ msgstr "" "bitti.\n" "Åžuraya baÄŸlanıyor: %s (kapı %s)..." -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2864,73 +2905,73 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "bitti." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "%s aranamıyor (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "bilinmeyen kapı %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "garip makine adı '%s' engellendi" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "garip kapı '%s' engellendi" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "vekil %s baÅŸlatılamıyor" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "yol belirtilmedi; geçerli url sözdizimi için 'git help pull' yazın" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "ssh deÄŸiÅŸik biçimi 'simple' -4 desteklemiyor" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "ssh deÄŸiÅŸik biçimi 'simple' -6 desteklemiyor" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "ssh deÄŸiÅŸik biçimi 'simple' kapı ayarlamayı desteklemiyor" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "garip yol adı '%s' engellendi" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "çatallanamıyor" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "BaÄŸlantı denetleniyor" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "'git rev-list' çalıştırılamadı" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "rev-list yazılamadı" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "rev-list'in stdin'i kapatılamadı" @@ -3195,17 +3236,17 @@ msgstr "" "Bir git deposu deÄŸil. Bir çalışma aÄŸacının dışındaki iki yolu karşılaÅŸtırmak " "için --no-index kullanın." -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " dirstat kesim yüzdesi '%s' ayrıştırılamadı\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Bilinmeyen dirstat parametresi '%s'\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3213,7 +3254,7 @@ msgstr "" "\"color-moved\" ayarı 'no', 'default', 'blocks', 'zebra', 'dimmed-zebra', " "'plain' seçeneklerinden biri olmalıdır" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3222,7 +3263,7 @@ msgstr "" "bilinmeyen color-moved-ws kipi '%s', olabilecek deÄŸerler: 'ignore-space-" "change', 'ignore-space-at-eol', 'ignore-all-space' 'allow-indentation-change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3230,12 +3271,12 @@ msgstr "" "color-moved-ws: allow-indentation-change diÄŸer boÅŸluk kipleri ile birlikte " "kullanılamaz" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "'diff.submodule' yapılandırma deÄŸiÅŸkeni için bilinmeyen deÄŸer: '%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3244,35 +3285,35 @@ msgstr "" "'diff.dirstat' yapılandırma deÄŸiÅŸkeninde hatalar bulundu:\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "dış diff sonlandı, %s konumunda durdu" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-only, --name-status, --check ve -s birlikte kullanılmaz" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-G, -S ve --find-object birlikte kullanılmaz" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow tam olarak yalnızca bir yol belirteci gerektiriyor" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "geçersiz --stat deÄŸeri: %s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s bir sayısal deÄŸer bekliyor" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3281,42 +3322,42 @@ msgstr "" "--dirstat/-X seçenek parametresi ayrıştırılamadı:\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "ÅŸurada bilinmeyen deÄŸiÅŸiklik sınıfı '%c': -diff-filter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "ÅŸundan sonra bilinmeyen deÄŸer: ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "'%s' çözülemiyor" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s <n>/<m> biçimi bekliyor" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s bir karakter bekliyor, '%s' aldı" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "hatalı --color-moved deÄŸiÅŸkeni: %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "--color-moved-ws içinde geçersiz kip '%s'" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3324,157 +3365,157 @@ msgstr "" "diff-algorithm seçeneÄŸi ÅŸunları kabul eder: \"myers\", \"minimal\", " "\"patience\" ve \"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "%s için geçersiz deÄŸiÅŸken" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "--submodule seçenek parametresi ayrıştırılamadı: '%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "hatalı --word-diff deÄŸiÅŸkeni: %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Diff çıktısı biçimlendirme seçenekleri" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "yama oluÅŸtur" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "diff çıktısını gizle" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "diff'leri <n> satır baÄŸlamlı oluÅŸtur" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "diff'i ham biçimde oluÅŸtur" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "'-p --raw eÅŸanlamlısı" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "'-p --stat eÅŸanlamlısı" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "makinede okunabilen --stat" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "--stat'ın yalnızca son satırını çıktı ver" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<param1,param2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "" "her alt dizin için göreceli bir miktar deÄŸiÅŸikliÄŸin dağıtımını çıktı ver" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "--dirstat-cumulative eÅŸanlamlısı" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "--dirstat=files,param1,param2... eÅŸanlamlısı" -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "deÄŸiÅŸiklikler çakışma imleyicileri veya boÅŸluk hataları doÄŸuruyorsa uyar" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "" "sıkışık özet; örn. oluÅŸumlar, yeniden adlandırmalar ve kip deÄŸiÅŸiklikleri" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "yalnızca deÄŸiÅŸtirilen dosyaların adlarını göster" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "yalnızca deÄŸiÅŸtirilen dosyaların adlarını ve durumlarını göster" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<geniÅŸlik>[,<ad-geniÅŸlik>[,<sayım>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "diffstat oluÅŸtur" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<geniÅŸlik>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "diffstat'ı verilmiÅŸ bir geniÅŸlik ile oluÅŸtur" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "diffstat'ı verilmiÅŸ bir ad geniÅŸliÄŸi ile oluÅŸtur" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "diffstat'ı verilmiÅŸ bir grafik geniÅŸliÄŸi ile oluÅŸtur" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<sayım>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "diffstat'ı kısıtlı satırlarla oluÅŸtur" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "diffstat içinde ufak özet oluÅŸtur" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "uygulanabilir bir ikili diff çıktısı ver" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "\"index\" satırlarında tam ön ve songörüntü nesne adlarını göster" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "renkli diff göster" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<tür>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" msgstr "" "diff'teki boÅŸluk hatalarını 'context', 'old' veya 'new' satırlarında vurgula" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3482,88 +3523,88 @@ msgstr "" "--raw veya --numstat içinde yol adlarını tahrip etme ve çıktı alanı " "sonlandırıcıları olarak NUL'ları kullan" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<önek>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "\"a/\" yerine verilmiÅŸ kaynak önekini göster" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "\"b/\"yerine verilmiÅŸ kaynak önekini göster" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "çıktının her satırının başına ek bir önek ekle" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "hiçbir kaynak ve hedef önekini gösterme" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "diff parçaları arasındaki baÄŸlamı belirtilen satır sayısı kadar göster" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<karakter>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "yeni satırı belirtmek için '+' yerine kullanılacak karakteri belirle" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "eski satırı belirtmek için '-' yerine kullanılacak karakteri belirle" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "baÄŸlam belirtmek için ' ' yerine kullanılacak karakteri belirle" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Diff yeniden adlandırma seçenekleri" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "tam yeniden yazım deÄŸiÅŸikliklerini silme ve oluÅŸturma olarak ayır" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "yeniden adlandırmaları algıla" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "silmeler için öngörüntüyü atla" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "kopyaları algıla" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "deÄŸiÅŸtirilmemiÅŸ dosyaları kopyaları bulmak için kaynak olarak kullan" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "yeniden adlandırma algılamasını devre dışı bırak" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "boÅŸ ikili nesneleri yeniden adlandırma kaynağı olarak kullan" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "" "bir dosyanın geçmiÅŸini listelemeyi yeniden adlandırmaların ötesinde sürdür" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3571,218 +3612,218 @@ msgstr "" "eÄŸer yeniden adlandırma/kopyalama hedeflerinin sayısı verilen sınırı aÅŸarsa " "yeniden adlandırma/kopyalama algılamasını önle" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Diff algoritma seçenekleri" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "olabilecek en küçük diff'i üret" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "satırları karşılaÅŸtırırken boÅŸlukları yok say" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "boÅŸluk sayısındaki deÄŸiÅŸiklikleri yok say" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "satır sonundaki boÅŸluk deÄŸiÅŸikliklerini yok say" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "satır sonundaki satırbaşı karakterini yok say" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "satırlarının tümü boÅŸ olan deÄŸiÅŸiklikleri yok say" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "diff parça sınırlarını kolay okuma için bulgusal olarak kaydır" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "diff'i \"patience diff\" algoritmasını kullanarak oluÅŸtur" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "diff'i \"histogram diff\" algoritmasını kullanarak oluÅŸtur" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<algoritma>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "bir diff algoritması seç" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<metin>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "diff'i \"anchored diff\" algoritmasını kullanarak oluÅŸtur" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<kip>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "" "sözcük diff'ini deÄŸiÅŸtirilen sözcükleri sınırlandırmak için <kip> kullanarak " "göster" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<ifade>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "bir sözcüğün ne olduÄŸuna karar vermek için <ifade> kullan" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "ÅŸuna eÅŸdeÄŸer: --word-diff=color --word-diff-regex=<ifade>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "taşınan kod satırları farklı renklendirilir" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "boÅŸluklar --color-moved içinde nasıl yok sayılır" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "DiÄŸer diff seçenekleri" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "altdizinden çalıştırıldığında dışarıdaki deÄŸiÅŸiklikleri hariç tut ve " "göreceli yolları göster" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "tüm dosyaları metin olarak varsay" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "iki girdiyi deÄŸiÅŸtir, diff'i tersine döndür" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "ayrımlar varsa 1 ile, yoksa 0 ile çık" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "tüm program çıktısını devre dışı bırak" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "bir dış diff yardımcısının çalıştırılmasına izin ver" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" "ikili dosyaları karşılaÅŸtırırken dış metin dönüştürme süzgeçlerini çalıştır" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<ne-zaman>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "diff oluÅŸtururken altmodüllere olan deÄŸiÅŸiklikleri yok say" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<biçim>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "altmodüllerdeki deÄŸiÅŸikliklerin nasıl gösterileceÄŸini belirt" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "indeksten 'git add -N' girdilerini gizle" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "indekste 'git add -N' girdilerine gerçekmiÅŸ gibi davran" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<dizi>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" msgstr "belirtilen dizinin görülme sayısını deÄŸiÅŸtiren ayrımlara bak" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" msgstr "belirtilen düzenli ifadenin görülme sayısını deÄŸiÅŸtiren ayrımlara bak" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "deÄŸiÅŸiklik setinde -S veya -G içeren tüm deÄŸiÅŸiklikleri göster" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "-S içindeki <dizi>'yi geniÅŸletilmiÅŸ POSIX düzenli ifadesi olarak iÅŸle" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "dosyaların çıktıda hangi sırayla görüneceÄŸini denetle" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<nesne-no>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" msgstr "belirtilen nesnenin görülme sayısını deÄŸiÅŸtiren ayrımlara bak" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "dosyaları diff türüne göre seç" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<dosya>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "belirli bir dosyaya çıktı ver" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "Kesin olmayan yeniden adlandırma algılaması çok fazla dosya olmasından " "dolayı atlandı." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "" "Çok fazla dosya olmasından dolayı yalnızca deÄŸiÅŸtirilen yollardan kopyalar " "bulundu." -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3799,59 +3840,59 @@ msgstr "orderfile '%s' okunamadı" msgid "Performing inexact rename detection" msgstr "Kesin olmayan yeniden adlandırma algılaması gerçekleÅŸtiriliyor" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "yol belirteci '%s' git'in tanıdığı herhangi bir dosya ile eÅŸleÅŸmedi" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "tanımlanamayan dizgi: '%s'" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "tanımlanamayan negatif dizgi: '%s'" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "sparse-checkout dosyanızın sorunları olabilir: '%s' dizgisi yinelenmiÅŸ" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "koni dizgi eÅŸleÅŸmesi devre dışı bırakılıyor" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "%s bir 'exclude' dosyası olarak kullanılamıyor" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "'%s' dizini açılamadı" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "çekirdek adı ve bilgisi alınamadı" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "izlenmeyen önbellek bu sistemde veya konumda devre dışı bırakılmış" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "%s deposundaki indeks dosyası hasarlı" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "%s için dizinler oluÅŸturulamadı" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "git dizini '%s' konumundan '%s' konumuna göç ettirilemedi" @@ -3861,11 +3902,11 @@ msgstr "git dizini '%s' konumundan '%s' konumuna göç ettirilemedi" msgid "hint: Waiting for your editor to close the file...%c" msgstr "Ä°pucu: Düzenleyicinizin dosyayı kapatması bekleniyor...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "İçerik süzülüyor" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "'%s' dosyasının bilgileri alınamadı" @@ -3885,227 +3926,245 @@ msgstr "GIT_DIR ÅŸuna ayarlanamadı: '%s'" msgid "too many args to run %s" msgstr "%s çalıştırmak için çok fazla deÄŸiÅŸken" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: sığ bir liste bekleniyordu" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack: sığ listeden sonra floÅŸ paketi bekleniyordu" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack: ACK/NAK bekleniyordu, floÅŸ paket alındı" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: ACK/NAK bekleniyordu, '%s' alındı" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "uzak konuma yazılamıyor" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc multi_ack_detailed gerektiriyor" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "geçersiz sığ satır: %s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "geçersiz sığ olmayan satır: %s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "nesne bulunamadı: %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "nesne içinde hata: %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "sığ bulunamadı: %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "sığ/sığ olmayan bekleniyordu, %s alındı" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "%s %d %s alındı" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "geçersiz gönderi %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "vazgeçiliyor" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "bitti" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "%s (%d) %s alındı" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "%s tamam olarak imleniyor" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "%s halihazırda var (%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack: yanbant çoÄŸullama çözücüsü ayrı çatallanamıyor" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "protokol hatası: hatalı paket üstbilgisi" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack: %s ayrı çatallanamıyor" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s baÅŸarısız oldu" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "yanbant çoÄŸullama çözücüsünde hata" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "Sunucu sürümü %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "Sunucu %s destekliyor" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "Sunucu sığ istemcileri desteklemiyor" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "Sunucu --shallow-since desteklemiyor" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "Sunucu --shallow-exclude desteklemiyor" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "Sunucu --deepen desteklemiyor" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "Sunucu bu deponun nesne türünü desteklemiyor" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "ortak gönderi yok" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack: getirme baÅŸarısız" #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "eÅŸleÅŸmeyen algoritmalar: istemci %s; sunucu %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "sunucu '%s' algoritmasını desteklemiyor" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "Sunucu sığ istekleri desteklemiyor" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "Sunucu süzgeç destekliyor" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "uzak konuma istek yazılamıyor" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "bölüm üstbilgisi '%s' okunurken hata" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "'%s' bekleniyordu, '%s' alındı" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "beklenmedik alındı satırı: '%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "alındılar iÅŸlenirken hata: %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "paket dosyasının 'ready'den sonra gönderilmesi gerekiyordu" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "'ready' \"yok\" iken baÅŸka hiçbir bölümün gönderilmemesi gerekiyordu" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "sığ bilgi iÅŸlenirken hata: %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "wanted-ref bekleniyordu, '%s' alındı" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "beklenmedik wanted-ref: '%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "aranan baÅŸvurular iÅŸlenirken hata: %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: yanıt sonu paketi bekleniyordu" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "eÅŸleÅŸen uzak dal ucu yok" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "uzak konum gereken tüm nesneleri göndermedi" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "böyle bir uzak baÅŸvuru yok: %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "Sunucu %s tanıtılmamış nesnesi için isteÄŸe izin vermiyor" @@ -4141,7 +4200,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s': %s okunamıyor" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4287,16 +4346,16 @@ msgstr[1] "" "\n" "Buna en yakın komutlar:" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<seçenekler>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4396,6 +4455,10 @@ msgstr "birlikte kullanımdan sonra bir ÅŸeyler bekleniyordu:" msgid "multiple filter-specs cannot be combined" msgstr "çoklu filter-specs birlikte kullanılamaz" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "depo biçimi kısımsal klonları desteklemesi için yükseltilemiyor" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4766,7 +4829,7 @@ msgstr "ekle/ekle" msgid "Skipped %s (merged same as existing)" msgstr "%s atlandı (mevcut ile aynı biçimde birleÅŸtirildi)" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "altmodül" @@ -4886,14 +4949,14 @@ msgstr "'%s' nesnesi ayrıştırılamadı" #: merge-recursive.c:3786 builtin/merge.c:705 builtin/merge.c:885 msgid "Unable to write index." -msgstr "Ä°ndeks yazılamadı." +msgstr "Ä°ndeks yazılamıyor." #: merge.c:41 msgid "failed to read the cache" msgstr "önbellek okunamadı" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "yeni indeks dosyası yazılamıyor" @@ -5141,21 +5204,21 @@ msgstr "nesne ayrıştırılamıyor: %s" msgid "hash mismatch %s" msgstr "saÄŸlama uyuÅŸmazlığı %s" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "%s boyutu alınamıyor" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "ofset paket dosyasının sonundan önce (bozuk .idx?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "ofset %s için paket indeksinin baÅŸlangıcından önce (hasarlı indeks?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "ofset %s için paket indeksinin sonundan ötede (kırpılmış index?)" @@ -5358,44 +5421,48 @@ msgid "unable to write delim packet" msgstr "sınırlandıran paket yazılamıyor" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "durumsuz ayırıcı paketi yazılamıyor" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "floÅŸ paketi yazımı baÅŸarısız" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "protokol hatası: olanaksız uzun satır" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "biçimlendirilmiÅŸ paket yazımı baÅŸarısız" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "paket yazımı baÅŸarısız - veri olabilecek en çok paket boyutunu aşıyor" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "paket yazımı baÅŸarısız" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "okuma hatası" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "uzak konum beklenmedik bir biçimde hattı kapattı" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "protokol hatası: hatalı satır uzunluÄŸu karakteri: %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "protokol hatası: hatalı satır uzunluÄŸu %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "uzak konum hatası: %s" @@ -5573,7 +5640,7 @@ msgstr "'%s' için sırasız hazırlama alanı girdileri" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5630,7 +5697,7 @@ msgstr "paylaşılan indeks '%s' tazelenemedi" msgid "broken index, expect %s in %s, got %s" msgstr "bozuk indeks, %s bekleniyordu (%s içinde), %s alındı" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "'%s' kapatılamadı" @@ -5814,7 +5881,7 @@ msgstr "" msgid "could not read '%s'." msgstr "'%s' okunamadı." -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "gitti" @@ -6039,7 +6106,7 @@ msgstr "'%s' konumunda hatalı oluÅŸturulmuÅŸ nesne" msgid "ignoring ref with broken name %s" msgstr "bozuk ada iye %s baÅŸvurusu yok sayılıyor" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "bozuk baÅŸvuru %s yok sayılıyor" @@ -6069,95 +6136,109 @@ msgstr "hatalı oluÅŸturulmuÅŸ nesne adı %s" msgid "option `%s' must point to a commit" msgstr "'%s' bir gönderiye iÅŸaret etmeli" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "%s geçerli bir nesneye iÅŸaret etmiyor!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "'%s' alınamadı" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "geçersiz dal adı: %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "sarkan sembolik baÅŸvuru %s yok sayılıyor" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "'%s' yazma için açılamadı: %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "'%s' baÅŸvurusu okunamadı" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "'%s' baÅŸvurusu halihazırda var" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "'%s' yazılırken beklenmedik nesne numarası" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "ÅŸuraya yazılamadı: '%s'" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "'%s' yazma için açılamadı" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "'%s' silinirken beklenmedik nesne numarası" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "%s baÅŸvurusu için olan günlükte %s sonrasında boÅŸluk var" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "" "%s baÅŸvurusu için olan günlük %s konumunda beklenmedik bir biçimde sonlandı" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "%s için olan günlük boÅŸ" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "hatalı ada iye '%s' baÅŸvurusunu güncelleme reddediliyor" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "'%s' baÅŸvurusu için update_ref baÅŸarısız oldu: %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "'%s' baÅŸvurusu için birden çok güncellemeye izin verilmiyor" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "baÅŸvuru güncellemeleri karantina ortamı içinde yasak" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "baÅŸvuru güncellemeleri kanca tarafından iptal edildi" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' mevcut; '%s' oluÅŸturulamıyor" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "'%s' ve '%s' aynı anda iÅŸlenemiyor" @@ -6441,7 +6522,7 @@ msgstr[1] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (uzak dalı kendi dalınıza birleÅŸtirmek için \"git pull\" kullanın)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "beklenen nesne adı '%s' ayrıştırılamıyor" @@ -6568,20 +6649,20 @@ msgstr "HEAD revizyonu saptanamadı" msgid "failed to find tree of %s" msgstr "%s ögesinin aÄŸacı bulunamadı" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "geçerli dalınız bozuk gibi görünüyor" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "geçerli dalınız '%s' içinde henüz bir gönderi yok" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent, --bisect ile uyumsuz" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L, -p ve -s dışında baÅŸka diff biçimlerini henüz desteklemiyor" @@ -6621,11 +6702,15 @@ msgstr "uzak konum açımı baÅŸarısız: %s" msgid "failed to sign the push certificate" msgstr "itme sertifikası imzalanamadı" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "alıcı uç bu deponun saÄŸlama algoritmasını desteklemiyor" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "alıcı uç --signed itmeyi desteklemiyor" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6633,11 +6718,11 @@ msgstr "" "alıcı uç --signed itmeyi desteklemediÄŸinden dolayı bir itme sertifikası " "gönderilmiyor" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "alıcı uç --atomic itmeyi desteklemiyor" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "alıcı uç itme seçeneklerini desteklemiyor" @@ -6758,7 +6843,7 @@ msgstr "'%.*s' içinde bir anahtar yok" msgid "unable to dequote value of '%s'" msgstr "'%s' ögesinin tırnakları kaldırılamıyor" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7591,84 +7676,84 @@ msgstr "geçersiz yapılandırma kullanılarak çalışma aÄŸacı kurulamıyor" msgid "this operation must be run in a work tree" msgstr "bu iÅŸlem bir çalışma aÄŸacı içinde çalıştırılmalı" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Beklenen git repo sürümü <= %d, %d bulundu" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "bilinmeyen depo geniÅŸletmeleri bulundu:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "'%s' açılırken hata" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "bir .git dosyası olabilmek için çok büyük: '%s'" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "%s okunurken hata" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "geçersiz gitfile biçimi: %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "gitfile içinde yol yok: %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "bir git deposu deÄŸil: %s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' çok büyük" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "bir git deposu deÄŸil: '%s'" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "'%s' konumuna chdir yapılamıyor" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "cwd'ye geri dönülemiyor" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "'%*s%s%s' bilgileri alınamadı" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Åžu anki çalışma dizini okunamıyor" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "ÅŸuraya deÄŸiÅŸtirilemiyor: '%s'" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "bir git deposu (veya üst dizinlerinden birisi) deÄŸil: %s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7678,7 +7763,7 @@ msgstr "" "Dosya sistemi sınırında duruluyor (GIT_DISCOVERY_ACROSS_FILESYSTEM " "ayarlanmamış)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7687,15 +7772,15 @@ msgstr "" "core.sharedRepository dosya kipi deÄŸeri ile sorun (0%.3o).\n" "Dosyaların sahibinin her zaman okuma ve yazma izni olması gerekir." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "/dev/null açılması veya açıklayıcı çoÄŸaltılması baÅŸarısız" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "çatallama baÅŸarısız" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "setsid baÅŸarısız" @@ -7876,7 +7961,7 @@ msgstr "%s nesnesi üzerinde deflateEnd baÅŸarısız oldu (%d)" msgid "confused by unstable object source data for %s" msgstr "%s için olan nesne kaynak verisinden dolayı kafa karışıklığı" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "%s üzerinde utime() baÅŸarısız" @@ -8053,43 +8138,43 @@ msgid "invalid object name '%.*s'." msgstr "geçersiz nesne adı: '%.*s'" #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/sn" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/sn" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/sn" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8097,14 +8182,14 @@ msgstr[0] "%u bayt" msgstr[1] "%u bayt" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u bayt/sn" msgstr[1] "%u bayt/sn" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "'%s' düzenlenemedi" @@ -8340,7 +8425,7 @@ msgstr "birden çok %s" #: trailer.c:730 #, c-format msgid "empty trailer token in trailer '%.*s'" -msgstr "'%.*s' artbilgisi içinde boÅŸ artbilgi simgesi" +msgstr "'%.*s' artbilgisi içinde boÅŸ artbilgi jetonu" #: trailer.c:750 #, c-format @@ -8351,7 +8436,7 @@ msgstr "'%s' girdi dosyası okunamadı" msgid "could not read from stdin" msgstr "stdin'den okunamadı" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "%s dosya bilgileri alınamadı" @@ -8375,20 +8460,20 @@ msgstr "geçici dosya açılamadı" msgid "could not rename temporary file to %s" msgstr "geçici dosya adı %s olarak deÄŸiÅŸtirilemedi" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "uzak konum yardımcısına tam yazım baÅŸarısız" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "'%s' için uzak konum yardımcısı bulunamadı" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "uzak konum yardımcısı çıktısı için dosya açıklayıcısı çoÄŸaltılamıyor" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8397,157 +8482,162 @@ msgstr "" "bilinmeyen zorunlu %s yeteneÄŸi; bu uzak konum yardımcısı büyük olasılıkla " "Git'in daha yeni bir sürümüne gereksinim duyuyor" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "bu uzak konum yardımcısı refspec yapabilirliÄŸini yerine getirmeli" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s beklenmedik bir biçimde ÅŸunu söyledi: '%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s ayrıca ÅŸunu kilitledi: %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "fast-import çalıştırılamadı" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "fast-import çalıştırılırken hata" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "%s baÅŸvurusu okunamadı" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "'connect'e bilinmeyen yanıt: %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "uzak servis yolu ayarlama protokolce desteklenmiyor" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "geçersiz uzak konum servis yolu" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "iÅŸlem protokol tarafından desteklenmiyor" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "%s altservisine baÄŸlanamıyor" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "tamam/hata bekleniyordu, yardımcı ÅŸunu söyledi: '%s'" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "yardımcı %s beklenmedik durumu bildirdi" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "%s yardımcısı 'dry-run' desteklemiyor" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "%s yardımcısı --signed desteklemiyor" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "%s yardımcısı --signed=if-asked desteklemiyor" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "%s yardımcısı --atomic desteklemiyor" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "%s yardımcısı 'push-option' desteklemiyor" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "remote-helper itme desteklemiyor; baÅŸvuru belirteci gerekli" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "%s yardımcısı 'force' desteklemiyor" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "fast-export çalıştırılamadı" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "fast-export çalıştırılırken hata" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "Ortak baÅŸvuru yok ve hiç belirtilmemiÅŸ; bir ÅŸey yapılmayacak.\n" -"Belki de bir dal belirtmelisiniz, örneÄŸin: 'master'.\n" +"Belki de bir dal belirtmelisiniz.\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "desteklenmeyen nesne biçimi '%s'" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "baÅŸvuru listesinde hatalı oluÅŸturulmuÅŸ yanıt: %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "read(%s) baÅŸarısız oldu" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "write(%s) baÅŸarısız oldu" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "%s iÅŸ parçacığı baÅŸarısız oldu" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "%s iÅŸ parçacığı eklenemedi: %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "veri kopyalama için iÅŸ parçacığı baÅŸlatılamıyor: %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "%s iÅŸlemi bekleyemedi" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "%s iÅŸlemi baÅŸarısız oldu" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "veri kopyalama için iÅŸ parçacığı baÅŸlatılamıyor" @@ -8561,33 +8651,33 @@ msgstr "'%s' üst kaynağı '%s' (kaynak: '%s') olarak ayarlanacak\n" msgid "could not read bundle '%s'" msgstr "'%s' demeti okunamadı" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "transport: Geçersiz derinlik seçeneÄŸi '%s'" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "ayrıntılar için 'git help config' içinde protocol.version'a bakın" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "sunucu seçenekleri protokol sürüm 2 veya sonrasını gerektirir" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "transport.color.* yapılandırması ayrıştırılamadı" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "protokol v2 desteÄŸi henüz yerine getirilmedi" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "'%s' yapılandırması için bilinmeyen deÄŸer: %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "'%s' taşıyıcısına izin verilmiyor" @@ -8596,7 +8686,7 @@ msgstr "'%s' taşıyıcısına izin verilmiyor" msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync artık desteklenmiyor" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8605,7 +8695,7 @@ msgstr "" "AÅŸağıdaki altmodül yolları baÅŸka hiçbir uzak konumda bulunamayan\n" "deÄŸiÅŸiklikler içeriyor:\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8632,11 +8722,11 @@ msgstr "" "kullanın.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Ä°ptal ediliyor" -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "gereken tüm altmodüller itilemedi" @@ -8914,7 +9004,7 @@ msgstr "" msgid "Updating index flags" msgstr "Ä°ndeks bayrakları güncelleniyor" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "getir deÄŸiÅŸkenlerinden sonra floÅŸ bekleniyordu" @@ -8951,47 +9041,47 @@ msgstr "geçersiz '..' yol kesimi" msgid "Fetching objects" msgstr "Nesneler getiriliyor" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "'%s' okunamadı" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "ana çalışma aÄŸacındaki '%s' depo dizini deÄŸil" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "'%s' dosyası çalışma aÄŸacı konumuna olan tam yolu içermiyor" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' mevcut deÄŸil" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' bir .git dosyası deÄŸil, hata kodu %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' ÅŸuna geri iÅŸaret etmiyor: '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "'%s' okuma ve yazma için açılamadı" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "'%s' eriÅŸilemiyor" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "geçerli çalışma dizini alınamıyor" @@ -9380,39 +9470,44 @@ msgstr "Åžu anda ikili arama yapıyorsunuz" msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (ilk dala dönmek için \"git bisect reset\" kullanın)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "Ä°zlenen dosyaların %%%d mevcut olduÄŸu aralıklı bir çıkıştasınız." + +#: wt-status.c:1733 msgid "On branch " msgstr "Ãœzerinde bulunulan dal: " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "ÅŸunun üzerine etkileÅŸimli yeniden temellendirme sürmekte: " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "ÅŸunun üzerine yeniden temellendirme sürmekte: " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Åžu anda bir dal üzerinde deÄŸil." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Ä°lk gönderi" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "Henüz bir gönderi yok" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "Ä°zlenmeyen dosyalar" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "Yok sayılan dosyalar" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9423,32 +9518,32 @@ msgstr "" "bunu hızlandırabilir, ancak yeni dosyaları eklemeyi unutmamanız\n" "konusunda dikkatli olmalısınız (ek bilgi için 'git help status')." -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "Ä°zlenmeyen dosyalar listelenmiyor%s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (izlenmeyen dosyaları göstermek için -u seçeneÄŸini kullanın)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "DeÄŸiÅŸiklik yok" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "Gönderiye eklenen deÄŸiÅŸiklik yok (\"git add\" ve/veya \"git commit -a\" " "kullanın)\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "Gönderiye eklenen deÄŸiÅŸiklik yok\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9457,65 +9552,65 @@ msgstr "" "gönderiye bir ÅŸey eklenmedi ancak izlenmeyen dosyalar var (izlemek için\n" "\"git add\" kullanın)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "gönderiye bir ÅŸey eklenmedi ancak izlenmeyen dosyalar var\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "Gönderilecek bir ÅŸey yok (dosyalar oluÅŸturun/kopyalayın ve izlemek için " "\"git add\" kullanın)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "Gönderilecek bir ÅŸey yok\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "Gönderilecek bir ÅŸey yok (izlenmeyen dosyaları göstermek için -u kullanın)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "Gönderilecek bir ÅŸey yok, çalışma aÄŸacı temiz\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "Åžurada henüz bir gönderi yok: " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (dal yok)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "deÄŸiÅŸik" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "ÅŸunun arkasında: " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "ÅŸunun önünde: " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "%s yapılamıyor: Hazırlanmamış deÄŸiÅŸiklikleriniz var." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "Ek olarak, indeksiniz gönderilmemiÅŸ deÄŸiÅŸiklikler içeriyor." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "%s yapılamıyor: Ä°ndeksiniz gönderilmemiÅŸ deÄŸiÅŸiklikler içeriyor." @@ -9594,7 +9689,7 @@ msgstr "sınama turu" msgid "interactive picking" msgstr "etkileÅŸimli seçim" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "parçaları etkileÅŸimli olarak seç" @@ -9725,12 +9820,12 @@ msgstr "" msgid "--chmod param '%s' must be either -x or +x" msgstr "--chmod param '%s' ya -x ya da +x olmalıdır" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file yol belirteci deÄŸiÅŸkenleri ile uyumsuz" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul, --pathspec-from-file gerektiriyor" @@ -9997,7 +10092,7 @@ msgstr "tarihi seçenek -- no-op" msgid "allow fall back on 3way merging if needed" msgstr "gerekirse 3 yönlü birleÅŸtirmeye geri çekilmeye izin ver" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "sessiz ol" @@ -10053,7 +10148,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "biçim" @@ -10348,111 +10443,115 @@ msgstr "" "'git bisect terms' için geçersiz deÄŸiÅŸken %s.\n" "Desteklenen seçenekler: --term-good|--term-old ve --term-bad|--term-new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' geçerli bir terim deÄŸil" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "tanımlanamayan seçenek: '%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "'%s' geçerli bir revizyon deÄŸil gibi görünüyor" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "hatalı HEAD - Bana bir HEAD gerek" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "'%s' çıkış yapımı baÅŸarısız. 'git bisect start <geçerli-dal>' deneyin." -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "cg-seek yapılmış bir aÄŸaçta ikili arama yapılmayacak" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "hatalı HEAD - tuhaf sembolik baÅŸvuru" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "geçersiz baÅŸvuru: '%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "'git bisect next' gerçekleÅŸtir" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "terimleri .git/BISECT_TERMS konumuna yaz" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "ikili arama durumunu temizle" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "beklenen baÅŸvurular için denetle" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "ikili arama durumunu sıfırla" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "ikili arama durumunu BISECT_LOG içine yaz" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "bir ikili arama durumundaki terimleri denetle ve ayarla" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "iyi veya kötü terimlerin olup olmadığını denetle" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "ikili arama terimlerini yazdır" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "ikili arama oturumunu baÅŸlat" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "geçerli gönderiyi çıkış yapmak yerine BISECT_HEAD güncelle" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "BISECT_WRITE için günlük yok" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms iki deÄŸiÅŸken gerektiriyor" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state bir deÄŸiÅŸken gerektirmiyor" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset bir deÄŸiÅŸken veya gönderi gerektirmiyor" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write 4 veya 5 deÄŸiÅŸken gerektiriyor" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms 3 deÄŸiÅŸken gerektiriyor" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check 2 veya 3 deÄŸiÅŸken gerektiriyor" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms 0 veya 1 deÄŸiÅŸken gerektiriyor" @@ -10705,7 +10804,7 @@ msgstr "HEAD için gönderi nesnesi aranamadı" #: builtin/branch.c:240 #, c-format msgid "Cannot delete branch '%s' checked out at '%s'" -msgstr "Åžurada çıkış yapılmış '%s' dalı silinemiyor: '%s'" +msgstr "'%s' dalı silinemiyor, ÅŸurada çıkış yapılmış: '%s'" #: builtin/branch.c:255 #, c-format @@ -11052,19 +11151,19 @@ msgstr "git bundle list-heads <dosya> [<baÅŸvuru-adı>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <dosya> [<baÅŸvuru-adı>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "ilerleme çubuÄŸunu gösterme" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "ilerleme çubuÄŸunu göster" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "ilerleme çubuÄŸunu nesne yazımı aÅŸaması sırasında göster" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "ilerleme çubuÄŸu gösterildiÄŸinde --all-progress'e benzer" @@ -11104,11 +11203,11 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<biçim>] | --batch-check[=<biçim>]) [--follow-" +"symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11142,7 +11241,7 @@ msgstr "ikili nesneler için nesne içeriÄŸi üzerinde textconv çalıştır" msgid "for blob objects, run filters on object's content" msgstr "ikili nesneler için nesne içeriÄŸi üzerinde süzgeçler çalıştır" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "ikili nesne" @@ -11203,8 +11302,8 @@ msgstr "dosya adlarını stdin'den oku" msgid "terminate input and output records by a NUL character" msgstr "girdi ve çıktı kayıtlarını bir NUL karakteri ile sonlandır" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "ilerleme bildirimini gizle" @@ -11296,7 +11395,7 @@ msgstr "içeriÄŸi geçici dosyalara yaz" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "dizi" @@ -11411,11 +11510,11 @@ msgstr "'%s' veya '%s', %s ile birlikte kullanılamaz" msgid "path '%s' is unmerged" msgstr "'%s' yolu birleÅŸtirilmemiÅŸ" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "önce geçerli indeksinizi çözmelisiniz" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11424,50 +11523,50 @@ msgstr "" "aÅŸağıdaki hazırlanmış deÄŸiÅŸiklikler içeren dosyalarla sürdürülemiyor:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "'%s' için baÅŸvuru günlüğü yapılamıyor: %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD konumu:" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "HEAD güncellenemiyor" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "'%s' dalı sıfırlandı.\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Halihazırda '%s' üzerinde\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "'%s' dalına geçildi ve sıfırlandı.\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Yeni '%s' dalına geçildi.\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "'%s' dalına geçildi.\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr "... ve %d daha.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11490,7 +11589,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11517,19 +11616,19 @@ msgstr[1] "" "\tgit branch <yeni-dal-adı> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "revizyonlarda gezinirken iç hata" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "Önceki HEAD konumu ÅŸuydu:" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Henüz doÄŸmamış bir dal üzerindesiniz" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11538,7 +11637,7 @@ msgstr "" "'%s' hem bir yerel dosya hem de bir izleme dalı olabilir.\n" "Lütfen -- (ve isteÄŸe baÄŸlı olarak --no-guess) kullanıp belirsizliÄŸi giderin." -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11558,51 +11657,51 @@ msgstr "" "isterseniz, örn. 'origin', yapılandırmanızda checkout.defaultsRemote=origin\n" "ayarını yapmayı düşünün." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' birden çok (%d) uzak izleme dalıyla eÅŸleÅŸti" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "yalnızca bir baÅŸvuru bekleniyordu" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "yalnızca bir baÅŸvuru bekleniyordu, %d verildi" -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "geçersiz baÅŸvuru: %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "baÅŸvuru bir aÄŸaca deÄŸil: %s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "bir dal bekleniyordu, '%s' etiketi alındı" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "bir dal bekleniyordu, '%s' uzak dal alındı" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "bir dal bekleniyordu, '%s' alındı" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "bir dal bekleniyordu, '%s' gönderisi alındı" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11610,7 +11709,7 @@ msgstr "" "BirleÅŸtirme yaparken dal deÄŸiÅŸtirilemiyor.\n" "\"git merge --quit\" veya \"git worktree add\" yapmayı düşünün." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11618,7 +11717,7 @@ msgstr "" "Bir \"am\" oturumunun ortasında dal deÄŸiÅŸtirilemiyor.\n" "\"git am --quit\" veya \"git worktree add\" yapmayı düşünün." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11626,7 +11725,7 @@ msgstr "" "Yeniden temellendirme yaparken dal deÄŸiÅŸtirilemiyor.\n" "\"git rebase --quit\" veya \"git worktree add\" yapmayı düşünün." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11634,7 +11733,7 @@ msgstr "" "Seç-al yaparken dal deÄŸiÅŸtirilemiyor.\n" "\"git cherry-pick --quit\" veya \"git worktree add\" yapmayı düşünün." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11642,145 +11741,145 @@ msgstr "" "Geri al yaparken dal deÄŸiÅŸtirilemiyor.\n" "\"git revert --quit\" veya \"git worktree add\" yapmayı düşünün." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "ikili arama yaparken dal deÄŸiÅŸtiriyorsunuz" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "dal deÄŸiÅŸtirilirken yollar kullanılamaz" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "dal deÄŸiÅŸtirilirken '%s' kullanılamaz" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s', '%s' ile birlikte kullanılamaz" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s', <baÅŸlama-noktası> alamaz" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Dal gönderi olmayan '%s' ögesine deÄŸiÅŸtirilemez" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "dal veya gönderi deÄŸiÅŸkeni eksik" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "durum belirtmeyi zorla" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "yeni dal ile bir 3 yönlü birleÅŸtirme gerçekleÅŸtir" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "stil" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "çakışma stili (birleÅŸtirme veya diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "adı verilen gönderide HEAD'i ayır" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "yeni dal için üstkaynak bilgisi ayarla" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "zorla çıkış yap (yerel deÄŸiÅŸiklikleri çöpe at)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "yeni dal" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "yeni üst ögesi olmayan dal" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "yok sayılan dosyaları güncelle (öntanımlı)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "" "verilen baÅŸvuruyu baÅŸka bir çalışma aÄŸacının tutup tutmadığını denetleme" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "birleÅŸtirilmeyen dosyalar için bizim sürümü çıkış yap" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "birleÅŸtirilmeyen dosyalar için onların sürümünü çıkış yap" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "yol belirteçlerini yalnızca aralıklı girdilere kısıtlama" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%c, -%c ve --orphan birlikte kullanılmaz" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p ve --overlay birlikte kullanılmaz" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track için bir dal adı gerekli" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "eksik dal adı; -%c deneyin" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "%s çözülemedi" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "geçersiz yol belirtimi" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "'%s' bir gönderi deÄŸil ve ondan bir '%s' dalı oluÅŸturulamaz" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach bir '%s' yol deÄŸiÅŸkeni almıyor" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file, --detach ile uyumsuz" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file, --patch ile uyumsuz" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11788,69 +11887,70 @@ msgstr "" "git checkout: --ours/--theirs, --force ve --merge indeks çıkışı yapılırken\n" "birlikte kullanılamaz" -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "eski durumuna getirilecek yolları belirtmelisiniz" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "dal" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "yeni bir dal oluÅŸtur ve çıkış yap" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "bir dal oluÅŸtur/sıfırla ve çıkış yap" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "yeni dal için baÅŸvuru günlüğü oluÅŸtur" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "'git checkout <böyle-bir-dal-yok>'a temkinli yaklaÅŸ (öntanımlı)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "yerpaylaşım kipini kullan (öntanımlı)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "yeni bir dal oluÅŸtur ve ona geç" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "bir dal oluÅŸtur/sıfırla ve ona geç" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "'git switch <böyle-bir-dal-yok>'a temkinli yaklaÅŸ" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "yerel deÄŸiÅŸiklikleri çöpe at" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "çıkış yapılacak aÄŸacımsı" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "indeksi eski durumuna getir" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "çalışma aÄŸacını eski durumuna getir" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "birleÅŸtirilmemiÅŸ girdileri yok say" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "yerpaylaşım kipini kullan" @@ -12012,11 +12112,7 @@ msgstr "yok sayılan dosyalar da kaldırıldı" msgid "remove only ignored files" msgstr "yalnızca yok sayılan dosyaları kaldır" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x ve -X birlikte kullanılamaz" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -12024,7 +12120,7 @@ msgstr "" "clean.requireForce 'true' olarak ayarlanmış ve ne -i, ne -n, ne de -f " "verilmiÅŸ; temizleme reddediliyor" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -12032,6 +12128,10 @@ msgstr "" "clean.requireForce öntanımlı olarak 'true' ve ne -i, ne -n, ne de -f " "verilmiÅŸ; temizleme reddediliyor" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x ve -X birlikte kullanılamaz" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<seçenekler>] [--] <depo> [<dizin>]" @@ -12040,7 +12140,7 @@ msgstr "git clone [<seçenekler>] [--] <depo> [<dizin>]" msgid "don't create a checkout" msgstr "çıkış yapma!" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "çıplak bir depo oluÅŸtur" @@ -12072,11 +12172,11 @@ msgstr "klon içerisindeki altmodülleri ilklendir" msgid "number of submodules cloned in parallel" msgstr "paralelde klonlanan altmodüllerin sayısı" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "ÅŸablon dizini" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "ÅŸablonların kullanılacağı dizin" @@ -12090,8 +12190,8 @@ msgstr "baÅŸvuru deposu" msgid "use --reference only while cloning" msgstr "--reference'ı yalnızca klonlarken kullan" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "ad" @@ -12116,7 +12216,7 @@ msgstr "derinlik" msgid "create a shallow clone of that depth" msgstr "verilen derinlikte sığ bir depo oluÅŸtur" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "zaman" @@ -12147,11 +12247,11 @@ msgstr "etiket klonlama ve sonraki getirmeler de onları izlemesin" msgid "any cloned submodules will be shallow" msgstr "klonlanan altmodüller sığ olacak" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "git dizini" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "git dizinini çalışma aÄŸacından ayır" @@ -12281,7 +12381,7 @@ msgstr "temizlik için yeniden paketlenemiyor" msgid "cannot unlink temporary alternates file" msgstr "geçici alternatifler dosyasının baÄŸlantısı kesilemiyor" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "Çok fazla deÄŸiÅŸken." @@ -12298,85 +12398,85 @@ msgstr "--bare ve --origin %s seçenekleri birbiriyle uyumsuz." msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare ve --separate-git-dir birbiriyle uyumsuz." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "'%s' deposu mevcut deÄŸil" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "%s derinliÄŸi pozitif bir sayı deÄŸil" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "Hedef yolu '%s' halihazırda mevcut ve boÅŸ bir dizin deÄŸil." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "Çalışma aÄŸacı '%s' halihazırda mevcut." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "ÅŸunun öncü dizinleri oluÅŸturulamadı: '%s'" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "'%s' çalışma aÄŸacı dizini oluÅŸturulamadı" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "'%s' çıplak deposuna klonlanıyor...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klonlama konumu: '%s'...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" msgstr "" "clone --recursive hem --reference hem --reference-if-able ile uyumlu deÄŸil" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth yerel klonlarda yok sayılır; yerine file:// kullanın." -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "--shallow-since yerel klonlarda yok sayılır; yerine file:// kullanın." -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" "--shallow-exclude yerel klonlarda yok sayılır; yerine file:// kullanın." -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "--filter yerel klonlarda yok sayılır; yerine file:// kullanın." -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "kaynak depo sığ, --local yok sayılıyor" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local yok sayıldı" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "%s uzak dalı %s üstkaynağında bulunamadı" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "BoÅŸ bir depoyu klonlamış görünüyorsunuz." @@ -12412,13 +12512,13 @@ msgstr "sütunlar arasındaki dolgu boÅŸluÄŸu" msgid "--command must be the first argument" msgstr "--command ilk deÄŸiÅŸken olmalı" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <nsndzn>] [--shallow] [--[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12428,83 +12528,92 @@ msgstr "" "split[=<strateji>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <bölme seçenekleri>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "'%s' ile eÅŸleÅŸen nesne dizini bulunamadı" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "dizin" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "GrafiÄŸin depolanacağı nesne dizini" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "commit-graph parçalara bölünmüşse yalnızca uç dosyayı doÄŸrula" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "commit-graph '%s' açılamadı" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "tanımlanamayan --split deÄŸiÅŸkeni, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "beklenmedik onaltılık olmayan nesne kimliÄŸi: %s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "geçersiz nesne: %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "tüm baÅŸvurularda gezinmeyi baÅŸlat" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "stdin tarafından listelenen paket indekslerini tara" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "stdin tarafından listelenen tüm gönderilerde gezinmeyi baÅŸlat" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "halihazırda commit-graph dosyasında bulunan tüm gönderileri içer" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "deÄŸiÅŸtirilen yollar için hesaplamayı etkinleÅŸtir" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "artan bir commit-graph dosyasının yazımına izin ver" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "" "bir temel olmayan parçalara bölünmüş commit-graph içinde en çok olabilecek " "gönderi sayısı" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "" "bölünmüş bir commit-graph'ın iki düzeyi arasında olabilecek en büyük oran" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "yalnızca verilen bir tarihten daha eski dosyaların hükmünü kaldır" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "" "--reachable, --stdin-commits veya --stdin-packs'ten en çok birini kullan" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "beklenmedik onaltılık olmayan nesne kimliÄŸi: %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "Girdiden gönderiler toplanıyor" #: builtin/commit-tree.c:18 msgid "" @@ -12910,7 +13019,7 @@ msgid "version" msgstr "sürüm" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "makine tarafından okunabilir çıktı" @@ -12923,8 +13032,8 @@ msgid "terminate entries with NUL" msgstr "girdileri NUL ile sonlandır" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "kip" @@ -13117,7 +13226,7 @@ msgstr "gönderi iletisi okunamadı: %s" #: builtin/commit.c:1659 #, c-format msgid "Aborting commit due to empty commit message.\n" -msgstr "Gönderi iletisinin boÅŸ olması nedeniyle gönderi iptal ediliyor.\n" +msgstr "Gönderi iletisi boÅŸ olduÄŸundan gönderi iptal ediliyor.\n" #: builtin/commit.c:1664 #, c-format @@ -13619,35 +13728,45 @@ msgstr "--dirty, gönderimsilerle uyumsuz" msgid "--broken is incompatible with commit-ishes" msgstr "--broken, gönderimsilerle uyumsuz" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s': Sıradan bir dosya veya sembolik baÄŸ deÄŸil" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "geçersiz seçenek: %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: birleÅŸtirme temeli yok" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "Bir git deposu deÄŸil" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "geçersiz nesne '%s' verildi" -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "ikiden çok ikili nesne verildi: '%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "ele alınmayan nesne '%s' verildi" +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s: çoklu birleÅŸtirme temelleri, %s kullanılıyor" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<seçenekler>] [<gönderi> [<gönderi>]] [--] [<yol>...]" @@ -13798,84 +13917,105 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "" "Hata: İç içe geçmiÅŸ etiketler --mark-tags belirtilmediÄŸi sürece dışa " "aktarılamaz." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "--anonymize-map jetonu boÅŸ olamaz" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "<n> nesneden sonra ilerlemeyi göster" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "imzalanan etiketlerin nasıl iÅŸleneceÄŸini seçin" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "nesnelerce süzülen etiketlerin nasıl iÅŸleneceÄŸini seçin" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "baÅŸka bir kodlamaya iye gönderi iletilerinin nasıl iÅŸleneceÄŸini seçin" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "imleri bu dosyaya boÅŸalt" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "imleri bu dosyadan içe aktar" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "eÄŸer varsa bu dosyadan imleri içe aktar" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "etiketlerin bir etiketleyicisi yoksa varmış gibi davran" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "her gönderi için tüm aÄŸacın çıktısını ver" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "akışı sonlandırmak için 'done' özelliÄŸini kullan" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "ikili nesne verisi çıktısını atla" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "baÅŸvuru belirteci" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "baÅŸvuru belirtecini dışa aktarılan baÅŸvurulara aktar" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "çıktı kimliÄŸini gizle" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "kimden:kime" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "<kimden> ve <kime>'yi anonimleÅŸtirilmiÅŸ çıktıda dönüştür" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "'fast-export' akışında olmayan üst ögelere nesne numarası ile baÅŸvur" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "ikili nesnelerin/gönderilerin orijinal nesne numaralarını göster" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "etiketleri im numaralarıyla adlandır" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map, --anonymize olmadan bir anlam ifade etmiyor" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "Hem --import-marks ve hem --import-marks-if-exists aktarılamadı" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "Kilit dosyası oluÅŸturuldu ancak raporlanmadı: %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<seçenekler>] [<depo> [<bÅŸvr-blrtç>...]]" @@ -14200,41 +14340,41 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Bir etiket adı belirtmeniz gerekiyor." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "--deepen için negatif derinlik desteklenmiyor" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen ve --depth birlikte kullanılamaz" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth ve --unshallow birlikte kullanılamaz" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "tam bir depo üzerinde --unshallow bir anlam ifade etmiyor" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all bir depo deÄŸiÅŸkeni almıyor" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all baÅŸvuru belirteçleri ile birlikte bir anlam ifade etmiyor" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "Böyle bir uzak konum veya uzak konum grubu yok: %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "Bir grubu getirme ve baÅŸvuru belirteçleri tanımlama bir anlam ifade etmiyor" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14687,8 +14827,8 @@ msgstr "geçersiz belirtilen iÅŸ parçacığı sayısı (%d), %s için" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "iÅŸ parçacığı desteÄŸi yok, %s yok sayılıyor" @@ -14918,11 +15058,11 @@ msgstr "--untracked, --recurse-submodules ile desteklenmiyor" msgid "invalid option combination, ignoring --threads" msgstr "geçersiz seçenek birleÅŸtirmesi, --threads yok sayılıyor" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "iÅŸ parçacığı desteÄŸi yok, --threads yok sayılıyor" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "geçersiz belirtilen iÅŸ parçacığı sayısı (%d)" @@ -15125,7 +15265,7 @@ msgstr "girdide okuma hatası" msgid "used more bytes than were available" msgstr "kullanılabilir olandan daha çok bayt kullanıldı" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "paket off_t'nin geçerli tanımı için çok büyük" @@ -15196,8 +15336,8 @@ msgstr "ciddi ÅŸiÅŸirme programı tutarsızlığı" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "%s Ä°LE SHA1 ÇARPIÅžMASI BULUNDU!" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "%s okunamıyor" @@ -15258,7 +15398,7 @@ msgstr "parse_pack_objects() içindeki karmaÅŸa akıl almaz düzeyde" msgid "Resolving deltas" msgstr "Deltalar çözülüyor" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "iÅŸ parçacığı oluÅŸturulamadı: %s" @@ -15323,58 +15463,67 @@ msgstr "paket dosyası depolanamıyor" msgid "cannot store index file" msgstr "indeks dosyası depolanamıyor" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "hatalı pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Mevcut paket dosyası '%s' açılamıyor" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "'%s' için mevcut paket idx dosyası açılamıyor" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "delta deÄŸil: %d nesne" msgstr[1] "delta deÄŸil: %d nesne" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "zincir uzunluÄŸu = %d: %lu nesne" msgstr[1] "zincir uzunluÄŸu = %d: %lu nesne" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "Åžu anki çalışma dizinine geri gelinemiyor" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "hatalı %s" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "bilinmeyen saÄŸlama algoritması '%s'" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin, --stdin olmadan kullanılamaz" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin bir git dizini gerektirir" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format, --stdin olmadan kullanılamaz" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify ile bir paket dosyası adı verilmedi" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "paket nesnelerinde fsck hatası" @@ -15418,51 +15567,56 @@ msgstr "ÅŸablonlar %s içinde bulunamadı" msgid "not copying templates from '%s': %s" msgstr "ÅŸablonlar '%s' konumundan kopyalanmıyor: %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "geçersiz baÅŸlangıç dalı adı: '%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "%d dosya türü iÅŸlenemiyor" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "%s ÅŸuraya taşınamıyor: %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "depoyu baÅŸka bir saÄŸlama ile yeniden ilklendirme deneniyor" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "bilinmeyen saÄŸlama algoritması '%s'" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s halihazırda var" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init: --initial-branch=%s yok sayıldı" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "%s%s içindeki mevcut paylaşılan Git deposu yeniden ilklendirildi\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "%s%s içindeki mevcut Git deposu yeniden ilklendirildi\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "%s%s içinde paylaşılan boÅŸ Git deposu ilklendirildi\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "%s%s içinde boÅŸ Git deposu ilklendirildi\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15470,33 +15624,37 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<ÅŸablon-dizini>] [--" "shared[=<izinler>]] [<dizin>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "izinler" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "git deposunun kullanıcılar arasında paylaşıp paylaşılmayacağını belirt" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "baÅŸlangıç dalının adını geçersiz kıl" + +#: builtin/init-db.c:564 msgid "hash" msgstr "saÄŸlama" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "kullanılacak saÄŸlama algoritmasını belirle" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "%s mkdir yapılamıyor" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "%s ögesine chdir yapılamıyor" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15505,7 +15663,7 @@ msgstr "" "%s (veya --work-tree=<dizin>), %s (veya --git-dir=<dizin>) belirlenmeden " "izin verilmiyor" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "'%s' çalışma aÄŸacına eriÅŸilemiyor" @@ -15516,7 +15674,7 @@ msgid "" "<token>[(=|:)<value>])...] [<file>...]" msgstr "" "git interpret-trailers [--in-place] [--trim-empty] [(--trailer " -"<token>[(=|:)<deÄŸer>])...] [<dosya>...]" +"<jeton>[(=|:)<deÄŸer>])...] [<dosya>...]" #: builtin/interpret-trailers.c:95 msgid "edit files in place" @@ -17249,7 +17407,7 @@ msgstr "var olmayan notu kaldırma denemesi bir hata deÄŸil" msgid "read object names from the standard input" msgstr "nesne adlarını standart girdi'den oku" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "kaldırma, yalnızca göster" @@ -17283,103 +17441,119 @@ msgid "" msgstr "" "git pack-objects [<sçnklr>...] <base-name> [< <bÅŸvr-liste> | < <nesne-liste>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "%s için hatalı paketlenmiÅŸ nesne CRC'si" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "%s için hasar görmüş paketlenmiÅŸ nesne" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "%s nesnesi için özyineli delta algılandı" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "%u nesne sipariÅŸ verildi, %<PRIu32> bekleniyordu" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "" "biteÅŸlem yazımı kapatılıyor, paketler pack.packSizeLimit dolayısıyla " "parçalara ayrılmış" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Nesneler yazılıyor" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "%s bilgileri alınamıyor" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "%<PRIu32> nesne yazıldı (%<PRIu32> bekleniyordu)" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "bazı nesneler paketlenmediÄŸinden dolayı biteÅŸlem yazımı kapatılıyor" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "%s için paket içinde delta taban ofset taşımı" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "%s için delta taban ofseti sınırların dışında" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Nesneler sayılıyor" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "%s nesne üstbilgisi ayrıştırılamıyor" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "%s nesnesi okunamıyor" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "%s nesnesi için tutarsız nesne uzunluÄŸu (%<PRIuMAX> / %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "standart altı paket - bellek yetersiz" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Delta sıkıştırması %d iÅŸ parçacığı kullanıyor" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "%s etiketinden ulaşılabilir nesneler paketlenemiyor" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Nesneler sıkıştırılıyor" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "delta sayımında tutarsızlık" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "uploadpack.blobpackfileuri deÄŸeri '<nesne-saÄŸlaması> <paket-saÄŸlaması> " +"<uri> biçiminde olmalıdır ('%s' alındı)" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" +"nesne halihazırda baÅŸka bir uploadpack.blobpackfileuri içinde yapılandırıldı " +"('%s' alındı)" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17388,7 +17562,7 @@ msgstr "" "sınır nesnesi numarası bekleniyordu, anlamsız veri alındı:\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17397,227 +17571,237 @@ msgstr "" "nesne numarası bekleniyordu, anlamsız veri alındı:\n" "%s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "--missing için geçersiz deÄŸer" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "paket indeksi açılamıyor" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "%s konumundaki gevÅŸek nesne incelenemedi" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "gevÅŸek nesne zorlanamıyor" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "bir revizyon deÄŸil: '%s'" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "hatalı revizyon: '%s'" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "en son nesneler eklenemiyor" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "desteklenmeyen indeks sürümü %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "hatalı indeks sürümü '%s'" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<sürüm>[,<ofset>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "paket indeks dosyasını belirtilen idx biçiminde yaz" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "her çıktı paketi dosyasının olabilecek en büyük boyutu" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "alternatif nesne maÄŸazasından ödünç alınan nesneleri yok say" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "paketlenmiÅŸ nesneleri yok say" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "paket penceresini nesnelerle sınırla" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "paket penceresini nesne limitine ek olarak bellek ile kısıtla" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "ortaya çıkan pakette olabilecek en büyük delta zincirinin uzunluÄŸu" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "var olan deltaları yeniden kullan" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "var olan nesneleri yeniden kullan" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "OFS_DELTA nesneleri kullan" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "en iyi delta eÅŸleÅŸmelerini ararken iÅŸ parçacıklarını kullan" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "boÅŸ bir paket çıktısı oluÅŸturma" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "revizyon deÄŸiÅŸkenlerini standart girdi'den oku" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "nesneleri henüz paketlenmeyenlere kısıtla" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "herhangi bir baÅŸvurudan ulaşılabilir olan nesneleri içer" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "baÅŸvuru günlüğü tarafından baÅŸvurulan nesneleri içer" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "indeks tarafından baÅŸvurulan nesneleri içer" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "paketi stdout'a çıktı ver" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "paketlenecek nesnelere baÅŸvuran etiket nesnelerini içer" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "ulaşılamayan nesneleri tut" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "ulaşılamayan gevÅŸek nesneleri paketle" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "<zaman>'dan daha yeni ulaşılamayan nesneleri aç" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "aralıklı ulaşılabilirlik algoritmasını kullan" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "ince paketler oluÅŸtur" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "sığ getirmelere uygun paketler oluÅŸtur" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "eÅŸlik eden .keep dosyasına iye paketleri yok say" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "bu paketi yok say" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "paket sıkıştırma düzeyi" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "aşılarla gelen gönderileri gizleme" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "" "nesnelerin sayımını hızlandırmak için eÄŸer varsa bir biteÅŸlem indeksi kullan" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "paket indeksiyle birlikte bir biteÅŸlem indeksi de yaz" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "eÄŸer olanaklıysa bir biteÅŸlem indeksi yaz" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "eksik nesneler için iÅŸlem" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "nesneleri vaatçi paket dosyalarıyla paketleme" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "delta sıkıştırması sırasında adalara uy" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "protokol" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "" +"bu protokol ile herhangi bir yapılandırılmış uploadpack.blobpackfileuri " +"ögesini hariç tut" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "delta zincir derinliÄŸi %d çok derin, %d zorlanıyor" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "pack.deltaCacheLimit çok yüksek, %d zorlanıyor" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "--max-pack-size, aktarım için bir paket yapımında kullanılamaz" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "olabilecek en küçük paket boyutu limiti 1 MiB'dır" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin bir indekslenebilir paket yapımında kullanılamaz" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable ve --unpack-unreachable birbiriyle uyumsuz" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "--filter, --stdout olmadan kullanılamaz" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Nesneler ortaya dökülüyor" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -17829,7 +18013,7 @@ msgstr "Ä°ndekse eklenen deÄŸiÅŸikliklerle henüz doÄŸmamış bir dal güncellen #: builtin/pull.c:959 msgid "pull with rebase" -msgstr "yeniden temellendirme ile çek" +msgstr "yeniden temellendirme ile çekim" #: builtin/pull.c:960 msgid "please commit or stash them." @@ -18917,7 +19101,7 @@ msgstr "%s, %s konumuna ileri sarıldı.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <git-dizini>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -18946,7 +19130,7 @@ msgstr "" "denyCurrentBranch'\n" "yapılandırma deÄŸiÅŸkenini 'refuse' olarak ayarlayın." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -18966,11 +19150,11 @@ msgstr "" "deÄŸiÅŸkenini 'warn' veya 'ignore' olarak ayarlayabilirsiniz.\n" "Bu iletiyi susturmak için onu 'refuse' olarak ayarlayın." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "sessiz" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Bir dizin belirtmelisiniz." @@ -20526,6 +20710,14 @@ msgstr "'%s' geçerli bir baÅŸvuru deÄŸil." msgid "cannot find commit %s (%s)" msgstr "%s gönderisi bulunamıyor (%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "saÄŸlama algoritması" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "bilinmeyen saÄŸlama algoritması '%s'" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20579,50 +20771,54 @@ msgid "this worktree is not sparse (sparse-checkout file may not exist)" msgstr "" "bu çalışma aÄŸacı aralıklı deÄŸil (sparse-checkout dosyası var olmayabilir)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "aralıklı çıkış dosyası için dizin oluÅŸturulamadı" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "depo biçimi worktreeConfig etkinleÅŸtirmesi için yükseltilemiyor" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "extensions.worktreeConfig yapılandırması ayarlanamadı" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "aralıklı çıkışı koni kipinde ilklendir" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "'%s' açılamadı" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "'%s' yolu olaÄŸanlaÅŸtırılamadı" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <dizgiler>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "C biçemli '%s' dizisinin tırnakları kaldırılamıyor" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "mevcut aralıklı çıkış dizgileri yüklenemiyor" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "dizgileri stdin'den oku" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "çalışma dizini yenilenirken hata" @@ -21319,12 +21515,37 @@ msgstr "Bir altmodül url ayarlanması çıktısını gizle" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <yol> <yeniurl>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "öntanımlı izleme dalını master olarak ayarla" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "öntanımlı izleme dalını ayarla" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <yol>" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-b|--branch) <dal> <yol>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "--branch veya --default gerekli" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch ve --default birlikte kullanılamaz" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s, --super-prefix desteklemiyor" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' geçerli bir submodule-helper altkomutu deÄŸil" @@ -21955,198 +22176,188 @@ msgstr "git worktree remove [<seçenekler>] <ç-aÄŸacı>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <yol>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "'%s' silinemedi" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "çalışma-aÄŸacı/%s kaldırılıyor: geçerli bir dizin deÄŸil" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "çalışma-aÄŸacı/%s kaldırılıyor: gitdir dosyası yok" +msgid "not a valid directory" +msgstr "geçerli bir dizin deÄŸil" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "çalışma-aÄŸacı/%s kaldırılıyor: gitdir dosyası okunamıyor (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "gitdir dosyası mevcut deÄŸil" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "" -"çalışma-aÄŸacı/%s kaldırılıyor: yetersiz veri (%<PRIuMAX> bayt bekleniyordu, " -"%<PRIuMAX> okundu" +msgid "unable to read gitdir file (%s)" +msgstr "gitdir dosyası (%s) okunamıyor" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "çalışma-aÄŸacı/%s kaldırılıyor: geçersiz gitdir dosyası" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "az okundu (%<PRIuMAX> bayt bekleniyordu, %<PRIuMAX> okundu)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "geçersiz gitdir dosyası" -#: builtin/worktree.c:126 +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "gitdir dosyası var olmayan bir konuma iÅŸaret ediyor" + +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "" -"çalışma-aÄŸacı/%s kaldırılıyor: gitdir dosyası olmayan bir konuma iÅŸaret " -"ediyor" +msgid "Removing %s/%s: %s" +msgstr "%s/%s kaldırılıyor: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "budanan çalışma aÄŸaçlarını bildir" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "<zaman>'dan eski çalışma aÄŸaçlarının hükmünü kaldır" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' halihazırda var" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "'%s' çalışma aÄŸacı yeniden eklenemiyor" +msgid "unusable worktree destination '%s'" +msgstr "kullanılamayan çalışma aÄŸacı konumu '%s'" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "'%s' eksik ancak kilitli bir çalışma aÄŸacı;\n" -"geçersiz kılmak için 'add -f -f', temizlemek için 'unlock', 'prune' veya " +"geçersiz kılmak için '%s -f -f', temizlemek için 'unlock', 'prune' veya " "'remove' kullanın" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "'%s' eksik ancak halihazırda kaydı yapılmış bir çalışma aÄŸacı;\n" -"geçersiz kılmak için 'add -f', temizlemek için 'prune' veya 'remove' kullanın" +"geçersiz kılmak için '%s -f', temizlemek için 'prune' veya 'remove' kullanın" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "'%s' dizini oluÅŸturulamadı" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Çalışma aÄŸacı hazırlanıyor (yeni dal '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "Çalışma aÄŸacı hazırlanıyor ('%s' dalı sıfırlanıyor; %s konumundaydı)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Çalışma aÄŸacı hazırlanıyor ('%s' çıkış yapılıyor)" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Çalışma aÄŸacı hazırlanıyor (ayrık HEAD %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "diÄŸer çalışma aÄŸacında çıkış yapılmış olsa bile <dal> çıkışını yap" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "yeni bir dal oluÅŸtur" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "yeni bir dal oluÅŸtur veya sıfırla" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "yeni çalışma aÄŸacını doldur" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "yeni çalışma aÄŸacını kilitli tut" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "izleme kipini ayarla (bkz: git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "yeni dalın adını bir uzak izleme dalıyla eÅŸleÅŸtirmeyi dene" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B ve --detach birlikte kullanılamaz" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "--[no-]track yalnızca yeni bir dal oluÅŸturulmuÅŸsa kullanılabilir" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "kilitleme nedeni" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' bir çalışma aÄŸacı deÄŸil" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "Ana çalışma aÄŸacı kilitlenemez veya kilidi açılamaz" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' halihazırda kilitli, nedeni: %s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' halihazırda kilitli" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' kilitli deÄŸil" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "altmodül içeren çalışma aÄŸaçları taşınamaz veya kaldırılamaz" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "çalışma aÄŸacı kirli veya kilitli olsa bile zorla taşı" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' bir ana çalışma aÄŸacı" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "hedef adı ÅŸuradan anlaşılamadı: '%s'" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "'%s' hedefi halihazırda var" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22155,7 +22366,7 @@ msgstr "" "kilitli bir çalışma aÄŸacı taşınamıyor, kilit nedeni: %s\n" "geçersiz kılmak için 'move -f -f' kullanın veya önce kilidini açın" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22163,38 +22374,38 @@ msgstr "" "kilitli bir çalışma aÄŸacı taşınamıyor;\n" "geçersiz kılmak için 'move -f -f' kullanın veya önce kilidini açın" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "doÄŸrulama baÅŸarısız, çalışma aÄŸacı taşınamıyor: %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "'%s' -> '%s' taşıması baÅŸarısız" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "'%s' üzerinde 'git status' çalıştırılamadı" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "'%s' deÄŸiÅŸtirilmiÅŸ veya izlenmeyen dosyalar içeriyor, silmek için --force " "kullanın" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "'%s' üzerinde 'git status' çalıştırılamadı, kod %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "çalışma aÄŸacı kirli veya kilitli olsa bile zorla kaldır" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22203,7 +22414,7 @@ msgstr "" "kilitli bir çalışma aÄŸacı kaldırılamıyor, kilit nedeni: %s\n" "geçersiz kılmak için 'remove -f -f' kullanın veya önce kilidini açın" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22211,7 +22422,7 @@ msgstr "" "kilitli bir çalışma aÄŸacı kaldırılamıyor;\n" "geçersiz kılmak için 'remove -f -f' kullanın veya önce kilidini açın" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "doÄŸrulama baÅŸarısız, çalışma aÄŸacı kaldırılamıyor: %s" @@ -22232,32 +22443,32 @@ msgstr "bir <önek> altdizini için aÄŸaç nesnesi yaz" msgid "only useful for debugging" msgstr "yalnızca hata ayıklama için yararlı" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "git sürümü:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() '%s' hatasını verip çıktı (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "derleyici bilgisi: " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "libc bilgisi: " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "bir git deposundan çalıştırılmadı - gösterilecek kanca yok\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <dosya>] [-s|--suffix <biçim>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22292,66 +22503,76 @@ msgstr "" "AÅŸağıda hata raporunun geri kalanına bir göz atın.\n" "PaylaÅŸmak istemediÄŸiniz satırları silebilirsiniz.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "hata raporu dosyası için bir konum belirtin" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "dosya adı için bir strftime biçimli ek belirtin" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "'%s' için öncü dizinler oluÅŸturulamadı" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "Sistem Bilgisi" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Etkin Kancalar" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "'%s' hata raporu dosyası oluÅŸturulamadı" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "%s dosyasına yazılamıyor" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Hata raporu '%s' dosyasına yazıldı.\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "'%s' altmodülü için '(on)-dan' imleri eksik" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "'%s' altmodülü için '(o)-na' imleri eksik" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "'mark' komutu bekleniyordu, %s alındı" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "'to' komutu bekleniyordu, %s alındı" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "Altmodül yeniden yazım seçeneÄŸi için name:filename biçimi bekleniyordu" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "'%s' özelliÄŸi --allow-unsafe-features olmadan girdide yasaklı" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "--packfile için deÄŸiÅŸken geçerli bir saÄŸlama olmalıdır ('%s' alındı)" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22528,31 +22749,31 @@ msgstr "Delegasyon denetimi cURL < 7.22.0 tarafından desteklenmiyor" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "Ortak anahtar iÄŸnelemesi cURL < 7.44.0 tarafından desteklenmiyor" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REVOKE cURL < 7.44.0 tarafından desteklenmiyor" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Protokol sınırlamaları cURL < 7.19.4 tarafından desteklenmiyor" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "Desteklenmeyen SSL arka ucu '%s'. Desteklenen SSL arka uçları:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" "SSL arka ucu '%s' olarak ayarlanamadı: cURL, SSL arka uçları olmadan yapılmış" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "SSL arka ucu '%s' olarak ayarlanamadı: Halihazırda ayarlanmış" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22563,112 +22784,135 @@ msgstr "" " ÅŸu istendi: %s\n" " yönlenen: %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "push-option deÄŸerinde geçersiz tırnak içine alım: '%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs geçerli deÄŸil: bu bir git deposu mu?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "geçersiz sunucu yanıtı; servis bekleniyordu, floÅŸ paketi alındı" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "geçersiz sunucu yanıtı; '%s' alındı" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "'%s' deposu bulunamadı" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "'%s' için kimlik doÄŸrulaması baÅŸarısız" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "'%s' eriÅŸilemiyor: %s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "ÅŸuraya yeniden yönlendiriliyor: %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "dosya sonuna dikkat edilmiyorsa dosya sonu olmamalıdır" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "uzak sunucu durumsuz ayırıcı gönderdi" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "" "rpc sonrası verisi geri sarılamıyor - https.postBuffer'ı artırmayı deneyin" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: hatalı satır uzunluÄŸu karakteri: %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: beklenmedik yanıt sonu paketi" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC baÅŸarısız oldu; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "bu kadar büyük itmeler iÅŸlenemiyor" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "istek söndürülemiyor; 'zlib deflate' hatası %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "istek söndürülemiyor; 'zlib end' hatası %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "üstbilginin %d baytı alındı" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "gövdenin %d baytı hâlâ bekleniyor" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "programlanamayan http taşıyıcısı sığ iÅŸlevleri desteklemiyor" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "getirme baÅŸarısız." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "akıllı http üzerinden sha1 ile getirme yapılamıyor" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "protokol hatası: sha/ref bekleniyordu, '%s' alındı" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "http taşıyıcısı %s desteklemiyor" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push baÅŸarısız" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: kullanım: git remote-curl <uzak-konum> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl: git'ten komut akışı okunurken hata" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl: yerel bir depo olmadan getirme yapılmaya çalışıldı" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl: git'ten bilinmeyen komut '%s'" @@ -23688,26 +23932,26 @@ msgstr "Altmodül yolu '$displaypath': '$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "'$displaypath' altmodül yoluna özyinelenemedi" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "--cached seçeneÄŸi --files seçeneÄŸi ile birlikte kullanılamaz" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "beklenmedik kip $mod_dst" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Uyarı: $display_name, $sha1_src gönderisini içermiyor" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Uyarı: $display_name, $sha1_dst gönderisini içermiyor" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr " Uyarı: $display_name, $sha1_src ve $sha1_dst gönderilerini içermiyor" @@ -24119,7 +24363,7 @@ msgid_plural "touched %d paths\n" msgstr[0] "%d yola dokunuldu\n" msgstr[1] "%d yola dokunuldu\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24127,7 +24371,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal hazırlama\n" "için imlenecektir." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24135,7 +24379,7 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal zulalama\n" "için imlenecektir." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24143,8 +24387,8 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa, düzenlenen parça derhal hazırlıktan\n" "çıkarılma için imlenecektir." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24152,8 +24396,8 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal uygulama\n" "için imlenecektir." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24161,12 +24405,12 @@ msgstr "" "EÄŸer yama sorunsuzca uygulanırsa düzenlenen parça derhal ıskartaya\n" "çıkarım için imlenecektir." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "parça düzenleme dosyası yazım için açılamadı: %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24179,12 +24423,12 @@ msgstr "" "'%s' satır kaldırmak için onları silin.\n" "%s ile baÅŸlayan satırlar kaldırılacaktır.\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "parça düzenleme dosyası okuma için açılamadı: %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24198,7 +24442,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları hazırla\n" "d - bu parçayı veya sonraki parçalardan herhangi birini hazırlama" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24212,7 +24456,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları zulala\n" "d - bu parçayı veya sonraki parçalardan herhangi birini zulalama" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24226,7 +24470,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları hazırlıktan çıkar\n" "d - bu parçayı veya sonraki parçalardan herhangi birini hazırlıktan çıkarma" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24240,7 +24484,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları uygula\n" "d - bu parçayı veya sonraki parçalardan herhangi birini uygulama" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24254,7 +24498,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları at\n" "d - bu parçayı veya sonraki parçalardan herhangi birini atma" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24268,7 +24512,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları at\n" "d - bu parçayı veya sonraki parçalardan herhangi birini atma" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24282,7 +24526,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları uygula\n" "d - bu parçayı veya sonraki parçalardan herhangi birini uygulama" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24296,7 +24540,7 @@ msgstr "" "a - bu parçayı ve sonraki tüm parçaları uygula\n" "d - bu parçayı veya sonraki parçalardan herhangi birini uygulama" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24318,85 +24562,90 @@ msgstr "" "e - geçerli parçayı el ile düzenle\n" "? - yardımı yazdır\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "Seçili parçalar indekse uygulanamıyor!\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "birleÅŸtirilmeyenler yok sayılıyor: %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "Kip deÄŸiÅŸimi çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "Silme çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Ekleme çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "Bu parça çalışma aÄŸacına uygulansın mı [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "Gidilecek baÅŸka parça yok\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Geçersiz sayı: '%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Ãœzgünüm, yalnızca %d parça kullanılabilir.\n" msgstr[1] "Ãœzgünüm, yalnızca %d parça kullanılabilir.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "Aranacak baÅŸka parça yok\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Hatalı oluÅŸturulmuÅŸ arama düzenli ifadesi %s: %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "Verilen dizgi ile hiçbir parça eÅŸleÅŸmiyor\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "Öncesinde parça yok\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "Sonrasında parça yok\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Ãœzgünüm, bu parça bölünemiyor\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "%d parçaya bölündü.\n" msgstr[1] "%d parçaya bölündü.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Ãœzgünüm, bu parça düzenlenemiyor\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24414,19 +24663,19 @@ msgstr "" "add untracked - izlenmeyen dosyaların içeriÄŸini hazırlanan deÄŸiÅŸiklik setine " "ekle\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "-- eksik" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "bilinmeyen --patch kipi: %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "geçersiz deÄŸiÅŸken %s, -- bekleniyor" @@ -24740,56 +24989,56 @@ msgstr "(mbox) Cc: %s, '%s' satırından ekleniyor\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) To: %s, '%s' satırından ekleniyor\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) Cc: %s, '%s' satırından ekleniyor\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(body) Cc: %s, '%s' satırından ekleniyor\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) '%s' çalıştırılamadı" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) %s: %s, '%s' konumundan ekleniyor\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) ÅŸuraya olan veri yolu kapatılamadı: '%s'" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "ileti 7 bit olarak gönderilemiyor" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "geçersiz aktarım kodlaması" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "%s açılamıyor: %s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s: yama 998 karakterden daha uzun bir satır içeriyor" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "%s, yedek sonek '%s' ile atlanıyor.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "%s ögesini gerçekten göndermek istiyor musunuz? [y|N]: " @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git v2.27.0 rd2\n" +"Project-Id-Version: git v2.28.0 rd2\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-27 08:06+0700\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-15 15:35+0700\n" "Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" "Language: vi\n" @@ -21,7 +21,7 @@ msgstr "" "X-Language-Team-Website: <http://translationproject.org/team/vi.html>\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-Basepath: ..\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4\n" #: add-interactive.c:368 #, c-format @@ -113,21 +113,21 @@ msgstr[0] "đã thêm %d Ä‘Æ°á»ng dẫn\n" msgid "ignoring unmerged: %s" msgstr "bá» qua những thứ chÆ°a hòa trá»™n: %s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "Chỉ có các táºp tin nhị phân là thay đổi.\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "Không có thay đổi nà o.\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "Cáºp nháºt miếng vá" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "Xem xét lại diff" @@ -201,11 +201,11 @@ msgstr "tùy chá»n mục bằng số" msgid "(empty) select nothing" msgstr "(để trống) không chá»n gì" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** Lệnh ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "Giá» thì sao" @@ -222,7 +222,7 @@ msgstr "chÆ°a Ä‘Æ°a lên bệ phóng" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "Ä‘Æ°á»ng-dẫn" @@ -231,27 +231,32 @@ msgstr "Ä‘Æ°á»ng-dẫn" msgid "could not refresh index" msgstr "không thể Ä‘á»c lại bảng mục lục" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "Tạm biệt.\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "Thay đổi chế Ä‘á»™ bệ phóng [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "Xóa khá»i bệ phóng [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "Thêm và o bệ phóng [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "ÄÆ°a lên bệ phóng khúc nà y [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." @@ -259,7 +264,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức được đánh dấu " "để chuyển lên bệ phóng." -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -274,22 +279,27 @@ msgstr "" "d - đừng Ä‘Æ°a lên bệ phóng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o còn lại trong táºp " "tin\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "Thay đổi chế Ä‘á»™ tạm cất Ä‘i [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "Xóa tạm cất [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "Thêm và o tạm cất [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "Tạm cất khúc nà y [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." @@ -297,7 +307,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức được đánh dấu " "để tạm cất." -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -311,22 +321,27 @@ msgstr "" "a - tạm cất khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng tạm cất khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o còn lại trong táºp tin\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "Thay đổi chế Ä‘á»™ bá» ra khá»i bệ phóng [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "Xóa bá» việc bá» ra khá»i bệ phóng [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "Thêm và o việc bá» ra khá»i bệ phóng [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "Bá» ra khá»i bệ phóng khúc nà y [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." @@ -334,7 +349,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức được đánh dấu " "để bá» ra khá»i bệ phóng." -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -350,22 +365,27 @@ msgstr "" "d - đừng Ä‘Æ°a ra khá»i bệ phóng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o còn lại trong " "táºp tin\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "Ãp dụng thay đổi chế Ä‘á»™ cho mục lục [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "Ãp dụng việc xóa và o mục lục [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "Ãp dụng các thêm và o mục lục [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "Ão dụng khúc nà y và o mục lục [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." @@ -373,7 +393,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức được đánh dấu " "để áp dụng." -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -387,25 +407,31 @@ msgstr "" "a - áp dụng khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng áp dụng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "Loại bá» các thay đổi chế Ä‘á»™ từ cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "Loại bá» việc xóa khá»i cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "Thêm các loại bá» khá»i cây là m việc [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "Loại bá» khúc nà y khá»i cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." @@ -413,7 +439,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức được đánh dấu " "để loại bá»." -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -427,22 +453,27 @@ msgstr "" "a - loại bá» khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng loại bá» khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "Loại bá» thay đổi chế Ä‘á»™ từ mục lục và cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "Loại bá» việc xóa khá»i mục lục và cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "Thêm các loại bá» từ mục lục và cây là m việc [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "Loại bá» khúc nà y khá»i mục lục và cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -456,22 +487,27 @@ msgstr "" "a - loại bá» khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng loại bá» khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "Ãp dụng thay đổi chế Ä‘á»™ cho mục lục và cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "Ãp dụng việc xóa và o mục lục và cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "Ãp dụng thêm và o mục lục và cây là m việc [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "Ãp dụng khúc nà y và o mục lục và cây là m việc [y,n,q,a,d%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -485,7 +521,7 @@ msgstr "" "a - áp dụng khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng áp dụng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -499,34 +535,34 @@ msgstr "" "a - áp dụng khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng áp dụng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "không thể phân tÃch cú pháp phần đầu của khúc “%.*sâ€" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "không thể phân tÃch cú pháp phần đầu khúc đã tô mà u “%.*sâ€" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "không thể phân tÃch cú pháp khác biệt" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "không thể phân tÃch khác biệt được tô mà u" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "gặp lá»—i khi chạy “%sâ€" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "đầu ra không khá»›p từ interactive.diffFilter" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." @@ -534,7 +570,7 @@ msgstr "" "Bá»™ lá»c của bạn phải duy trì má»™t quan hệ má»™t-đến-má»™t\n" "giữa các dòng đầu và o và đầu ra của nó." -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -543,7 +579,7 @@ msgstr "" "cần dòng ngữ cảnh #%d trong\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -556,11 +592,11 @@ msgstr "" "\tkhông được kết thúc bằng:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "Chế Ä‘á»™ sá»a khúc bằng tay -- xem ở đáy để có hÆ°á»›ng dẫn sá» dụng nhanh.\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -574,7 +610,7 @@ msgstr "" "Những dòng bắt đầu bằng %c sẽ bị loại bá».\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -584,11 +620,11 @@ msgstr "" "để sá»a lần nữa. Nếu má»i dòng của khúc bị xóa bá», thế thì những\n" "sá»a dổi sẽ bị loại bá», và khúc vẫn giữ nguyên.\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "không thể phân tÃch cú pháp phần đầu khúc" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "'git apply --cached' gặp lá»—i" @@ -604,26 +640,26 @@ msgstr "'git apply --cached' gặp lá»—i" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "" "Hunk đã sá»a của bạn không được áp dụng. Sá»a lại lần nữa (nói \"n\" để loại " "bá»!) [y/n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "Các khúc đã chá»n không được áp dụng và o bảng mục lục!" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "Vẫn áp dụng chúng cho cây là m việc? " -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "Äã không áp dụng gì cả.\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -645,68 +681,68 @@ msgstr "" "e - sá»a bằng tay khúc hiện hà nh\n" "? - hiển thị trợ giúp\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "Không có khúc kế trÆ°á»›c" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "Không có khúc kế tiếp" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "Không còn khúc nà o để mà nhảy đến" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "nhảy đến khúc nà o (<ret> để xem thêm)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "nhảy đến khúc nà o? " -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "Số không hợp lệ: “%sâ€" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "Rất tiếc, chỉ có sẵn %d khúc." -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "Không còn khúc nà o để mà tìm kiếm" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "tìm kiếm cho biểu thức chÃnh quy? " -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "Äịnh dạng tìm kiếm của biểu thức chÃnh quy không đúng %s: %s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "Không thấy khúc nà o khá»›p mẫu đã cho" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "Rất tiếc, không thể chia nhá» khúc nà y" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "Chi nhá» thà nh %d khúc." -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "Rất tiếc, không thể sá»a khúc nà y" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' gặp lá»—i" @@ -1399,7 +1435,7 @@ msgstr "đảm bảo rằng có Ãt nhất <n> dòng ngữ cảnh khá»›p" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "hà nh Ä‘á»™ng" @@ -1489,7 +1525,7 @@ msgstr "Ä‘Æ°á»ng dẫn không hợp lệ UTF-8: %s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "Ä‘Æ°á»ng dẫn quá dà i (%d ký tá»±, SHA1: %s): %s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "lá»—i giải nén (%d)" @@ -1559,8 +1595,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "nối thêm tiá»n tố và o từng Ä‘Æ°á»ng dẫn táºp tin trong kho lÆ°u" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1784,10 +1820,10 @@ msgid "--reverse and --first-parent together require specified latest commit" msgstr "" "cùng sá» dụng --reverse và --first-parent cần chỉ định lần chuyển giao cuối" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "cà i đặt việc di chuyển qua các Ä‘iểm xét duyệt gặp lá»—i" @@ -1950,82 +1986,86 @@ msgstr "“%s†đã được lấy ra tại “%s†rồi" msgid "HEAD of working tree %s is not updated" msgstr "HEAD của cây là m việc %s chÆ°a được cáºp nháºt" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "“%s†không giống nhÆ° táºp tin v2 bundle (định dạng dump của git)" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "không hiểu chiá»u dà i thuáºt toán băm dữ liệu" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "phần đầu không được thừa nháºn: %s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "không thể mở “%sâ€" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "Kho chứa thiếu những lần chuyển giao tiên quyết nà y:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "cần má»™t kho chứa để thẩm tra má»™t bundle" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "Bó dữ liệu chứa %d tham chiếu:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "Lệnh bundle ghi lại toà n bá»™ lịch sá»." -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "Lệnh bundle yêu cầu %d tham chiếu nà y:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "không thể nhân đôi bá»™ mô tả bundle" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "Không thể sản sinh đối tượng gói" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "đối tượng gói đã chết" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list đã chết" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "th.chiếu “%s†bị loại trừ bởi các tùy chá»n rev-list" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "đối số không được thừa nháºn: %s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "Từ chối tạo má»™t bó dữ liệu trống rá»—ng." -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "không thể tạo “%sâ€" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "mục lục gói đã chết" @@ -2034,272 +2074,264 @@ msgstr "mục lục gói đã chết" msgid "invalid color value: %.*s" msgstr "giá trị mà u không hợp lệ: %.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "táºp tin đồ-thị-các-lần-chuyển-giao quá nhá»" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "chữ ký đồ-thị-các-lần-chuyển-giao %X không khá»›p chữ ký %X" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "phiên bản đồ-thị-các-lần-chuyển-giao %X không khá»›p phiên bản %X" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "phiên bản đồ-thị-các-lần-chuyển-giao %X không khá»›p phiên bản %X" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "" "bảng tìm kiếm mảnh đồ-thị-các-lần-chuyển-giao còn thiếu; táºp tin có thể sẽ " "không hoà n thiện" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "bù mảnh đồ-thị-các-lần-chuyển-giao không đúng chá»— %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "mã mảnh đồ-thị-các-lần-chuyển-giao %08x xuất hiện nhiá»u lần" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "đồ-thị-các-lần-chuyển-giao có không có mảnh các đồ há»a cÆ¡ sở" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "móc xÃch đồ-thị-các-lần-chuyển-giao không khá»›p" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "" "móc xÃch đồ-thị-các-lần-chuyển-giao không hợp lệ: dòng '%s' không phải là " "má»™t mã băm" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "không thể tìm thấy tất cả các táºp tin đồ-thị-các-lần-chuyển-giao" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "" "vị trà lần chuyển giao không hợp lệ. đồ-thị-các-lần-chuyển-giao có vẻ nhÆ° đã " "bị há»ng" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "không thể tìm thấy lần chuyển giao %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "không thể phân tÃch lần chuyển giao “%sâ€" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "Ghi dữ liệu các mục lục Bloom Ä‘Æ°á»ng dẫn đã bị thay đổi" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "Ghi dữ liệu các bá»™ lá»c Bloom Ä‘Æ°á»ng dẫn đã bị thay đổi" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "không thể lấy kiểu của đối tượng “%sâ€" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "Äang tải các lần chuyển giao chÆ°a biết trong đồ thị lần chuyển giao" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "" "Mở rá»™ng các lần chuyển giao có thể tiếp cáºn được trong trong đồ thị lần " "chuyển giao" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "Äang dá»n dẹp các đánh dấu lần chuyển giao trong đồ thị lần chuyển giao" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "Äang tÃnh toán số tạo đồ thị các lần chuyển giao" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "Äang tÃnh toán chuyển giao các bá»™ lá»c Bloom Ä‘Æ°á»ng dẫn bị thay đổi" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "Äang sÆ°u táºp các lần chuyển giao được tham chiếu" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "" "Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao trong %d gói" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "gặp lá»—i thêm gói %s" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "gặp lá»—i khi mở mục lục cho “%sâ€" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "" -"Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao từ %d tham chiếu" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "mã số đối tượng lần chuyển giao không hợp lệ: %s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "" "Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao trong số các đối " "tượng đã đóng gói" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "Äang đếm các lần chuyển giao khác nhau trong đồ thị lần chuyển giao" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "Äang tìm các cạnh mở tá»™ng trong đồ thị lần chuyển giao" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "gặp lá»—i khi ghi số đúng của mã đồ há»a cÆ¡ sở" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "không thể tạo các thÆ° mục dẫn đầu của “%sâ€" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "không thể tạo lá»›p sÆ¡ đồ tạm thá»i" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "không thể chỉnh sá»a quyá»n chia sẻ thà nh “%sâ€" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "Äang ghi ra đồ thị các lần chuyển giao trong lần %d" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "không thể mở táºp tin mắt xÃch đồ thị chuyển giao" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "gặp lá»—i khi đổi tên táºp tin đồ-thị-các-lần-chuyển-giao" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "gặp lá»—i khi đổi tên táºp tin đồ-thị-các-lần-chuyển-giao tạm thá»i" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "Äang quét các lần chuyển giao đã hòa trá»™n" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "gặp mã số tÃch lần chuyển giao bị trùng lặp “%sâ€" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "Äang hòa trá»™n đồ-thị-các-lần-chuyển-giao" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "định dạng đồ há»a các lần chuyển giao không thể ghi %d lần chuyển giao" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "có quá nhiá»u lần chuyển giao để ghi đồ thị" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "" "táºp tin đồ-thị-các-lần-chuyển-giao có tổng kiểm không đúng và có vẻ nhÆ° là " "đã há»ng" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "đồ-thị-các-lần-chuyển-giao có thứ tá»± OID không đúng: %s sau %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "" "đồ-thị-các-lần-chuyển-giao có giá trị fanout không đúng: fanout[%d] = %u != " "%u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "gặp lá»—i khi phân tÃch lần chuyển giao từ %s đồ-thị-các-lần-chuyển-giao" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "Äang thẩm tra các lần chuyển giao trong đồ thị lần chuyển giao" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "" "gặp lá»—i khi phân tÃch lần chuyển giao %s từ cÆ¡ sở dữ liệu đối tượng cho đồ " "thị lần chuyển giao" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "" "OID cây gốc cho lần chuyển giao %s trong đồ-thị-các-lần-chuyển-giao là %s != " "%s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "" "danh sách cha mẹ đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s là quá dà i" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "cha mẹ đồ-thị-các-lần-chuyển-giao cho %s là %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "" "danh sách cha mẹ đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s bị chấm " "dứt quá sá»›m" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" @@ -2307,7 +2339,7 @@ msgstr "" "đồ-thị-các-lần-chuyển-giao có con số không lần tạo cho lần chuyển giao %s, " "nhÆ°ng không phải số không ở chá»— khác" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" @@ -2315,12 +2347,12 @@ msgstr "" "đồ-thị-các-lần-chuyển-giao có con số không phải không lần tạo cho lần chuyển " "giao %s, nhÆ°ng số không ở chá»— khác" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "tạo đồ-thị-các-lần-chuyển-giao cho lần chuyển giao %s là %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "" @@ -2358,28 +2390,28 @@ msgstr "" "Tắt lá»i nhắn nà y bằng cách chạy\n" "\"git config advice.graftFileDeprecated false\"" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" "Lần chuyển giao %s có má»™t chữ ký GPG không đáng tin, được cho là bởi %s." -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "Lần chuyển giao %s có má»™t chữ ký GPG sai, được cho là bởi %s." -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Lần chuyển giao %s không có chữ ký GPG." -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "Lần chuyển giao %s có má»™t chữ ký GPG tốt bởi %s\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2569,7 +2601,7 @@ msgstr "giá trị cho %s sai dạng: %s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "phải là má»™t trong số nothing, matching, simple, upstream hay current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "mức nén gói %d không hợp lệ" @@ -2718,72 +2750,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "máy chủ không há»— trợ “%sâ€" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "máy chủ không há»— trợ tÃnh năng “%sâ€" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "cần đẩy dữ liệu lên Ä‘Ä©a sau các capabilities" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "bá» qua capabilities sau dòng đầu tiên “%sâ€" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "lá»—i giao thức: không cần capabilities^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "lá»—i giao thức: cần sha-1 shallow, nhÆ°ng lại nháºn được “%sâ€" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "kho đã ở Ä‘iểm cuối khoác nên không thể được shallow" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "gói không hợp lệ" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "lá»—i giao thức: không cần “%sâ€" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "không hiểu định dạng đối tượng '%s' được chỉ định bởi máy phục vụ" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "trả vá» của ls-refs không hợp lệ: %s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "cần đẩy dữ liệu lên Ä‘Ä©a sau khi liệt kê tham chiếu" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "cần nháºn được trả lá»i là kết thúc gói sau khi liệt kê tham chiếu" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "giao thức “%s†chÆ°a được há»— trợ" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "không thể đặt SO_KEEPALIVE trên ổ cắm" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "Äang tìm kiếm %s … " -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "không tìm được %s (cổng %s) (%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2792,7 +2833,7 @@ msgstr "" "xong.\n" "Äang kết nối đến %s (cổng %s) … " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2802,73 +2843,73 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "hoà n tất." -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "không thể tìm thấy %s (%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "không hiểu cổng %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "đã khóa tên máy lạ “%sâ€" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "đã khóa cổng lạ “%sâ€" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "không thể khởi chạy ủy nhiệm “%sâ€" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "chÆ°a chỉ định Ä‘Æ°á»ng dẫn; xem'git help pull†để biết cú pháp url hợp lệ" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "ssh biến thể “simple†không há»— trợ -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "ssh biến thể “simple†không há»— trợ -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "ssh biến thể “simple†không há»— trợ đặt cổng" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "đã khóa tên Ä‘Æ°á»ng dẫn lạ “%sâ€" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "không thể rẽ nhánh tiến trình con" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "Äang kiểm tra kết nối" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "Không thể chạy “git rev-listâ€" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "gặp lá»—i khi ghi và o rev-list" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "gặp lá»—i khi đóng đầu và o chuẩn stdin của rev-list" @@ -3123,17 +3164,17 @@ msgstr "" "Không phải là má»™t thÆ° mục git. Dùng --no-index để so sánh hai Ä‘Æ°á»ng dẫn bên " "ngoà i má»™t cây là m việc" -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " Gặp lá»—i khi phân tÃch dirstat cắt bá» phần trăm “%sâ€\n" -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Không hiểu đối số dirstat “%sâ€\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3141,7 +3182,7 @@ msgstr "" "cà i đặt mà u đã di chuyển phải là má»™t trong “noâ€, “defaultâ€, “blocksâ€, " "“zebraâ€, “dimmed_zebraâ€, “plainâ€" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3151,7 +3192,7 @@ msgstr "" "changeâ€, “ignore-space-at-eolâ€, “ignore-all-spaceâ€, “allow-indentation-" "changeâ€" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" @@ -3159,12 +3200,12 @@ msgstr "" "color-moved-ws: allow-indentation-change không thể tổ hợp cùng vá»›i các chế " "Ä‘á»™ khoảng trắng khác" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Không hiểu giá trị cho biến cấu hình “diff.submoduleâ€: “%sâ€" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3173,35 +3214,35 @@ msgstr "" "Tìm thấy các lá»—i trong biến cấu hình “diff.dirstatâ€:\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "phần má»m diff ở bên ngoà i đã chết, dừng tại %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-only, --name-status, --check và -s loại từ lẫn nhau" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "Các tùy chá»n -G, -S, và --find-object loại từ lẫn nhau" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow cần chÃnh xác má»™t đặc tả Ä‘Æ°á»ng dẫn" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "giá trị --stat không hợp lệ: “%sâ€" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "tùy chá»n “%s†cần má»™t giá trị bằng số" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3210,42 +3251,42 @@ msgstr "" "Gặp lá»—i khi phân tÃch đối số tùy chá»n --dirstat/-X:\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "không hiểu lá»›p thay đổi “%c†trong --diff-filter=%s" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "không hiểu giá trị sau ws-error-highlight=%.*s" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "không thể phân giải “%sâ€" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s cần dạng <n>/<m>" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s cần má»™t ký tá»±, nhÆ°ng lại nháºn được “%sâ€" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "đối số --color-moved sai: %s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "chế Ä‘á»™ “%s†không hợp lệ trong --color-moved-ws" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" @@ -3253,150 +3294,150 @@ msgstr "" "tùy chá»n diff-algorithm chấp nháºn \"myers\", \"minimal\", \"patience\" và " "\"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "tham số cho %s không hợp lệ" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "gặp lá»—i khi phân tÃch đối số tùy chá»n --submodule: “%sâ€" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "đối số --word-diff sai: %s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "Các tùy chá»n định dạng khi xuất các khác biệt" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "tạo miếng vá" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "chặn má»i kết xuất từ diff" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "tạo khác biệt vá»›i <n> dòng ngữ cảnh" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "tạo khác biệt ở định dạng thô" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "đồng nghÄ©a vá»›i “-p --rawâ€" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "đồng nghÄ©a vá»›i “-p --statâ€" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "--stat thuáºn tiện cho máy Ä‘á»c" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "chỉ xuất những dòng cuối của --stat" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<tham_số_1,tham_số_2>…" -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "đầu ra phân phối của số lượng thay đổi tÆ°Æ¡ng đối cho má»—i thÆ° mục con" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "đồng nghÄ©a vá»›i --dirstat=cumulative" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "đồng nghÄ©a vá»›i --dirstat=files,param1,param2…" -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "" "cảnh báo nếu các thay đổi Ä‘Æ°a ra các bá»™ tạo xung Ä‘á»™t hay lá»—i khoảng trắng" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "tổng hợp dạng xúc tÃch nhÆ° là tạo, đổi tên và các thay đổi chế Ä‘á»™" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "chỉ hiển thị tên của các táºp tin đổi" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "chỉ hiển thị tên táºp tin và tình trạng của các táºp tin bị thay đổi" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<rá»™ng>[,<name-width>[,<số-lượng>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "tạo diffstat" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<rá»™ng>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "tạo diffstat vá»›i Ä‘á»™ rá»™ng đã cho" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "tạo diffstat vá»›i tên Ä‘á»™ rá»™ng đã cho" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "tạo diffstat vá»›i Ä‘á»™ rá»™ng đồ thị đã cho" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<số_lượng>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "tạo diffstat vá»›i các dòng bị giá»›i hạn" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "tạo tổng hợp xúc tÃch trong diffstat" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "xuất ra má»™t khác biệt dạng nhị phân cái mà có thể được áp dụng" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "" "hiển thị đầy đủ các tên đối tượng pre- và post-image trên các dòng \"mục lục" "\"" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "hiển thị thay đổi được tô mà u" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<kiểu>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" @@ -3404,7 +3445,7 @@ msgstr "" "tô sáng các lá»—i vá» khoảng trắng trong các dòng “contextâ€, “old†và “new†" "trong khác biệt" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3412,89 +3453,89 @@ msgstr "" "không munge tên Ä‘Æ°á»ng dẫn và sá» dụng NUL là m bá»™ phân tách trÆ°á»ng đầu ra " "trong --raw hay --numstat" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<tiá»n_tố>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "hiển thị tiá»n tố nguồn đã cho thay cho \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "hiển thị tiá»n tố Ä‘Ãch đã cho thay cho \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "treo và o trÆ°á»›c má»™t tiá»n tố bổ sung cho má»—i dòng kết xuất" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "đừng hiển thị bất kỳ tiá»n tố nguồn hay Ä‘Ãch" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "" "hiển thị ngữ cảnh giữa các khúc khác biệt khi đạt đến số lượng dòng đã chỉ " "định" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<ký_tá»±>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "chỉ định má»™t ký tá»± để biểu thị má»™t dòng được thêm má»›i thay cho “+â€" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "chỉ định má»™t ký tá»± để biểu thị má»™t dòng đã cÅ© thay cho “-â€" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "chỉ định má»™t ký tá»± để biểu thị má»™t ngữ cảnh thay cho “â€" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "Tùy chá»n khác biệt đổi tên" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "ngắt các thay đổi ghi lại hoà n thiện thà nh cặp của xóa và tạo" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "dò tìm các tên thay đổi" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "bá» qua preimage (tiá»n ảnh??) cho các việc xóa" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "dò bản sao" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "dùng các táºp tin không bị chỉnh sá»a nhÆ° là nguồn để tìm các bản sao" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "tắt dò tìm đổi tên" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "dùng các blob trống rống nhÆ° là nguồn đổi tên" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "tiếp tục liệt kê lịch sá» của má»™t táºp tin ngoà i đổi tên" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" @@ -3502,156 +3543,156 @@ msgstr "" "ngăn cản dò tìm đổi tên/bản sao nếu số lượng của Ä‘Ãch đổi tên/bản sao vượt " "quá giá»›i hạn Ä‘Æ°a ra" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "Tùy chá»n thuáºt toán khác biệt" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "sản sinh khác biệt Ãt nhất có thể" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "lá» Ä‘i sá»± thay đổi do khoảng trắng gây ra khi so sánh các dòng" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "lá» Ä‘i sá»± thay đổi do số lượng khoảng trắng gây ra" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "lá» Ä‘i sá»± thay đổi do khoảng trắng gây ra khi ở cuối dòng EOL" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "bá» qua ký tá»± vỠđầu dòng tại cuối dòng" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "bá» qua các thay đổi cho toà n bá»™ các dòng là trống" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "heuristic để dịch hạn biên của khối khác biệt cho dá»… Ä‘á»c" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "tạo khác biệt sá» dung thuáºt toán \"patience diff\"" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "tạo khác biệt sá» dung thuáºt toán \"histogram diff\"" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<thuáºt toán>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "chá»n má»™t thuáºt toán khác biệt" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<văn bản>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "tạo khác biệt sá» dung thuáºt toán \"anchored diff\"" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<chế Ä‘á»™>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "" "hiển thị khác biệt từ, sá» dụng <chế Ä‘á»™> để bá» giá»›i hạn các từ bị thay đổi" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<regex>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "dùng <regex> để quyết định từ là cái gì" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "tÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i --word-diff=color --word-diff-regex=<regex>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "các dòng di chuyển của mã mà được tô mà u khác nhau" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "cách bá» qua khoảng trắng trong --color-moved" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "Các tùy chá»n khác biệt khác" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "" "khi chạy từ thÆ° mục con, thá»±c thi các thay đổi bên ngoà i và hiển thị các " "Ä‘Æ°á»ng dẫn liên quan" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "coi má»i táºp tin là dạng văn bản thÆ°á»ng" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "tráo đổi hai đầu và o, đảo ngược khác biệt" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "thoát vá»›i mã 1 nếu không có khác biệt gì, 0 nếu ngược lại" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "tắt má»i kết xuất của chÆ°Æ¡ng trình" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "cho phép má»™ bá»™ há»— trợ xuất khác biệt ở bên ngoà i được phép thá»±c thi" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "" "chạy các bá»™ lá»c văn bản thông thÆ°á»ng bên ngoà i khi so sánh các táºp tin nhị " "phân" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<khi>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "bá» qua các thay đổi trong mô-Ä‘un-con trong khi tạo khác biệt" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<định dạng>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "chi định khác biệt bao nhiêu trong các mô Ä‘un con được hiển thị" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "ẩn các mục “git add -N†từ bảng mục lục" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "coi các mục “git add -N†nhÆ° là có tháºt trong bảng mục lục" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<chuá»—i>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" @@ -3659,7 +3700,7 @@ msgstr "" "tìm các khác biệt cái mà thay đổi số lượng xảy ra của các phát sinh của " "chuá»—i được chỉ ra" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" @@ -3667,23 +3708,23 @@ msgstr "" "tìm các khác biệt cái mà thay đổi số lượng xảy ra của các phát sinh của biểu " "thức chÃnh quy được chỉ ra" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "hiển thị tất cả các thay đổi trong má»™t bá»™ các thay đổi vá»›i -S hay -G" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "coi <chuá»—i> trong -S nhÆ° là biểu thức chÃnh qui POSIX có mở rá»™ng" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "Ä‘iá»u khiển thứ tá»± xuát hiện các táºp tin trong kết xuất" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<mã-số-đối-tượng>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" @@ -3691,33 +3732,33 @@ msgstr "" "tìm các khác biệt cái mà thay đổi số lượng xảy ra của các phát sinh của đối " "tượng được chỉ ra" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)…[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "chá»n các táºp tin theo kiểu khác biệt" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<táºp_tin>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "Xuất ra má»™t táºp tin cụ thể" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "" "nháºn thấy đổi tên không chÃnh xác đã bị bá» qua bởi có quá nhiá»u táºp tin." -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "" "chỉ tìm thấy các bản sao từ Ä‘Æ°á»ng dẫn đã sá»a đổi bởi vì có quá nhiá»u táºp tin." -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3734,59 +3775,59 @@ msgstr "gặp lá»—i khi Ä‘á»c táºp-tin-thứ-tá»± “%sâ€" msgid "Performing inexact rename detection" msgstr "Äang thá»±c hiện dò tìm đổi tên không chÃnh xác" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "đặc tả Ä‘Æ°á»ng dẫn “%s†không khá»›p vá»›i bất kỳ táºp tin nà o mà git biết" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "mẫu không được thừa nháºn: “%sâ€" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "mẫu âm không được thừa nháºn: “%sâ€" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "táºp tin sparse-checkout của bạn có lẽ gặp lá»—i: mẫu '%s' đã bị lặp lại" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "vô hiệu khá»›p mẫu nón" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "không thể dùng %s nhÆ° là má»™t táºp tin loại trừ" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "không thể mở thÆ° mục “%sâ€" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "gặp lá»—i khi lấy tên và thông tin của nhân" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "bá»™ nhá»› tạm không theo vết bị tắt trên hệ thống hay vị trà nà y" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "táºp tin ghi bảng mục lục bị há»ng trong kho %s" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "không thể tạo thÆ° mục cho %s" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "không thể di dá»i thÆ° mục git từ “%s†sang “%sâ€" @@ -3796,11 +3837,11 @@ msgstr "không thể di dá»i thÆ° mục git từ “%s†sang “%sâ€" msgid "hint: Waiting for your editor to close the file...%c" msgstr "gợi ý: Chá» trình biên soạn của bạn đóng táºp tin…%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "Ná»™i dung lá»c" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "không thể lấy thống kê táºp tin “%sâ€" @@ -3820,227 +3861,245 @@ msgstr "không thể đặt GIT_DIR thà nh “%sâ€" msgid "too many args to run %s" msgstr "quá nhiá»u tham số để chạy %s" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack: cần danh sách shallow" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack: cần má»™t gói đẩy sau danh sách shallow" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack: cần ACK/NAK, nhÆ°ng lại nháºn được má»™t gói flush" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack: cần ACK/NAK, nhÆ°ng lại nháºn được “%sâ€" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "không thể ghi lên máy phục vụ" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc cần multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "dòng shallow không hợp lệ: %s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "dòng unshallow không hợp lệ: %s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "không tìm thấy đối tượng: %s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "lá»—i trong đối tượng: %s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "không tìm shallow nà o: %s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "cần shallow/unshallow, nhÆ°ng lại nháºn được %s" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "nháºn %s %d - %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "lần chuyển giao %s không hợp lệ" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "chịu thua" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "xong" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "nháºn %s (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "Äánh dấu %s là đã hoà n thà nh" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "đã sẵn có %s (%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack: không thể rẽ nhánh sideband demultiplexer" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "lá»—i giao thức: phần đầu gói bị sai" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack: không thể rẽ nhánh %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s gặp lá»—i" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "có lá»—i trong sideband demultiplexer" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "Phiên bản máy chủ là %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "Máy chủ há»— trợ %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "Máy chủ không há»— trợ máy khách shallow" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "Máy chủ không há»— trợ --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "Máy chủ không há»— trợ --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "Máy chủ không há»— trợ --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "Máy chủ không há»— trợ định dạng đối tượng của kho nà y" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "không có lần chuyển giao chung nà o" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack: fetch gặp lá»—i." #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "các thuáºt toán không khá»›p nhau: máy khách %s; máy chủ %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "máy chủ không há»— trợ thuáºt toán “%sâ€" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "Máy chủ không há»— trợ yêu cầu shallow" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "Máy chủ há»— trợ bá»™ lá»c" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "không thể ghi các yêu cầu lên máy phục vụ" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "gặp lá»—i khi Ä‘á»c phần đầu của Ä‘oạn %s" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "cần “%sâ€, nhÆ°ng lại nháºn “%sâ€" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "gặp dòng không được thừa nháºn: “%sâ€" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "gặp lá»—i khi xá» lý tÃn hiệu trả lá»i: %d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "cần táºp tin gói để gá»i sau “readyâ€" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "không cần thêm phần nà o để gá»i sau “readyâ€" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "lá»—i xá» lý thông tin shallow: %d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "cần wanted-ref, nhÆ°ng lại nháºn được “%sâ€" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "wanted-ref không được mong đợi: “%sâ€" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "lá»—i khi xá» lý wanted refs: %d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: cần nháºn được trả lá»i là kết thúc gói" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "không khá»›p phần đầu máy chủ" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "máy chủ đã không gá»i tất cả các đối tượng cần thiết" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "không có máy chủ tham chiếu nà o nhÆ° %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "" @@ -4077,7 +4136,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "“%sâ€: không thể Ä‘á»c %s" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4218,16 +4277,16 @@ msgstr[0] "" "\n" "Những lệnh giống nhất là " -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<các tùy chá»n>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s: %s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4323,6 +4382,10 @@ msgstr "mong đợi má»™t cái gì đó sau khi kết hợp:" msgid "multiple filter-specs cannot be combined" msgstr "không thể tổ hợp nhiá»u đặc tả kiểu lá»c" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "không thể nâng cấp định định dạng kho chứa để há»— trợ nhân bản cục bá»™" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4693,7 +4756,7 @@ msgstr "thêm/thêm" msgid "Skipped %s (merged same as existing)" msgstr "Äã bá» qua %s (đã có sẵn lần hòa trá»™n nà y)" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "mô-Ä‘un-con" @@ -4820,7 +4883,7 @@ msgid "failed to read the cache" msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› đệm" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "không thể ghi táºp tin lÆ°u bảng mục lục má»›i" @@ -5069,21 +5132,21 @@ msgstr "không thể phân tÃch đối tượng: “%sâ€" msgid "hash mismatch %s" msgstr "mã băm không khá»›p %s" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "không thể lấy kÃch cỡ của %s" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "vị trà tÆ°Æ¡ng đối trÆ°á»›c Ä‘iểm kết thúc của táºp tin gói (.idx há»ng à ?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "vị trà tÆ°Æ¡ng đối nằm trÆ°á»›c chỉ mục gói cho %s (mục lục bị há»ng à ?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "" @@ -5289,44 +5352,48 @@ msgid "unable to write delim packet" msgstr "không thể ghi gói delim" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "không thể ghi gói phân tách không trạng thái" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "gặp lá»—i khi ghi và o táºp tin gói lúc đẩy dữ liệu lên bá»™ nhá»›" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "lá»—i giao thức: không thể là m được dòng dà i" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "gặp lá»—i khi ghi gói có định dạng" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "gặp lá»—i khi ghi gói - dữ liệu vượt quá cỡ vói tối Ä‘a" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "gặp lá»—i khi ghi gói" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "lá»—i Ä‘á»c" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "máy chủ bị treo bất ngá»" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "lá»—i giao thức: ký tá»± chiá»u dà i dòng bị sai: %.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "lá»—i giao thức: chiá»u dà i dòng bị sai %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "lá»—i máy chủ: %s" @@ -5506,7 +5573,7 @@ msgstr "các mục tin stage không đúng thứ tá»± cho “%sâ€" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5563,7 +5630,7 @@ msgstr "không thể là m tÆ°Æ¡i má»›i mục lục đã chia sẻ “%sâ€" msgid "broken index, expect %s in %s, got %s" msgstr "mục lục bị há»ng, cần %s trong %s, nhÆ°ng lại nháºn được %s" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "không thể đóng “%sâ€" @@ -5749,7 +5816,7 @@ msgstr "" msgid "could not read '%s'." msgstr "không thể Ä‘á»c “%sâ€." -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "đã ra Ä‘i" @@ -5975,7 +6042,7 @@ msgstr "đối tượng dị hình tại “%sâ€" msgid "ignoring ref with broken name %s" msgstr "Ä‘ang lá» Ä‘i tham chiếu vá»›i tên há»ng %s" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "Ä‘ang lá» Ä‘i tham chiếu há»ng %s" @@ -6005,94 +6072,108 @@ msgstr "tên đối tượng dị hình %s" msgid "option `%s' must point to a commit" msgstr "tùy chá»n “%s†phải chỉ đến má»™t lần chuyển giao" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "“%s†không chỉ đến má»™t lần chuyển giao hợp lệ nà o cả!" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "không thể lấy vỠ“%sâ€" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "tên nhánh không hợp lệ: %s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "Ä‘ang lá» Ä‘i tham chiếu má»m thừa %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "không thể mở “%s†để ghi: %s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "không thể Ä‘á»c tham chiếu “%sâ€" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "tham chiếu “%s†đã có từ trÆ°á»›c rồi" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "không cần ID đối tượng khi ghi “%sâ€" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "không thể ghi và o “%sâ€" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "không thể mở “%s†để ghi" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "gặp ID đối tượng không cần khi xóa “%sâ€" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "nháºt ký cho tham chiếu %s có khoảng trống sau %s" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "nháºt ký cho tham chiếu %s kết thúc bất ngá» trên %s" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "nháºt ký cho %s trống rá»—ng" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "từ chối cáºp nháºt tham chiếu vá»›i tên sai “%sâ€" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "update_ref bị lá»—i cho ref “%sâ€: %s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "không cho phép Ä‘a cáºp nháºt cho tham chiếu “%sâ€" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "cáºp nháºt tham chiếu bị cấm trong môi trÆ°á»ng kiểm tra" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "các cáºp nháºt tham chiếu bị bãi bá» bởi móc" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "“%s†sẵn có; không thể tạo “%sâ€" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "không thể xá» lý “%s†và “%s†cùng má»™t lúc" @@ -6379,7 +6460,7 @@ msgstr "" " (dùng \"git pull\" để hòa trá»™n nhánh trên máy chủ và o trong nhánh của " "bạn)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "không thể phân tÃch tên đối tượng mong muốn “%sâ€" @@ -6506,20 +6587,20 @@ msgstr "không thể dò tìm Ä‘iểm xét duyệt HEAD" msgid "failed to find tree of %s" msgstr "gặp lá»—i khi tìm cây của %s" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "nhánh hiện tại của bạn có vẻ nhÆ° bị há»ng" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "nhánh hiện tại của bạn “%s†không có má»™t lần chuyển giao nà o cả" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent xung khắc vá»›i --bisect" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L vẫn chÆ°a há»— trợ định dạng khác biệt nà o ngoà i -p và -s" @@ -6560,11 +6641,15 @@ msgstr "máy chủ gặp lá»—i unpack: %s" msgid "failed to sign the push certificate" msgstr "gặp lá»—i khi ký chứng thá»±c đẩy" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "kết thúc nháºn không há»— trợ các tùy chá»n của lệnh push" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "kết thúc nháºn không há»— trợ đẩy --signed" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" @@ -6572,11 +6657,11 @@ msgstr "" "đừng gá»i giấy chứng nháºn đẩy trÆ°á»›c khi kết thúc nháºn không há»— trợ đẩy --" "signed" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "kết thúc nháºn không há»— trợ đẩy --atomic" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "kết thúc nháºn không há»— trợ các tùy chá»n của lệnh push" @@ -6697,7 +6782,7 @@ msgstr "không có khóa hiện diện trong “%.*sâ€" msgid "unable to dequote value of '%s'" msgstr "không thể giải trÃch dẫn giá trị của “%sâ€" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7544,84 +7629,84 @@ msgstr "không thể cà i đặt thÆ° mục là m việc sá» dụng cấu hình msgid "this operation must be run in a work tree" msgstr "thao tác nà y phải được thá»±c hiện trong thÆ° mục là m việc" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "Cần phiên bản kho git <= %d, nhÆ°ng lại nháºn được %d" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "tìm thấy phần mở rá»™ng kho chÆ°a biết:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "gặp lá»—i khi mở “%sâ€" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "táºp tin .git là quá lá»›n: “%sâ€" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "gặp lá»—i khi Ä‘á»c %s" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "định dạng táºp tin git không hợp lệ: %s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "không có Ä‘Æ°á»ng dẫn trong táºp tin git: %s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "không phải là kho git: %s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "“$%s†quá lá»›n" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "không phải là kho git: “%sâ€" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "không thể chdir (chuyển đổi thÆ° mục) sang “%sâ€" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "không thể quay lại cwd" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "gặp lá»—i khi lấy thống kê vỠ“%*s%s%sâ€" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "Không thể Ä‘á»c thÆ° mục là m việc hiện hà nh" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "không thể chuyển sang “%sâ€" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "không phải là kho git (hoặc bất kỳ thÆ° mục cha mẹ nà o): %s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7631,7 +7716,7 @@ msgstr "" "Dừng tại biên của hệ thống táºp tin (GIT_DISCOVERY_ACROSS_FILESYSTEM chÆ°a " "đặt)." -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7640,15 +7725,15 @@ msgstr "" "gặp vấn Ä‘á» vá»›i giá trị chế Ä‘á»™ táºp tin core.sharedRepository (0%.3o).\n" "ngÆ°á»i sở hữu táºp tin phải luôn có quyá»n Ä‘á»c và ghi." -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "gặp lá»—i khi mở “/dev/null†hay dup" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "gặp lá»—i khi rẽ nhánh tiến trình" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "setsid gặp lá»—i" @@ -7830,7 +7915,7 @@ msgstr "deflateEnd trên đối tượng %s gặp lá»—i (%d)" msgid "confused by unstable object source data for %s" msgstr "chÆ°a rõ rà ng baowir dữ liệu nguồn đối tượng không ổn định cho %s" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "gặp lá»—i utime() trên “%sâ€" @@ -8008,56 +8093,56 @@ msgid "invalid object name '%.*s'." msgstr "'%.*s' không phải là tên đối tượng hợp lệ" #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/giây" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/giây" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/giây" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u byte/giây" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "không thể sá»a “%sâ€" @@ -8307,7 +8392,7 @@ msgstr "không Ä‘á»c được táºp tin đầu và o “%sâ€" msgid "could not read from stdin" msgstr "không thể Ä‘á»c từ đầu và o tiêu chuẩn" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "không thể lấy thông tin thống kê vá» %s" @@ -8331,20 +8416,20 @@ msgstr "không thể tạo táºp tin tạm thá»i" msgid "could not rename temporary file to %s" msgstr "không thể đổi tên táºp tin tạm thá»i thà nh %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "ghi đầy đủ lên bá»™ há»— trợ máy chủ gặp lá»—i" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "không thể tìm thấy bá»™ há»— trợ máy chủ cho “%sâ€" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "không thể nhân đôi fd dầu ra bá»™ há»— trợ" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " @@ -8353,158 +8438,163 @@ msgstr "" "không hiểu capability bắt buá»™c %s; bá»™ há»— trợ máy chủ nà y gần nhÆ° chắc chắn " "là cần phiên bản Git má»›i hÆ¡n" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "bá»™ há»— trợ máy chủ nà y cần phải thá»±c thi capability đặc tả tham chiếu" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s said bất ngá»: “%sâ€" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s cÅ©ng khóa %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "không thể chạy fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "gặp lá»—i trong khi chạy fast-import" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "không thể Ä‘á»c tham chiếu %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "không hiểu đáp ứng để kết nối: %s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "giao thức nà y không há»— trợ cà i đặt Ä‘Æ°á»ng dẫn dịch vụ máy chủ" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "Ä‘Æ°á»ng dẫn dịch vụ máy chủ không hợp lệ" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "thao tác không được gia thức há»— trợ" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "không thể kết nối đến dịch vụ phụ %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "cần ok/error, nhÆ°ng bá»™ há»— trợ lại nói “%sâ€" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "bá»™ há»— trợ báo cáo rằng không cần tình trạng của %s" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "helper %s không há»— trợ dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "helper %s không há»— trợ --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "helper %s không há»— trợ --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "helper %s không há»— trợ --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "helper %s không há»— trợ “push-optionâ€" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "remote-helper không há»— trợ push; cần đặc tả tham chiếu" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "helper %s không há»— trợ “forceâ€" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "không thể chạy fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "gặp lá»—i trong khi chạy fast-export" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "Không có các tham chiếu trong phần chung và chÆ°a chỉ định; nên không là m gì " "cả.\n" -"Tuy nhiên bạn nên chỉ định má»™t nhánh nhÆ° “master†chẳng hạn.\n" +"Tuy nhiên bạn nên chỉ định má»™t nhánh.\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "không há»— trợ định dạng đối tượng “%sâ€" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "đáp ứng sai dạng trong danh sách tham chiếu: %s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "read(%s) gặp lá»—i" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "write(%s) gặp lá»—i" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "tuyến trình %s gặp lá»—i" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "tuyến trình %s gặp lá»—i khi gia nháºp: %s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "không thể khởi chạy tuyến trình để sao chép dữ liệu: %s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "xá» lý %s gặp lá»—i khi đợi" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "xá» lý %s gặp lá»—i" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "không thể khởi chạy tuyến trình cho việc chép dữ liệu" @@ -8518,33 +8608,33 @@ msgstr "Không thể đặt thượng nguồn của “%s†thà nh “%s†cá» msgid "could not read bundle '%s'" msgstr "không thể Ä‘á»c bó “%sâ€" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "váºn chuyển: tùy chá»n Ä‘á»™ sâu “%s†không hợp lệ" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "xem protocol.version trong “git help config†để có thêm thông tin" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "các tùy chá»n máy chủ yêu cầu giao thức phiên bản 2 hoặc má»›i hÆ¡n" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "không thể phân tÃch cú pháp cấu hình transport.color.*" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "việc há»— trợ giao thức v2 chÆ°a được thá»±c hiện" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "không hiểu giá trị cho cho cấu hình “%sâ€: %s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "không cho phép phÆ°Æ¡ng thức váºn chuyển “%sâ€" @@ -8553,7 +8643,7 @@ msgstr "không cho phép phÆ°Æ¡ng thức váºn chuyển “%sâ€" msgid "git-over-rsync is no longer supported" msgstr "git-over-rsync không còn được há»— trợ nữa" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" @@ -8562,7 +8652,7 @@ msgstr "" "Các Ä‘Æ°á»ng dẫn mô-Ä‘un-con sau đây có chứa các thay đổi cái mà \n" "có thể được tìm thấy trên má»i máy phục vụ:\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8589,11 +8679,11 @@ msgstr "" "để đẩy chúng lên máy phục vụ.\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "Bãi bá»." -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "gặp lá»—i khi đẩy dữ liệu của tất cả các mô-Ä‘un-con cần thiết" @@ -8883,7 +8973,7 @@ msgstr "" msgid "Updating index flags" msgstr "Äang cáºp nháºt các cá» mục lục" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "cần đẩy dữ liệu lên Ä‘Ä©a sau các tham số của lệnh fetch" @@ -8920,48 +9010,48 @@ msgstr "Ä‘oạn Ä‘Æ°á»ng dẫn “..†không hợp lệ" msgid "Fetching objects" msgstr "Äang lấy vá» các đối tượng" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "gặp lá»—i khi Ä‘á»c “%sâ€" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "“%s†tại cây là m việc chình không phải là thÆ° mục kho" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "" "táºp tin “%s†không chứa Ä‘Æ°á»ng dẫn tuyệt đối đến vị trà cây là m việc hiện" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "\"%s\" không tồn tại" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "“%s†không phải là táºp tin .git, mã lá»—i %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "“%s†không chỉ ngược đến “%sâ€" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "không thể mở “%s†để Ä‘á»c và ghi" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "không thể truy cáºp “%sâ€" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "không thể lấy thÆ° mục là m việc hiện hà nh" @@ -9360,39 +9450,46 @@ msgstr "Bạn hiện tại Ä‘ang thá»±c hiện việc bisect (di chuyển ná»a msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (dùng \"git bisect reset\" để quay trở lại nhánh nguyên thủy)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "" +"Bạn Ä‘ang ở trong lần lấy ra sparser %d%% của các táºp tin được theo dõi hiện " +"tại." + +#: wt-status.c:1733 msgid "On branch " msgstr "Trên nhánh " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "rebase ở chế Ä‘á»™ tÆ°Æ¡ng tác Ä‘ang được thá»±c hiện; lên trên " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "rebase Ä‘ang được thá»±c hiện: lên trên " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "Hiện tại chẳng ở nhánh nà o cả." -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "Lần chuyển giao khởi tạo" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "Vẫn chÆ°a chuyển giao" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "Những táºp tin chÆ°a được theo dõi" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "Những táºp tin bị lá» Ä‘i" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9404,32 +9501,32 @@ msgstr "" "có lẽ là m nó nhanh hÆ¡n, nhÆ°ng bạn phải cẩn tháºn đừng quên mình phải\n" "tá»± thêm các táºp tin má»›i (xem “git help statusâ€.." -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "Những táºp tin chÆ°a được theo dõi không được liệt kê ra %s" -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (dùng tùy chá»n -u để hiển thị các táºp tin chÆ°a được theo dõi)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "Không có thay đổi nà o" -#: wt-status.c:1768 +#: wt-status.c:1809 #, c-format msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" msgstr "" "không có thay đổi nà o được thêm và o để chuyển giao (dùng \"git add\" và /hoặc " "\"git commit -a\")\n" -#: wt-status.c:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "không có thay đổi nà o được thêm và o để chuyển giao\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " @@ -9438,68 +9535,68 @@ msgstr "" "không có gì được thêm và o lần chuyển giao nhÆ°ng có những táºp tin chÆ°a được " "theo dõi hiện diện (dùng \"git add\" để Ä‘Æ°a và o theo dõi)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "" "không có gì được thêm và o lần chuyển giao nhÆ°ng có những táºp tin chÆ°a được " "theo dõi hiện diện\n" -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "" "không có gì để chuyển giao (tạo/sao-chép các táºp tin và dùng \"git add\" để " "Ä‘Æ°a và o theo dõi)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "không có gì để chuyển giao\n" -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "" "không có gì để chuyển giao (dùng -u xem các táºp tin chÆ°a được theo dõi)\n" -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "không có gì để chuyển giao, thÆ° mục là m việc sạch sẽ\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "Vẫn không thá»±c hiện lệnh chuyển giao nà o " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD (không nhánh)" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "khác" -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "đằng sau " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "phÃa trÆ°á»›c " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "không thể %s: Bạn có các thay đổi chÆ°a được Ä‘Æ°a lên bệ phóng." -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "" "thêm và o đó, bảng mục lục của bạn có chứa các thay đổi chÆ°a được chuyển giao." -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "" @@ -9580,7 +9677,7 @@ msgstr "chạy thá»" msgid "interactive picking" msgstr "sá»a bằng cách tÆ°Æ¡ng tác" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "chá»n “hunks†theo kiểu tÆ°Æ¡ng tác" @@ -9711,12 +9808,12 @@ msgstr "Tùy chá»n --ignore-missing chỉ có thể được dùng cùng vá»›i msgid "--chmod param '%s' must be either -x or +x" msgstr "--chmod tham số “%s†phải hoặc là -x hay +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file xung khắc vá»›i các tham số đặc tả Ä‘Æ°á»ng dẫn" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul cần --pathspec-from-file" @@ -9827,11 +9924,11 @@ msgstr "thiếu dòng tác giả trong lần chuyển gia %s" #: builtin/am.c:1270 #, c-format msgid "invalid ident line: %.*s" -msgstr "dòng thụt lá» không hợp lệ: %.*s" +msgstr "dòng định danh không hợp lệ: %.*s" #: builtin/am.c:1489 msgid "Repository lacks necessary blobs to fall back on 3-way merge." -msgstr "Kho thiếu đối tượng blob cần thiết để trở vá» trên “3-way mergeâ€." +msgstr "Kho thiếu đối tượng blob cần thiết để thá»±c hiện “3-way mergeâ€." #: builtin/am.c:1491 msgid "Using index info to reconstruct a base tree..." @@ -9848,7 +9945,7 @@ msgstr "" #: builtin/am.c:1516 msgid "Falling back to patching base and 3-way merge..." -msgstr "Äang trở lại để vá cÆ¡ sở và “hòa trá»™n 3-Ä‘Æ°á»ngâ€â€¦" +msgstr "Äang dùng phÆ°Æ¡ng án dá»± phòng: vá bản cÆ¡ sở và “hòa trá»™n 3-Ä‘Æ°á»ngâ€â€¦" #: builtin/am.c:1542 msgid "Failed to merge in the changes." @@ -9982,7 +10079,7 @@ msgstr "tùy chá»n lịch sá» -- không-toán-tá»" msgid "allow fall back on 3way merging if needed" msgstr "cho phép quay trở lại để hòa trá»™n kiểu “3way†nếu cần" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "im lặng" @@ -10038,7 +10135,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "định dạng" @@ -10332,113 +10429,117 @@ msgstr "" "tham số không hợp lệ %s cho “git bisect termsâ€.\n" "Các tùy chá»n há»— trợ là : --term-good|--term-old và --term-bad|--term-new." -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "†không phải má»™t thá»i hạn hợp lệ" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "tùy chá»n không được thừa nháºn: “%sâ€" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "“%s†không có vẻ nhÆ° là má»™t Ä‘iểm xét duyệt hợp lệ" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "sai HEAD - Tôi cần má»™t HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "lấy ra “%s†ra gặp lá»—i. Hãy thá» \"git bisect reset <nhánh_hợp_lệ>\"." -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "sẽ không di chuyển ná»a bÆ°á»›c trên cây được cg-seek" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "sai HEAD - tham chiếu má»m kỳ lạ" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "refspec không hợp lệ: “%sâ€" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "thá»±c hiện “git bisect nextâ€" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "ghi thá»i kỳ và o .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "dá»n dẹp tình trạng di chuyển ná»a bÆ°á»›c" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "kiểm tra cho Ä‘iểm xem xét cần dùng" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "đặt lại trạng di chuyển ná»a bÆ°á»›c" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "ghi ra tình trạng di chuyển ná»a bÆ°á»›c trong BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "kiểm tra và đặt thá»i Ä‘iểm trong di chuyển ná»a bÆ°á»›c" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "kiểm tra xem các thá»i Ä‘iểm xấu/tốt có tồn tại không" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "in ra các thá»i Ä‘iểm di chuyển ná»a bÆ°á»›c" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "bắt đầu phiên di chuyển ná»a bÆ°á»›c" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "" "cáºp nháºt BISECT_HEAD thay vì lấy ra (checking out) lần chuyển giao hiện hà nh" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "không có nháºt ký cho BISECT_WRITE" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms cần hai tham số" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state không nháºn đối số" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "" "--bisect-reset requires không nháºn đối số cÅ©ng không nháºn lần chuyển giao" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write cần 4 hoặc 5 tham số" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms cần 3 tham số" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check cần 2 hoặc 3 tham số" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms cần 0 hoặc 1 tham số" @@ -11040,19 +11141,19 @@ msgstr "git bundle list-heads <táºp tin> [<tên tham chiếu>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <táºp tin> [<tên tham chiếu>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "không hiển thị bá»™ Ä‘o tiến trình" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "hiển thị bá»™ Ä‘o tiến trình" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "hiển thị bá»™ Ä‘o tiến triển trong suốt pha ghi đối tượng" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "tÆ°Æ¡ng tá»± --all-progress khi bá»™ Ä‘o tiến trình được xuất hiện" @@ -11092,11 +11193,11 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<định dạng>] | --batch-check[=<định dạng>]) [--follow-" +"symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11130,7 +11231,7 @@ msgstr "vá»›i đối tượng blob, chạy lệnh textconv trên ná»™i dung củ msgid "for blob objects, run filters on object's content" msgstr "vá»›i đối tượng blob, chạy lệnh filters trên ná»™i dung của đối tượng" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "blob" @@ -11191,8 +11292,8 @@ msgstr "Ä‘á»c tên táºp tin từ đầu và o tiêu chuẩn" msgid "terminate input and output records by a NUL character" msgstr "chấm dứt các bản ghi và o và ra bằng ký tá»± NULL" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "chặn các báo cáo tiến trình hoạt Ä‘á»™ng" @@ -11285,7 +11386,7 @@ msgstr "ghi ná»™i dung và o táºp tin tạm" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "chuá»—i" @@ -11398,11 +11499,11 @@ msgstr "'%s' hay '%s' không thể được sá» dụng vá»›i %s" msgid "path '%s' is unmerged" msgstr "Ä‘Æ°á»ng dẫn “%s†không được hòa trá»™n" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "bạn cần phải giải quyết bảng mục lục hiện tại của bạn trÆ°á»›c đã" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11412,50 +11513,50 @@ msgstr "" "sau:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Không thể thá»±c hiện reflog cho “%sâ€: %s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD hiện giá» tại" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "không thể cáºp nháºt HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "Äặt lại nhánh “%sâ€\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "Äã sẵn sà ng trên “%sâ€\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Äã chuyển tá»›i và đặt lại nhánh “%sâ€\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Äã chuyển đến nhánh má»›i “%sâ€\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "Äã chuyển đến nhánh “%sâ€\n" -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " … và nhiá»u hÆ¡n %d.\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11474,7 +11575,7 @@ msgstr[0] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11495,19 +11596,19 @@ msgstr[0] "" " git branch <tên_nhánh_má»›i> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "lá»—i ná»™i bá»™ trong khi di chuyển qua các Ä‘iểm xét duyệt" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "Vị trà trÆ°á»›c kia của HEAD là " -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "Bạn tại nhánh mà nó chÆ°a hỠđược sinh ra" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11516,7 +11617,7 @@ msgstr "" "“%s†không thể là cả táºp tin ná»™i bá»™ và má»™t nhánh theo dõi.\n" "Vui long dùng -- (và tùy chá»n thêm --no-guess) để tránh lẫn lá»™n" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11536,51 +11637,51 @@ msgstr "" "chÆ°a rõ rà ng, và dụ máy chủ “originâ€, cân nhắc cà i đặt\n" "checkout.defaultRemote=origin trong cấu hình của bạn." -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "“%s†khá»›p vá»›i nhiá»u (%d) nhánh máy chủ được theo dõi" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "chỉ cần má»™t tham chiếu" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "chỉ cần má»™t tham chiếu, nhÆ°ng lại Ä‘Æ°a ra %d." -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "tham chiếu không hợp lệ: %s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "tham chiếu không phải là má»™t cây:%s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "cần má»™t nhánh, nhÆ°ng lại nháºn được thẻ “%sâ€" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "cần má»™t nhánh, nhÆ°ng lại nháºn được nhánh máy phục vụ “%sâ€" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "cần má»™t nhánh, nhÆ°ng lại nháºn được “%sâ€" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "cần má»™t nhánh, nhÆ°ng lại nháºn được “%sâ€" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11588,7 +11689,7 @@ msgstr "" "không thể chuyển nhánh trong khi Ä‘ang hòa trá»™n\n" "Cân nhắc dung \"git merge --quit\" hoặc \"git worktree add\"." -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11596,7 +11697,7 @@ msgstr "" "không thể chuyển nhanh ở giữa má»™t phiên am\n" "Cân nhắc dùng \"git am --quit\" hoặc \"git worktree add\"." -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11604,7 +11705,7 @@ msgstr "" "không thể chuyển nhánh trong khi cải tổ\n" "Cân nhắc dùng \"git rebase --quit\" hay \"git worktree add\"." -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11612,7 +11713,7 @@ msgstr "" "không thể chuyển nhánh trong khi cherry-picking\n" "Cân nhắc dùng \"git cherry-pick --quit\" hay \"git worktree add\"." -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11620,150 +11721,150 @@ msgstr "" "không thể chuyển nhánh trong khi hoà n nguyên\n" "Cân nhắc dùng \"git revert --quit\" hoặc \"git worktree add\"." -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "" "bạn hiện tại Ä‘ang thá»±c hiện việc chuyển nhánh trong khi Ä‘ang di chuyển ná»a " "bÆ°á»›c" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "các Ä‘Æ°á»ng dẫn không thể dùng cùng vá»›i các nhánh chuyển" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "“%s†không thể được sá» dụng vá»›i các nhánh chuyển" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "“%s†không thể được dùng vá»›i “%sâ€" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "“%s†không thể nháºn <Ä‘iểm-đầu>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Không thể chuyển nhánh đến má»™t thứ không phải là lần chuyển giao “%sâ€" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "thiếu tham số là nhánh hoặc lần chuyển giao" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "ép buá»™c báo cáo tiến triển công việc" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "thá»±c hiện hòa trá»™n kiểu 3-way vá»›i nhánh má»›i" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "kiểu" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "xung Ä‘á»™t kiểu (hòa trá»™n hoặc diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "rá»i bá» HEAD tại lần chuyển giao theo tên" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "đặt thông tin thượng nguồn cho nhánh má»›i" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "ép buá»™c lấy ra (bá» Ä‘i những thay đổi ná»™i bá»™)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "nhánh-má»›i" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "nhánh không cha má»›i" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "cáºp nháºt các táºp tin bị bá» qua (mặc định)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "không kiểm tra nếu cây là m việc khác Ä‘ang giữ tham chiếu đã cho" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "" "lấy ra (checkout) phiên bản của chúng ta cho các táºp tin chÆ°a được hòa trá»™n" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "" "lấy ra (checkout) phiên bản của chúng há» cho các táºp tin chÆ°a được hòa trá»™n" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "không giá»›i hạn đặc tả Ä‘Æ°á»ng dẫn thà nh chỉ các mục rải rác" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%c, -%c và --orphan loại từ lẫn nhau" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p và --overlay loại từ lẫn nhau" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track cần tên má»™t nhánh" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "thiếu tên nhánh; hãy thá» -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "không thể phân giải “%sâ€" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "Ä‘Æ°á»ng dẫn đã cho không hợp lệ" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "" "“%s†không phải là má»™t lần chuyển giao và má»™t nhánh'%s†không thể được tạo " "từ đó" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach không nháºn má»™t đối số Ä‘Æ°á»ng dẫn “%sâ€" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file xung khắc vá»›i --detach" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file xung khắc vá»›i --patch" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -11771,69 +11872,70 @@ msgstr "" "git checkout: --ours/--theirs, --force và --merge là xung khắc vá»›i nhau khi\n" "checkout bảng mục lục (index)." -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "bạn phải chỉ định các thÆ° mục muốn hồi phục" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "nhánh" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "tạo và checkout má»™t nhánh má»›i" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "tạo/đặt_lại và checkout má»™t nhánh" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "tạo reflog cho nhánh má»›i" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "Ä‘oán thứ hai 'git checkout <không-nhánh-nà o-nhÆ°-váºy>' (mặc định)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "dùng chế Ä‘á»™ che phủ (mặc định)" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "tạo và chuyển đến má»™t nhánh má»›i" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "tạo/đặt_lại và chuyển đến má»™t nhánh" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "gợi ý thứ hai \"git checkout <không-nhánh-nà o-nhÆ°-váºy>\"" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "vứt bá» các sá»a đổi địa phÆ°Æ¡ng" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "lấy ra từ tree-ish nà o" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "phục hồi bảng mục lục" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "phục hồi cây là m việc (mặc định)" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "bá» qua những thứ chÆ°a hòa trá»™n: %s" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "dùng chế Ä‘á»™ che phủ" @@ -11996,11 +12098,7 @@ msgstr "đồng thá»i gỡ bá» cả các táºp tin bị bá» qua" msgid "remove only ignored files" msgstr "chỉ gỡ bá» những táºp tin bị bá» qua" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x và -X không thể dùng cùng nhau" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -12008,7 +12106,7 @@ msgstr "" "clean.requireForce được đặt thà nh true và không Ä‘Æ°a ra tùy chá»n -i, -n mà " "cÅ©ng không -f; từ chối lệnh dá»n dẹp (clean)" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -12016,6 +12114,10 @@ msgstr "" "clean.requireForce mặc định được đặt là true và không Ä‘Æ°a ra tùy chá»n -i, -n " "mà cÅ©ng không -f; từ chối lệnh dá»n dẹp (clean)" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x và -X không thể dùng cùng nhau" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<các tùy chá»n>] [--] <kho> [<t.mục>]" @@ -12024,7 +12126,7 @@ msgstr "git clone [<các tùy chá»n>] [--] <kho> [<t.mục>]" msgid "don't create a checkout" msgstr "không tạo má»™t checkout" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "tạo kho thuần" @@ -12056,11 +12158,11 @@ msgstr "khởi tạo mô-Ä‘un-con trong bản sao" msgid "number of submodules cloned in parallel" msgstr "số lượng mô-Ä‘un-con được nhân bản đồng thá»i" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "thÆ°-mục-mẫu" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "thÆ° mục mà tại đó các mẫu sẽ được dùng" @@ -12074,8 +12176,8 @@ msgstr "kho tham chiếu" msgid "use --reference only while cloning" msgstr "chỉ dùng --reference khi nhân bản" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "tên" @@ -12100,7 +12202,7 @@ msgstr "Ä‘á»™-sâu" msgid "create a shallow clone of that depth" msgstr "tạo bản sao không đầy đủ cho mức sâu đã cho" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "thá»i-gian" @@ -12133,11 +12235,11 @@ msgstr "" msgid "any cloned submodules will be shallow" msgstr "má»i mô-Ä‘un-con nhân bản sẽ là shallow (nông)" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "gitdir" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "không dùng chung thÆ° mục dà nh riêng cho git và thÆ° mục là m việc" @@ -12264,7 +12366,7 @@ msgstr "không thể đóng gói để dá»n dẹp" msgid "cannot unlink temporary alternates file" msgstr "không thể bá» liên kết táºp tin thay thế tạm thá»i" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "Có quá nhiá»u đối số." @@ -12281,48 +12383,48 @@ msgstr "tùy chá»n --bare và --origin %s xung khắc nhau." msgid "--bare and --separate-git-dir are incompatible." msgstr "tùy chá»n --bare và --separate-git-dir xung khắc nhau." -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "kho chứa “%s†chÆ°a tồn tại" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "Ä‘á»™ sâu %s không phải là má»™t số nguyên dÆ°Æ¡ng" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "Ä‘Æ°á»ng dẫn Ä‘Ãch “%s†đã có từ trÆ°á»›c và không phải là má»™t thÆ° mục rá»—ng." -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "cây là m việc “%s†đã sẵn tồn tại rồi." -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "không thể tạo các thÆ° mục dẫn đầu của “%sâ€" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "không thể tạo cây thÆ° mục là m việc dir “%sâ€" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Äang nhân bản thà nh kho chứa bare “%sâ€â€¦\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "Äang nhân bản thà nh “%sâ€â€¦\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" @@ -12330,41 +12432,41 @@ msgstr "" "nhân bản --recursive không tÆ°Æ¡ng thÃch vá»›i cả hai --reference và --reference-" "if-able" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth bị lá» Ä‘i khi nhân bản ná»™i bá»™; hãy sá» dụng file:// để thay thế." -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "" "--shallow-since bị lá» Ä‘i khi nhân bản ná»™i bá»™; hãy sá» dụng file:// để thay " "thế." -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "" "--shallow-exclude bị lá» Ä‘i khi nhân bản ná»™i bá»™; hãy sá» dụng file:// để thay " "thế." -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "" "--filter bị lá» Ä‘i khi nhân bản ná»™i bá»™; hãy sá» dụng file:// để thay thế." -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "kho nguồn là nông, nên bá» qua --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local bị lá» Ä‘i" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Nhánh máy chủ %s không tìm thấy trong thượng nguồn %s" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "Bạn hình nhÆ° là đã nhân bản má»™t kho trống rá»—ng." @@ -12400,14 +12502,14 @@ msgstr "Chèn thêm khoảng trắng giữa các cá»™t" msgid "--command must be the first argument" msgstr "--command phải là đối số đầu tiên" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir </thÆ°/mục/đối/tượng>] [--shallow] [--" "[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12417,88 +12519,97 @@ msgstr "" "split[=<chiến lược>]] [--reachable|--stdin-packs|--stdin-commits][--changed-" "paths] [--[no-]progress] <các tùy chá»n chia tách>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "không thể tìm thấy thÆ° mục đối tượng khá»›p vá»›i “%sâ€" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "tmục" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "ThÆ° mục đối tượng để lÆ°u đồ thị" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "" "nếu đồ-thị-các-lần-chuyển-giao bị chia cắt, thì chỉ thẩm tra táºp tin đỉnh" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "Không thể mở đồ thị chuyển giao “%sâ€" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "đối số --split không được thừa nháºn, %s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "nháºn được ID đối tượng không phải dạng hex không cần: %s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "đối tượng không hợp lệ: %s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "bắt đầu di chuyển tại má»i tham chiếu" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "" "quét dó các mục lục gói được liệt kê bởi đầu và o tiêu chuẩn cho các lần " "chuyển giao" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "" "bắt đầu di chuyển tại các lần chuyển giao được liệt kê bởi đầu và o tiêu chuẩn" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "" "bao gồm má»i lần chuyển giao đã sẵn có trongÆ°á»i táºp tin đồ-thị-các-lần-chuyển-" "giao" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "cho phép tÃnh toán các Ä‘Æ°á»ng dẫn đã bị thay đổi" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "cho phép ghi má»™t táºp tin đồ há»a các lần chuyển giao lá»›n lên" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "" "số lượng tối Ä‘a của các lần chuyển giao trong má»™t đồ-thị-các-lần-chuyển-giao " "chia cắt không-cÆ¡-sở" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "tá»· lệ tối Ä‘a giữa hai mức của má»™t đồ-thị-các-lần-chuyển-giao chia cắt" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "chỉ là m hết hạn các táºp tin khi nó cÅ© hÆ¡n khoảng <thá»i gian> Ä‘Æ°a ra" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "" "không thể sá» dụng hÆ¡n má»™t --reachable, --stdin-commits, hay --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "nháºn được ID đối tượng không phải dạng hex không cần: %s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "SÆ°u táºp các lần chuyển giao từ đầu và o" #: builtin/commit-tree.c:18 msgid "" @@ -12917,7 +13028,7 @@ msgid "version" msgstr "phiên bản" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "kết xuất dạng máy-có-thể-Ä‘á»c" @@ -12930,8 +13041,8 @@ msgid "terminate entries with NUL" msgstr "chấm dứt các mục bằng NUL" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "chế Ä‘á»™" @@ -13624,35 +13735,45 @@ msgstr "--dirty là xung khắc vá»›i các tùy chá»n commit-ish" msgid "--broken is incompatible with commit-ishes" msgstr "--broken là xung khắc vá»›i commit-ishes" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "“%sâ€: không phải táºp tin bình thÆ°á»ng hay liên kết má»m" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "tùy chá»n không hợp lệ: %s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: không có cÆ¡ sở hòa trá»™n" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "Không phải là kho git" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "đối tượng đã cho “%s†không hợp lệ." -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "đã cho nhiá»u hÆ¡n hai đối tượng blob: “%sâ€" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "đã cho đối tượng không thể nắm giữ “%sâ€." +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s: có nhiá»u cÆ¡ sở để hòa trá»™n, nên dùng %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "" @@ -13804,85 +13925,107 @@ msgstr "" msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "Lá»—i: không thể xuất thẻ lồng nhau trừ khi --mark-tags được chỉ định." -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "--anonymize-map thẻ không thể là rá»—ng" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "hiển thị tiến triển sau <n> đối tượng" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "chá»n Ä‘iá»u khiển của thẻ đã ký" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "chá»n sá»± xá» lý của các thẻ, cái mà đánh thẻ các đối tượng được lá»c ra" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "" "chá»n bá»™ xá» lý cho các ghi chú của lần chuyển giao theo má»™t bá»™ mã thay thế" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "Äổ các đánh dấu nà y và o táºp-tin" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "Nháºp và o đánh dấu từ táºp tin nà y" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "Nháºp và o đánh dấu từ táºp tin sẵn có" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "Là m giả má»™t cái thẻ khi thẻ bị thiếu má»™t cái" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "Xuất ra toà n bá»™ cây cho má»—i lần chuyển giao" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "Sá» dụng tÃnh năng done để chấm dứt luồng dữ liệu" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "Bá» qua kết xuất của dữ liệu blob" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "refspec" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "Ãp dụng refspec cho refs đã xuất" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "kết xuất anonymize" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "từ:đến" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "chuyển đổi <from> sang <to> đầu ra ẩn danh" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "" "Các cha mẹ tham chiếu cái mà k trong luồng dữ liệu fast-export bởi mã id đối " "tượng" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "Hiển thị các mã id nguyên gốc của blobs/commits" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "Gắn nhãn thẻ ID dấu" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +#| msgid "--trailer with --only-input does not make sense" +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map mà không có --anonymize là không hợp lý" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "Không thể chuyển qua cả hai --import-marks và --import-marks-if-exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "Táºp tin khóa đã được tạo nhÆ°ng chÆ°a được báo cáo: %s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<các tùy chá»n>] [<kho-chứa> [<refspec>…]]" @@ -14211,40 +14354,40 @@ msgstr "" msgid "You need to specify a tag name." msgstr "Bạn phải định rõ tên thẻ." -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "Mức sâu là số âm trong --deepen là không được há»— trợ" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "Các tùy chá»n--deepen và --depth loại từ lẫn nhau" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "tùy chá»n --depth và --unshallow không thể sá» dụng cùng vá»›i nhau" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "--unshallow trên kho hoà n chỉnh là không hợp lý" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "lệnh lấy vá» \"fetch --all\" không lấy đối số kho chứa" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "lệnh lấy vá» \"fetch --all\" không hợp lý vá»›i refspecs" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "Không có nhóm máy chủ hay máy chủ nhÆ° thế: %s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "Việc lấy vá» cả má»™t nhóm và chỉ định refspecs không hợp lý" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14703,8 +14846,8 @@ msgstr "số tuyến đã cho không hợp lệ (%d) cho %s" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "không há»— trợ Ä‘a tuyến, bá» qua %s" @@ -14934,11 +15077,11 @@ msgstr "tùy chá»n --untracked không được há»— trợ vá»›i --recurse-submo msgid "invalid option combination, ignoring --threads" msgstr "tổ hợp tùy chá»n không hợp lệ, bá» qua --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "không há»— trợ Ä‘a tuyến, bá» qua --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "số tuyến chỉ ra không hợp lệ (%d)" @@ -15138,7 +15281,7 @@ msgstr "lá»—i Ä‘á»c ở đầu và o" msgid "used more bytes than were available" msgstr "sá» dụng nhiá»u hÆ¡n số lượng byte mà nó sẵn có" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "gói quá lá»›n so vá»›i định nghÄ©a hiện tại của kiểu off_t" @@ -15208,8 +15351,8 @@ msgstr "sá»± mâu thuẫn xả nén nghiêm trá»ng" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "Sá»° VA CHẠM SHA1 Äà XẢY RA VỚI %s!" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "không thể Ä‘á»c %s" @@ -15270,7 +15413,7 @@ msgstr "lá»™n xá»™n hÆ¡n cả Ä‘iên rồ khi chạy hà m parse_pack_objects()" msgid "Resolving deltas" msgstr "Äang phân giải các delta" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "không thể tạo tuyến: %s" @@ -15333,56 +15476,65 @@ msgstr "không thể lÆ°u táºp tin gói" msgid "cannot store index file" msgstr "không thể lÆ°u trữ táºp tin ghi mục lục" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "sai pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Không thể mở táºp tin gói đã sẵn có “%sâ€" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Không thể mở táºp tin idx của gói cho “%sâ€" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "không delta: %d đối tượng" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "chiá»u dà i xÃch = %d: %lu đối tượng" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "Không thể quay lại cwd" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "%s sai" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "không hiểu thuáºt toán băm dữ liệu “%sâ€" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin không thể được dùng mà không có --stdin" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin cần má»™t kho git" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format không thể được dùng vá»›i --stdin" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "dùng tùy chá»n --verify mà không Ä‘Æ°a ra tên packfile" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "lá»—i fsck trong các đối tượng gói" @@ -15426,51 +15578,56 @@ msgstr "các mẫu không được tìm thấy trong %s" msgid "not copying templates from '%s': %s" msgstr "không sao chép các mẫu từ “%sâ€: %s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "tên nhánh khởi tạo không hợp lệ: “%sâ€" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "không thể xá» lý (handle) táºp tin kiểu %d" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "không di chuyển được %s và o %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "cố để khởi tạo lại má»™t kho vá»›i kiểu băm dữ liệu khác" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "không hiểu thuáºt toán băm dữ liệu “%sâ€" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s đã có từ trÆ°á»›c rồi" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init: --initial-branch=%s bị bá» qua" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "Äã khởi tạo lại kho Git chia sẻ sẵn có trong %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "Äã khởi tạo lại kho Git sẵn có trong %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "Äã khởi tạo lại kho Git chia sẻ trống rá»—ng sẵn có trong %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "Äã khởi tạo lại kho Git trống rá»—ng sẵn có trong %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15478,33 +15635,37 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<thÆ°-mục-tạm>] [--shared[=<các-" "quyá»n>]] [thÆ°-mục]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "các quyá»n" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "chỉ ra cái mà kho git được chia sẻ giữa nhiá»u ngÆ°á»i dùng" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "ghi đè lên tên của nhánh khởi tạo" + +#: builtin/init-db.c:564 msgid "hash" msgstr "băm" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "chỉ định thuáºt toán băm dữ liệu muốn dùng" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "không thể mkdir (tạo thÆ° mục): %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "không thể chdir (chuyển đổi thÆ° mục) sang %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -15513,7 +15674,7 @@ msgstr "" "%s (hoặc --work-tree=<thÆ°-mục>) không cho phép không chỉ định %s (hoặc --git-" "dir=<thÆ°-mục>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "Không thể truy cáºp cây (tree) là m việc “%sâ€" @@ -15911,11 +16072,11 @@ msgstr "tá»· lệ phần trăm theo cái tạo là weighted" #: builtin/log.c:1812 #, c-format msgid "invalid ident line: %s" -msgstr "dòng thụt lá» không hợp lệ: %s" +msgstr "dòng định danh không hợp lệ: %s" #: builtin/log.c:1827 msgid "-n and -k are mutually exclusive" -msgstr "-n và -k loại từ lẫn nhau" +msgstr "-n và -k loại trừ lẫn nhau" #: builtin/log.c:1829 msgid "--subject-prefix/--rfc and -k are mutually exclusive" @@ -17270,7 +17431,7 @@ msgstr "cố gắng gỡ bá» má»™t note chÆ°a từng tồn tại không phải msgid "read object names from the standard input" msgstr "Ä‘á»c tên đối tượng từ thiết bị nháºp chuẩn" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "không gỡ bá», chỉ hiển thị" @@ -17305,103 +17466,120 @@ msgstr "" "git pack-objects [các tùy chá»n…] <base-name> [< <danh-sách-ref> | < <danh-" "sách-đối-tượng>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "CRC của đối tượng gói sai vá»›i %s" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "đối tượng đã đóng gói sai há»ng cho %s" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "dò thấy delta đệ quy cho đối tượng %s" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "đã sắp xếp %u đối tượng, cần %<PRIu32>" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "tắt ghi bitmap, các gói bị chia nhá» bởi vì pack.packSizeLimit" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "Äang ghi lại các đối tượng" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "gặp lá»—i khi lấy thông tin thống kê vá» %s" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "đã ghi %<PRIu32> đối tượng trong khi cần %<PRIu32>" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "tắt ghi bitmap, nhÆ° váºy má»™t số đối tượng sẽ không được đóng gói" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "khoảng bù cÆ¡ sở cho delta bị trà n trong gói cho %s" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "khoảng bù cÆ¡ sở cho delta nằm ngoà i phạm cho %s" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "Äang đếm các đối tượng" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "không thể phân tÃch phần đầu đối tượng của “%sâ€" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "không thể Ä‘á»c đối tượng %s" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "" "đối tượng %s không nhất quán vá» chiá»u dà i đối tượng (%<PRIuMAX> so vá»›i " "%<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "suboptimal pack - hết bá»™ nhá»›" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "Nén delta dùng tá»›i %d tuyến trình" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "không thể đóng gói các đối tượng tiếp cáºn được từ thẻ “%sâ€" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "Äang nén các đối tượng" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "mâu thuẫn vá»›i số lượng delta" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" +"giá trị của uploadpack.blobpackfileuri phải có dạng '<object-hash> <pack-" +"hash> <uri>' (nháºn '%s')" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "" +"đối tượng đã được cấu hình trong má»™t uploadpack.blobpackfileuri khác (đã " +"nháºn '%s')" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17410,7 +17588,7 @@ msgstr "" "cần ID đối tượng cạnh, nháºn được rác:\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17419,228 +17597,236 @@ msgstr "" "cần ID đối tượng, nháºn được rác:\n" " %s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "giá trị cho --missing không hợp lệ" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "không thể mở mục lục của gói" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "đối tượng mất tại %s không thể đã kiểm tra" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "không thể buá»™c mất đối tượng" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "không phải má»™t rev “%sâ€" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "Ä‘iểm xem xét sai “%sâ€" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "không thể thêm các đối tượng má»›i dùng" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "phiên bản mục lục không được há»— trợ %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "phiên bản mục lục sai “%sâ€" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<phiên bản>[,offset]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "ghi táºp tin bảng mục lục gói (pack) ở phiên bản định dạng idx đã cho" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "kcÃh thÆ°á»›c tối Ä‘a cho táºp tin gói được tạo" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "bá» qua các đối tượng vay mượn từ kho đối tượng thay thế" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "bá» qua các đối tượng đóng gói" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "giá»›i hạn cá»a sổ đóng gói theo đối tượng" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "giá»›i hạn cá»a sổ đóng gói theo bá»™ nhá»› cá»™ng thêm vá»›i giá»›i hạn đối tượng" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "Ä‘á»™ dà i tối Ä‘a của chuá»—i móc xÃch “delta†được phép trong gói kết quả" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "dùng lại các delta sẵn có" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "dùng lại các đối tượng sẵn có" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "dùng các đối tượng OFS_DELTA" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "sá» dụng các tuyến trình khi tìm kiếm cho các mẫu khá»›p delta tốt nhất" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "không thể tạo kết xuất gói trống rá»—ng" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "Ä‘á»c tham số “revision†từ thiết bị nháºp chuẩn" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "giá»›i hạn các đối tượng thà nh những cái mà chúng vẫn chÆ°a được đóng gói" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "bao gồm các đối tượng có thể Ä‘á»c được từ bất kỳ tham chiếu nà o" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "bao gồm các đối tượng được tham chiếu bởi các mục reflog" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "bao gồm các đối tượng được tham chiếu bởi mục lục" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "xuất gói ra đầu ra tiêu chuẩn" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "bao gồm các đối tượng tham chiếu đến các đối tượng được đóng gói" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "giữ lại các đối tượng không thể Ä‘á»c được" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "pack mất các đối tượng không thể Ä‘á»c được" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "" "xả nén (gỡ khá»i gói) các đối tượng không thể Ä‘á»c được má»›i hÆ¡n <thá»i-gian>" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "sá» dụng thuáºt toán “sparse reachabilityâ€" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "tạo gói nhẹ" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "tạo gói để phù hợp cho lấy vá» nông (shallow)" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "bá» qua các gói mà nó có táºp tin .keep Ä‘i kèm" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "bá» qua gói nà y" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "mức nén gói" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "không ẩn các lần chuyển giao bởi “graftsâ€" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "dùng mục lục ánh xạ nếu có thể được để nâng cao tốc Ä‘á»™ đếm đối tượng" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "ghi má»™t mục lục ánh xạ cùng vá»›i mục lục gói" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "ghi mục lục ánh xạ nếu được" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "xá» lý cho thiếu đối tượng" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "không thể đóng gói các đối tượng trong các táºp tin gói hứa hẹn" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "tôn trá»ng island trong suốt quá trình nén “deltaâ€" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "giao thức" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "loại trừ bất kỳ cấu hình uploadpack.blobpackfileuri vá»›i giao thức nà y" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "mức sau xÃch delta %d là quá sâu, buá»™c dùng %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "pack.deltaCacheLimit là quá cao, ép dùng %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "" "--max-pack-size không thể được sá» dụng để xây dá»±ng má»™t gói để váºn chuyển" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "giá»›i hạn kÃch thÆ°á»›c tối thiểu của gói là 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin không thể được dùng để xây dá»±ng gói đánh mục lục được" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable và --unpack-unreachable xung khắc nhau" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "không thể dùng tùy chá»n --filter mà không có --stdout" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "Äánh số các đối tượng" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -18958,7 +19144,7 @@ msgstr "Chuyển-tiếp-nhanh %s đến %s.\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <thÆ°-mục-git>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -18988,7 +19174,7 @@ msgstr "" "Äể chấm dứt lá»i nhắn nà y và vẫn giữ cách ứng xá» mặc định, hãy đặt\n" "biến cấu hình “receive.denyCurrentBranch†thà nh “refuseâ€." -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -19009,11 +19195,11 @@ msgstr "" "\n" "Äể chấm dứt lá»i nhắn nà y, bạn hãy đặt nó thà nh “refuseâ€." -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "im lặng" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "Bạn phải chỉ định thÆ° mục." @@ -19960,7 +20146,7 @@ msgstr "-d cần Ãt nhất má»™t tham số" #: builtin/replace.c:593 msgid "bad number of arguments" -msgstr "số đối số không đúng" +msgstr "số lượng đối số không đúng" #: builtin/replace.c:599 msgid "-e needs exactly one argument" @@ -20554,6 +20740,14 @@ msgstr "“%s†không phải tham chiếu hợp lệ." msgid "cannot find commit %s (%s)" msgstr "không thể tìm thấy lần chuyển giao %s (%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "thuáºt-toán-băm" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "Không hiểu thuáºt toán băm dữ liệu" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20612,50 +20806,54 @@ msgstr "" "không thể phân tÃch cú pháp cây là m việc nà y (táºp tin sparse-checkout có lẽ " "không tồn tại)" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "gặp lá»—i khi tạo thÆ° mục cho táºp tin sparse-checkout" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "không thể nâng cấp định dạng kho lÆ°u trữ để kÃch hoạt worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "gặp lá»—i khi đặt cà i đặt extensions.worktreeConfig" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "khởi tạo sparse-checkout trong chế Ä‘á»™ nón" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "gặp lá»—i khi mở “%sâ€" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "không thể thÆ°á»ng hóa Ä‘Æ°á»ng dẫn “%sâ€" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <các mẫu>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "không thể bá» trÃch dẫn chuá»—i kiểu C “%sâ€" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "không thể tải các mẫu sparse-checkout" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "Ä‘á»c các mẫu từ đầu và o tiêu chuẩn" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "gặp lá»—i khi Ä‘á»c lại thÆ° mục là m việc" @@ -21361,12 +21559,41 @@ msgstr "Chặn kết xuất cho cà i đặt url của má»™t mô-Ä‘un-con" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] </Ä‘Æ°á»ng/dẫn> <url_má»›i>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "đặt nhánh theo dõi mặc định thà nh master" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "đặt nhánh theo dõi mặc định" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet](-d|--default)</Ä‘Æ°á»ng/dẫn>" + +#: builtin/submodule--helper.c:2301 +#| msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]" +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <nhánh> </Ä‘Æ°á»ng/" +"dẫn>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "cần --branch hoặc --default" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "Các tùy chá»n --branch và --default loại từ lẫn nhau" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s không há»— trợ --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "“%s†không phải là lệnh con submodule--helper hợp lệ" @@ -22002,193 +22229,187 @@ msgstr "git worktree remove [<các tùy chá»n>] <worktree>" msgid "git worktree unlock <path>" msgstr "git worktree unlock </Ä‘Æ°á»ng/dẫn>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "gặp lá»—i khi xóa “%sâ€" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "Gỡ bá» cây là m việc/%s: không phải là thÆ° mục hợp lệ" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "Gỡ bá» cây là m việc/%s: không có táºp tin gitdir" +msgid "not a valid directory" +msgstr "không phải thÆ° mục hợp lệ" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "Gỡ bá» cây là m việc/%s: không thể Ä‘á»c táºp tin gitdir (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "táºp tin gitdir không tồn tại" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "Gỡ bá» cây là m việc/%s: Ä‘á»c ngắn (cần %<PRIuMAX> byte, Ä‘á»c %<PRIuMAX>)" +msgid "unable to read gitdir file (%s)" +msgstr "không thể Ä‘á»c táºp tin gitdir (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "Gỡ bá» cây là m việc/%s: táºp tin gitdir không hợp lệ" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "Ä‘á»c ngắn (cần %<PRIuMAX> byte, Ä‘á»c %<PRIuMAX>)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "táºp tin gitdir (thÆ° mục git) không hợp lệ" + +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "táºp tin gitdir chỉ đến vị trà không tồn tại" -#: builtin/worktree.c:126 +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "Gỡ bá» cây là m việc/%s: táºp tin gitdir chỉ đến vị trà không tồn tại" +msgid "Removing %s/%s: %s" +msgstr "Äang xóa %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "báo cáo các cây là m việc đã prune" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "các cây là m việc hết hạn cÅ© hÆ¡n khoảng <thá»i gian>" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "“%s†đã có từ trÆ°á»›c rồi" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "không thể thêm-lại cây “%sâ€" +msgid "unusable worktree destination '%s'" +msgstr "Ä‘Ãch cây là m việc không sá» dụng được “%sâ€" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" "“%s†bị mất nhÆ°ng cây là m việc bị khóa;\n" -"dùng “add -f -f†để ghi đè, hoặc “unlock†và “prune†hay “remove†để xóa" +"dùng “%s -f -f†để ghi đè, hoặc “unlock†và “prune†hay “remove†để xóa" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" "“%s†bị mất nhÆ°ng cây là m việc đã được đăng ký;\n" -"dùng “add -f†để ghi đè, hoặc “prune†hay “remove†để xóa" +"dùng “%s -f†để ghi đè, hoặc “prune†hay “remove†để xóa" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "không thể tạo thÆ° mục của “%sâ€" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "Äang chuẩn bị cây là m việc (nhánh má»›i “%sâ€)" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "Äang chuẩn bị cây là m việc (Ä‘ang cà i đặt nhánh “%sâ€, trÆ°á»›c đây tại %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "Äang chuẩn bị cây là m việc (Ä‘ang lấy ra “%sâ€)" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "Äang chuẩn bị cây là m việc (HEAD đã tách rá»i “%sâ€)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "lấy ra <nhánh> ngay cả khi nó đã được lấy ra ở cây là m việc khác" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "tạo nhánh má»›i" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "tạo hay đặt lại má»™t nhánh" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "di chuyển cây là m việc má»›i" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "giữ cây là m việc má»›i bị khóa" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "cà i đặt chế Ä‘á»™ theo dõi (xem git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "có khá»›p tên tên nhánh má»›i vá»›i má»™t nhánh theo dõi máy chủ" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "Các tùy chá»n -b, -B, và --detach loại từ lẫn nhau" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "--[no-]track chỉ có thể được dùng nếu má»™t nhánh má»›i được tạo" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "lý do khóa" -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "%s không phải là cây là m việc" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "Cây thÆ° mục là m việc chÃnh không thể khóa hay bá» khóa được" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "“%s†đã được khóa rồi, lý do: %s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "“%s†đã được khóa rồi" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "“%s†chÆ°a bị khóa" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "cây là m việc có chứa mô-Ä‘un-con không thể di chuyển hay xóa bá»" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "ép buá»™c ngay cả khi cây là m việc Ä‘ang bẩn hay bị khóa" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "“%s†là cây là m việc chÃnh" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "không thể phác há»a ra tên Ä‘Ãch đến “%sâ€" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "Ä‘Ãch “%s†đã tồn tại rồi" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -22197,7 +22418,7 @@ msgstr "" "không thể di chuyển má»™t cây-là m-việc bị khóa, khóa vì: %s\n" "dùng “move -f -f†để ghi đè hoặc mở khóa trÆ°á»›c đã" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -22205,38 +22426,38 @@ msgstr "" "không thể di chuyển má»™t cây-là m-việc bị khóa;\n" "dùng “move -f -f†để ghi đè hoặc mở khóa trÆ°á»›c đã" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "thẩm tra gặp lá»—i, không thể di chuyển má»™t cây-là m-việc: %s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "gặp lá»—i khi chuyển “%s†sang “%sâ€" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "gặp lá»—i khi chạy “git status†và o “%sâ€" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "" "“%s†có chứa các táºp tin đã bị sá»a chữa hoặc chÆ°a được theo dõi, hãy dùng --" "force để xóa nó" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "gặp lá»—i khi chạy “git status†trong “%sâ€, mã %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "ép buá»™c di chuyển tháºm chà cả khi cây là m việc Ä‘ang bẩn hay bị khóa" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -22245,7 +22466,7 @@ msgstr "" "không thể xóa bá» má»™t cây-là m-việc bị khóa, khóa vì: %s\n" "dùng “remove -f -f†để ghi đè hoặc mở khóa trÆ°á»›c đã" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -22253,7 +22474,7 @@ msgstr "" "không thể xóa bá» má»™t cây-là m-việc bị khóa;\n" "dùng “remove -f -f†để ghi đè hoặc mở khóa trÆ°á»›c đã" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "thẩm tra gặp lá»—i, không thể gỡ bá» má»™t cây-là m-việc: %s" @@ -22274,33 +22495,33 @@ msgstr "ghi đối tượng cây (tree) cho <tiá»n tố> thÆ° mục con" msgid "only useful for debugging" msgstr "chỉ hữu Ãch khi cần gỡ lá»—i" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "phiên bản git:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() gặp lá»—i '%s' (%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "thông tin trình biên dịch: " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "thông tin libc: " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "không chạy từ má»™t kho git - nên chẳng có móc nà o để mà hiển thị cả\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "" "git bugreport [-o|--output-directory <táºp_tin>] [-s|--suffix <định_dạng>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22334,68 +22555,78 @@ msgstr "" "Vui lòng xen xét phần còn lại của báo cáo lá»—i bên dÆ°á»›i.\n" "Bạn có thể xóa bất kỳ dòng nà o bạn không muốn chia sẻ.\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "chỉ định thÆ° mục định để tạo táºp tin báo cáo lá»—i" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "" "chỉ định chuá»—i định dạng thá»i gian strftime dùng là m háºu tố cho tên táºp tin" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "không thể tạo các thÆ° mục dẫn đầu cho “%sâ€" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "Thông tin hệ thống" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "Các Móc đã được báºt" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "không thể tạo táºp tin má»›i tại “%sâ€" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "không thể ghi và o %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "Äã tạo báo cáo má»›i tại “%sâ€\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "Thiếu các đánh dấu cho mô-Ä‘un-con “%sâ€" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "Thiếu đánh dấu cho mô-Ä‘un-con “%sâ€" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "Cần lệnh 'mark', nhÆ°ng lại nháºn được %s" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "Cần lệnh 'to', nhÆ°ng lại nháºn được %s" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "Cần định dạng tên:tên_táºp_tin cho tùy chá»n ghi lại mô-Ä‘un-con" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "" "tÃnh năng ' %s ' bị cấm chỉ trong đầu và o mà không có --allow-unsafe-features" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "tham số cho --packfile phải là má»™t giá trị băm hợp lệ (nháºn được '%s')" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22574,34 +22805,34 @@ msgstr "Äiá»u khiển giao quyá»n không được há»— trợ vá»›i cURL < 7.2 msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "Chốt khóa công không được há»— trợ vá»›i cURL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "CURLSSLOPT_NO_REVOKE không được há»— trợ vá»›i cURL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "Các hạn chế giao thức không được há»— trợ vá»›i cURL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "" "Không há»— trợ ứng dụng SSL chạy phÃa sau “%sâ€. Há»— trợ ứng dụng SSL chạy phÃa " "sau:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "" "Không thể đặt ứng dụng chạy SSL phÃa sau “%sâ€: cURL được biên dịch không có " "sá»± há»— trợ ứng dụng chạy phÃa sau SSL" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "Không thể đặt ứng dụng chạy sau SSL cho “%sâ€: đã đặt rồi" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22612,113 +22843,136 @@ msgstr "" " há»i cho: %s\n" " chuyển hÆ°á»›ng: %s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "sai trÃch dẫn trong giá trị push-option :“%sâ€" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs không hợp lệ: đây có phải là má»™t kho git?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "" "đáp ứng từ máy phục vụ không hợp lệ; cần dịch vụ, nhÆ°ng lại nháºn được gói " "flush" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "trả vá» của máy phục vụ không hợp lệ; nháºn được %s" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "không tìm thấy kho “%sâ€" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "Xác thá»±c gặp lá»—i cho “%sâ€" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "không thể truy cáºp “%sâ€: %s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "chuyển hÆ°á»›ng đến %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "không nên có EOF khi không gentle trên EOF" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "máy phục vụ từ xa gá»i các bá»™ ngăn cách không tình trạng" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "không thể tua lại dữ liệu post rpc - thá» tăng http.postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: ký tá»± chiá»u dà i dòng bị sai: %.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: gặp đáp ứng là gói kết thúc bất ngá»" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC gặp lá»—i; %s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "không thể xá» lý đẩy cái lá»›n nà y" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "không thể giải nén yêu cầu; có lá»—i khi giải nén của zlib %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "không thể giải nén yêu cầu; có lá»—i ở cuối %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "đã nháºn vá» phần đầu có chiá»u dà i %d byte" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "phần thân vẫn còn cần %d byte" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "đổ váºn chuyển http không há»— trợ khả năng nông" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "lấy vá» gặp lá»—i." -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "không thể lấy vá» bằng sha1 thông qua smart http" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "lá»—i giao thức: cần sha/ref, nhÆ°ng lại nháºn được “%sâ€" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "váºn chuyển http không há»— trợ %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push gặp lá»—i" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl: usage: git remote-curl <máy chủ> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl: gặp lá»—i khi Ä‘á»c luồng dữ liệu lệnh từ git" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl: đã cố gắng fetch mà không có kho ná»™i bá»™" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl: không hiểu lệnh “%s†từ git" @@ -23762,26 +24016,26 @@ msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€: “$command $sha1â€" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Gặp lá»—i khi đệ quy và o trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$displaypathâ€" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "Tùy chá»n --cached không thể dùng cùng vá»›i tùy chá»n --files" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "chế Ä‘á»™ không nhÆ° mong chá» $mod_dst" -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Cảnh báo: $display_name không chứa lần chuyển giao $sha1_src" -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Cảnh báo: $display_name không chứa lần chuyển giao $sha1_dst" -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" @@ -24094,7 +24348,7 @@ msgstr "Không thể thá»±c thi trình biên soạn" #: git-rebase--preserve-merges.sh:900 #, sh-format msgid "Could not checkout $switch_to" -msgstr "Không thể checkout $switch_to" +msgstr "Không thể lấy ra $switch_to" #: git-rebase--preserve-merges.sh:907 msgid "No HEAD?" @@ -24201,7 +24455,7 @@ msgid "touched %d path\n" msgid_plural "touched %d paths\n" msgstr[0] "%d Ä‘Æ°á»ng dẫn đã touch (chạm)\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." @@ -24209,7 +24463,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức\n" "được đánh dấu để chuyển lên bệ phóng." -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." @@ -24217,7 +24471,7 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức\n" "được đánh dấu để tạm cất." -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." @@ -24225,8 +24479,8 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức\n" "được đánh dấu để bá» chuyển lên bệ phóng." -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." @@ -24234,8 +24488,8 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức\n" "được đánh dấu để áp dụng." -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." @@ -24243,12 +24497,12 @@ msgstr "" "Nếu miếng vá được áp dụng sạch sẽ, khúc đã sá»a sẽ ngay láºp tức\n" "được đánh dấu để loại bá»." -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "gặp lá»—i khi táºp tin sá»a khúc để ghi: %s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -24261,12 +24515,12 @@ msgstr "" "Äể xóa bá» dòng “%sâ€, xóa chúng Ä‘i.\n" "Những dòng bắt đầu bằng %s sẽ bị loại bá».\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "gặp lá»—i khi mở táºp tin khúc để Ä‘á»c: %s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -24281,7 +24535,7 @@ msgstr "" "d - đừng Ä‘Æ°a lên bệ phóng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o còn lại trong táºp " "tin" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -24295,7 +24549,7 @@ msgstr "" "a - tạm cất khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng tạm cất khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o còn lại trong táºp tin" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -24311,7 +24565,7 @@ msgstr "" "d - đừng Ä‘Æ°a ra khá»i bệ phóng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o còn lại trong " "táºp tin" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -24325,7 +24579,7 @@ msgstr "" "a - áp dụng khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng áp dụng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -24339,7 +24593,7 @@ msgstr "" "a - loại bá» khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng loại bá» khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -24353,7 +24607,7 @@ msgstr "" "a - loại bá» khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng loại bá» khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24367,7 +24621,7 @@ msgstr "" "a - áp dụng khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng áp dụng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24381,7 +24635,7 @@ msgstr "" "a - áp dụng khúc nà y và tất cả các khúc sau nà y trong táºp tin\n" "d - đừng áp dụng khúc nà y cÅ©ng nhÆ° bất kỳ cái nà o sau nà y trong táºp tin" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24403,83 +24657,88 @@ msgstr "" "e - sá»a bằng tay khúc hiện hà nh\n" "? - in trợ giúp\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "Các khúc đã chá»n không được áp dụng và o bảng mục lục!\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "bá» qua những thứ chÆ°a hòa trá»™n: %s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "Ãp dụng thay đổi chế Ä‘á»™ cho cây là m việc [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "Ãp dụng việc xóa cho cây là m việc [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Ãp dụng việc thêm cho cây là m việc [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "Ãp dụng khúc nà y và o cây là m việc [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "Không còn khúc nà o để mà nhảy đến\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "Số không hợp lệ: “%sâ€\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "Rất tiếc, chỉ có sẵn %d khúc.\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "Không còn khúc nà o để mà tìm kiếm\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "Äịnh dạng tìm kiếm của biểu thức chÃnh quy không đúng %s: %s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "Không thấy khúc nà o khá»›p mẫu đã cho\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "Không có khúc kế trÆ°á»›c\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "Không có khúc kế tiếp\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "Rất tiếc, không thể chia nhá» khúc nà y\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "Chi nhá» thà nh %d khúc.\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "Rất tiếc, không thể sá»a khúc nà y\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24499,19 +24758,19 @@ msgstr "" "add untracked - thêm ná»™i dung các các táºp tin chÆ°a theo dõi và táºp hợp các " "thay đổi đã đặt lên bệ phóng\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "thiếu --" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "không hiểu chế Ä‘á»™ --patch: %s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "đối số không hợp lệ %s, cần --" @@ -24824,61 +25083,91 @@ msgstr "(mbox) Thêm cc: %s từ dòng “%sâ€\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) Äang thêm to: %s từ dòng “%sâ€\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) Thêm cc: %s từ dòng “%sâ€\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(body) Thêm cc: %s từ dòng “%sâ€\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) Không thể thá»±c thi “%sâ€" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) Äang thêm %s: %s từ: “%sâ€\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) gặp lá»—i khi đóng Ä‘Æ°á»ng ống đến “%sâ€" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "không thể lấy gá»i thÆ° dạng 7 bÃt" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "bảng mã truyá»n không hợp lệ" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "không thể mở %s: %s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s: miếng vá có chứa dòng dà i hÆ¡n 998 ký tá»±" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "Bá» qua %s vá»›i háºu tố sao lÆ°u dá»± phòng “%sâ€.\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "Bạn có thá»±c sá»± muốn gá»i %s? [y|N](có/KHÔNG): " #, c-format +#~ msgid "Finding commits for commit graph from %d ref" +#~ msgid_plural "Finding commits for commit graph from %d refs" +#~ msgstr[0] "" +#~ "Äang tìm các lần chuyển giao cho đồ thị lần chuyển giao từ %d tham chiếu" + +#, c-format +#~ msgid "invalid commit object id: %s" +#~ msgstr "mã số đối tượng lần chuyển giao không hợp lệ: %s" + +#, c-format +#~ msgid "Removing worktrees/%s: not a valid directory" +#~ msgstr "Gỡ bá» cây là m việc/%s: không phải là thÆ° mục hợp lệ" + +#, c-format +#~ msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +#~ msgstr "Gỡ bá» cây là m việc/%s: không thể Ä‘á»c táºp tin gitdir (%s)" + +#, c-format +#~ msgid "Removing worktrees/%s: invalid gitdir file" +#~ msgstr "Gỡ bá» cây là m việc/%s: táºp tin gitdir không hợp lệ" + +#, c-format +#~ msgid "unable to re-add worktree '%s'" +#~ msgstr "không thể thêm-lại cây “%sâ€" + +#, c-format +#~ msgid "target '%s' already exists" +#~ msgstr "Ä‘Ãch “%s†đã tồn tại rồi" + +#, c-format #~ msgid "" #~ "Cannot update sparse checkout: the following entries are not up to date:\n" #~ "%s" @@ -25043,7 +25332,7 @@ msgstr "Bạn có thá»±c sá»± muốn gá»i %s? [y|N](có/KHÔNG): " #~ msgstr "không thể chép “%s†sang “%sâ€." #~ msgid "malformed ident line" -#~ msgstr "thụt đầu dòng dị hình" +#~ msgstr "dòng định danh không hợp lệ" #~ msgid "corrupted author without date information" #~ msgstr "tác giả sai há»ng không có thông tin nà y tháng" @@ -26104,9 +26393,6 @@ msgstr "Bạn có thá»±c sá»± muốn gá»i %s? [y|N](có/KHÔNG): " #~ msgid "insanely long template path %s" #~ msgstr "Ä‘Æ°á»ng dẫn mẫu “%s†dà i má»™t cách Ä‘iên rồ" -#~ msgid "unsupported sort specification '%s'" -#~ msgstr "không há»— trợ đặc tả sắp xếp “%sâ€" - #~ msgid "unsupported sort specification '%s' in variable '%s'" #~ msgstr "không há»— trợ đặc tả sắp xếp “%s†trong biến “%sâ€" diff --git a/po/zh_CN.po b/po/zh_CN.po index ee0e6bee0d..a531819623 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -139,8 +139,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-27 07:39+0800\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-17 10:27+0800\n" "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" "Language-Team: GitHub <https://github.com/jiangxin/git/>\n" "Language: zh_CN\n" @@ -242,21 +242,21 @@ msgstr[1] "å¢žåŠ äº† %d 个路径\n" msgid "ignoring unmerged: %s" msgstr "忽略未åˆå…¥çš„:%s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "åªæœ‰äºŒè¿›åˆ¶æ–‡ä»¶è¢«ä¿®æ”¹ã€‚\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "没有修改。\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "è¡¥ä¸æ›´æ–°" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "检视 diff" @@ -324,11 +324,11 @@ msgstr "选择一个编å·æ¡ç›®" msgid "(empty) select nothing" msgstr "(空)ä¸é€‰æ‹©ä»»ä½•å†…容" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** 命令 ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "请选择" @@ -345,7 +345,7 @@ msgstr "未缓å˜" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "路径" @@ -354,33 +354,38 @@ msgstr "路径" msgid "could not refresh index" msgstr "ä¸èƒ½åˆ·æ–°ç´¢å¼•" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "å†è§ã€‚\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "æš‚å˜æ¨¡å¼å˜æ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " msgstr "æš‚å˜åˆ 除动作 [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "æš‚å˜æ·»åŠ 动作 [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "æš‚å˜è¯¥å— [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." msgstr "如果补ä¸èƒ½æ£ç¡®åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºæš‚å˜ã€‚" -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -394,28 +399,33 @@ msgstr "" "a - æš‚å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸æš‚å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "è´®è—模å¼å˜æ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " msgstr "è´®è—åˆ é™¤åŠ¨ä½œ [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "è´®è—æ·»åŠ åŠ¨ä½œ [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "è´®è—è¯¥å— [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." msgstr "如果补ä¸èƒ½æ£ç¡®åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºè´®è—。" -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -429,28 +439,33 @@ msgstr "" "a - è´®è—该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è´®è—该å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "å–消暂å˜æ¨¡å¼å˜æ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " msgstr "å–消暂å˜åˆ 除动作 [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "å–消暂å˜æ·»åŠ 动作 [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "å–消暂å˜è¯¥å— [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." msgstr "如果补ä¸èƒ½æ£ç¡®åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºæœªæš‚å˜ã€‚" -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -464,28 +479,33 @@ msgstr "" "a - å–消暂å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦å–消暂å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "将模å¼å˜æ›´åº”用到索引 [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " msgstr "å°†åˆ é™¤æ“作应用到索引 [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "å°†æ·»åŠ æ“作应用到索引 [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "将该å—应用到索引 [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." msgstr "如果补ä¸èƒ½æ£ç¡®åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºåº”用。" -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -499,31 +519,37 @@ msgstr "" "a - 应用该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦åº”用该å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "从工作区ä¸ä¸¢å¼ƒæ¨¡å¼å˜æ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " msgstr "从工作区ä¸ä¸¢å¼ƒåˆ 除动作 [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "从工作区ä¸ä¸¢å¼ƒæ·»åŠ 动作 [y,n,q,a,d%s,?]? " + +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "从工作区ä¸ä¸¢å¼ƒè¯¥å— [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." msgstr "如果补ä¸èƒ½æ£ç¡®åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºä¸¢å¼ƒã€‚" -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -537,22 +563,27 @@ msgstr "" "a - 丢弃该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦ä¸¢å¼ƒè¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "从索引和工作区ä¸ä¸¢å¼ƒæ¨¡å¼å˜æ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " -msgstr "从索引和工作区ä¸ä¸¢å¼ƒåˆ 除 [y,n,q,a,d%s,?]? " +msgstr "从索引和工作区ä¸ä¸¢å¼ƒåˆ 除动作 [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "从索引和工作区ä¸ä¸¢å¼ƒæ·»åŠ 动作 [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "从索引和工作区ä¸ä¸¢å¼ƒè¯¥å— [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -566,22 +597,27 @@ msgstr "" "a - 丢弃该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦ä¸¢å¼ƒè¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "将模å¼å˜æ›´åº”用到索引和工作区 [y,n,q,a,d%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " msgstr "å°†åˆ é™¤æ“作应用到索引和工作区 [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "å°†æ·»åŠ æ“作应用到索引和工作区 [y,n,q,a,d%s,?]? " + +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "将该å—应用到索引和工作区 [y,n,q,a,d%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -595,7 +631,7 @@ msgstr "" "a - 应用该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦åº”用该å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -609,40 +645,40 @@ msgstr "" "a - 应用该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦åº”用该å—和本文件ä¸åŽé¢çš„全部å—\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "æ— æ³•è§£æžæ•°æ®å—å¤´ä¿¡æ¯ '%.*s'" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "æ— æ³•è§£æžå½©è‰²æ•°æ®å—å¤´ä¿¡æ¯ '%.*s'" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "ä¸èƒ½è§£æžå·®å¼‚ä¿¡æ¯" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "ä¸èƒ½è§£æžå½©è‰²å·®å¼‚ä¿¡æ¯" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "è¿è¡Œ '%s' 失败" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "interactive.diffFilter 的输出ä¸åŒ¹é…" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." msgstr "您的过滤器必须在其输入和输出的行之间ä¿æŒä¸€ä¸€å¯¹åº”的关系。" -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -651,7 +687,7 @@ msgstr "" "预期上下文行 #%d 于\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -664,11 +700,11 @@ msgstr "" "\tä¸æ˜¯ç»“尾于:\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "手动å—ç¼–è¾‘æ¨¡å¼ -- 查看底部的快速指å—。\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -682,7 +718,7 @@ msgstr "" "以 %c å¼€å§‹çš„è¡Œå°†è¢«åˆ é™¤ã€‚\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -691,11 +727,11 @@ msgstr "" "如果ä¸èƒ½å¹²å‡€åœ°åº”用,您将有机会é‡æ–°ç¼–辑。如果该å—çš„å…¨éƒ¨å†…å®¹åˆ é™¤ï¼Œåˆ™\n" "æ¤æ¬¡ç¼–辑被终æ¢ï¼Œè¯¥å—ä¸ä¼šè¢«ä¿®æ”¹ã€‚\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "æ— æ³•è§£æžæ•°æ®å—头信æ¯" -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "'git apply --cached' 失败" @@ -711,24 +747,24 @@ msgstr "'git apply --cached' 失败" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "您的编辑å—ä¸èƒ½è¢«åº”用。é‡æ–°ç¼–辑(选择 \"no\" 丢弃ï¼ï¼‰ [y/n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "选ä¸çš„å—ä¸èƒ½åº”用到索引ï¼" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "æ— è®ºå¦‚ä½•éƒ½è¦åº”用到工作区么?" -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "未应用。\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -750,69 +786,69 @@ msgstr "" "e - 手动编辑当å‰å—\n" "? - 显示帮助\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "没有å‰ä¸€ä¸ªå—" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "没有下一个å—" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "没有其它å¯ä¾›è·³è½¬çš„å—" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "跳转到哪个å—(<回车> 查看更多)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "跳转到哪个å—?" -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "æ— æ•ˆæ•°å—:'%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "对ä¸èµ·ï¼Œåªæœ‰ %d 个å¯ç”¨å—。" msgstr[1] "对ä¸èµ·ï¼Œåªæœ‰ %d 个å¯ç”¨å—。" -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "没有其它å¯ä¾›æŸ¥æ‰¾çš„å—" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "使用æ£åˆ™è¡¨è¾¾å¼æœç´¢ï¼Ÿ" -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "错误的æ£åˆ™è¡¨è¾¾å¼ %s:%s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "没有和给定模å¼ç›¸åŒ¹é…çš„å—" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "对ä¸èµ·ï¼Œä¸èƒ½æ‹†åˆ†è¿™ä¸ªå—" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "拆分为 %d å—。" -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "对ä¸èµ·ï¼Œä¸èƒ½ç¼–辑这个å—" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' 失败" @@ -1484,7 +1520,7 @@ msgstr "ç¡®ä¿è‡³å°‘åŒ¹é… <n> 行上下文" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "动作" @@ -1573,7 +1609,7 @@ msgstr "路径ä¸æ˜¯æœ‰æ•ˆçš„ UTF-8:%s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "路径太长(%d å—符,SHA1:%s):%s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "压缩错误 (%d)" @@ -1642,8 +1678,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "为归档ä¸æ¯ä¸ªè·¯å¾„ååŠ ä¸Šå‰ç¼€" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -1867,10 +1903,10 @@ msgstr "ä¸èƒ½å°† --contents 和最终的æ交对象å共用" msgid "--reverse and --first-parent together require specified latest commit" msgstr "--reverse å’Œ --first-parent 共用,需è¦æŒ‡å®šæœ€æ–°çš„æ交" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "版本é历设置失败" @@ -2023,84 +2059,88 @@ msgstr "'%s' å·²ç»æ£€å‡ºåˆ° '%s'" msgid "HEAD of working tree %s is not updated" msgstr "工作区 %s çš„ HEAD 指å‘没有被更新" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' ä¸åƒæ˜¯ä¸€ä¸ª v2 版本的包文件" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "未知的哈希算法长度" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "未能识别的包头:%s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "ä¸èƒ½æ‰“å¼€ '%s'" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "仓库ä¸ç¼ºå°‘这些必备的æ交:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "需è¦ä¸€ä¸ªä»“库æ¥æ ¡éªŒä¸€ä¸ªåŒ…" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "这个包ä¸å«æœ‰è¿™ä¸ªå¼•ç”¨ï¼š" msgstr[1] "这个包ä¸å«æœ‰ %d 个引用:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "这个包记录一个完整历å²ã€‚" -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "这个包需è¦è¿™ä¸ªå¼•ç”¨ï¼š" msgstr[1] "è¿™ä¸ªåŒ…éœ€è¦ %d 个引用:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "æ— æ³•å¤åˆ¶ bundle æ述符" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "ä¸èƒ½ç”Ÿæˆ pack-objects 进程" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "pack-objects 终æ¢" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list 终æ¢" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "引用 '%s' 被 rev-list 选项排除" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "未能识别的å‚数:%s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "ä¸èƒ½åˆ›å»ºç©ºåŒ…。" -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "ä¸èƒ½åˆ›å»º '%s'" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "index-pack 终æ¢" @@ -2109,269 +2149,261 @@ msgstr "index-pack 终æ¢" msgid "invalid color value: %.*s" msgstr "æ— æ•ˆçš„é¢œè‰²å€¼ï¼š%.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "æ交图形文件太å°" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "æ交图形ç¾å %X å’Œç¾å %X ä¸åŒ¹é…" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "æ交图形版本 %X 和版本 %X ä¸åŒ¹é…" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "æ交图形哈希版本 %X 和版本 %X ä¸åŒ¹é…" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "æ交图形å—查找表æ¡ç›®ä¸¢å¤±ï¼Œæ–‡ä»¶å¯èƒ½ä¸å®Œæ•´" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "æ交图形ä¸æ£ç¡®çš„å—å移 %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "æäº¤å›¾å½¢å— id %08x 出现了多次" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "æ交图形没有基础图形å—" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "æ交图形链ä¸åŒ¹é…" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "æ— æ•ˆçš„æ交图形链:行 '%s' ä¸æ˜¯ä¸€ä¸ªå“ˆå¸Œå€¼" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "æ— æ³•æ‰¾åˆ°æ‰€æœ‰æ交图形文件" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "æ— æ•ˆçš„æ交ä½ç½®ã€‚æ交图形å¯èƒ½å·²æŸå" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "æ— æ³•æ‰¾åˆ°æ交 %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "ä¸èƒ½è§£æžæ交 %s" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "编写å˜æ›´è·¯å¾„çš„ Bloom 过滤器索引" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "编写å˜æ›´è·¯å¾„çš„ Bloom 过滤器数æ®" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "æ— æ³•èŽ·å¾—å¯¹è±¡ %s 类型" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "æ£åœ¨åŠ è½½æ交图ä¸çš„已知æ交" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "æ£åœ¨æ‰©å±•æ交图ä¸çš„å¯è¾¾æ交" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "æ£åœ¨æ¸…除æ交图ä¸çš„æäº¤æ ‡è®°" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "æ£åœ¨è®¡ç®—æ交图世代数å—" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "计算æ交å˜æ›´è·¯å¾„çš„ Bloom 过滤器" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "æ£åœ¨æ”¶é›†å¼•ç”¨çš„æ交" + +#: commit-graph.c:1447 #, 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:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "æ·»åŠ åŒ… %s 出错" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "为 %s 打开索引出错" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "æ£åœ¨ä»Ž %d 个引用ä¸æŸ¥æ‰¾æ交图的æ交" -msgstr[1] "æ£åœ¨ä»Ž %d 个引用ä¸æŸ¥æ‰¾æ交图的æ交" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "æ— æ•ˆçš„æ交对象 ID:%s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "æ£åœ¨æ‰“包对象ä¸æŸ¥æ‰¾æ交图的æ交" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "æ£åœ¨è®¡ç®—æ交图ä¸ä¸åŒçš„æ交" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "æ£åœ¨æŸ¥æ‰¾æ交图ä¸é¢å¤–çš„è¾¹" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "æ— æ³•å†™å…¥æ£ç¡®æ•°é‡çš„基础图形 ID" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "ä¸èƒ½ä¸º %s 创建先导目录" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "æ— æ³•åˆ›å»ºä¸´æ—¶å›¾å±‚" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "æ— æ³•ä¸º '%s' 调整共享æƒé™" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, 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:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "æ— æ³•æ‰“å¼€æ交图形链文件" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "æ— æ³•é‡å‘½å基础æ交图形文件" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "æ— æ³•é‡å‘½å临时æ交图形文件" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "æ£åœ¨æ‰«æåˆå¹¶æ交" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "æ„外的é‡å¤æ交 ID %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "æ£åœ¨åˆå¹¶æ交图形" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "æäº¤å›¾æ ¼å¼ä¸èƒ½å†™å…¥ %d 个æ交" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "æ交太多ä¸èƒ½ç”»å›¾" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "æäº¤å›¾æ–‡ä»¶çš„æ ¡éªŒç 错误,å¯èƒ½å·²ç»æŸå" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "æ交图形的对象 ID 顺åºä¸æ£ç¡®ï¼š%s ç„¶åŽ %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "æ交图形有ä¸æ£ç¡®çš„扇出值:fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "æ— æ³•ä»Žæ交图形ä¸è§£æžæ交 %s" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "æ£åœ¨æ ¡éªŒæ交图ä¸çš„æ交" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "æ— æ³•ä»Žæ交图形的对象库ä¸è§£æžæ交 %s" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "æ交图形ä¸çš„æ交 %s çš„æ ¹æ ‘å¯¹è±¡ ID 是 %s != %s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "æ交 %s çš„æ交图形父æ交列表太长了" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "%s çš„æ交图形父æ交是 %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "æ交 %s çš„æ交图形父æ交列表过早终æ¢" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" msgstr "æ交图形ä¸æ交 %s 的世代å·æ˜¯é›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹éžé›¶" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" msgstr "æ交图形ä¸æ交 %s 的世代å·éžé›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹æ˜¯é›¶" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "æ交图形ä¸çš„æ交 %s 的世代å·æ˜¯ %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "æ交图形ä¸æ交 %s çš„æ交日期是 %<PRIuMAX> != %<PRIuMAX>" @@ -2407,27 +2439,27 @@ msgstr "" "设置 \"git config advice.graftFileDeprecated false\"\n" "å¯å…³é—本消æ¯" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "æ交 %s 有一个éžå¯ä¿¡çš„声称æ¥è‡ª %s çš„ GPG ç¾å。" -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "æ交 %s 有一个错误的声称æ¥è‡ª %s çš„ GPG ç¾å。" -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "æ交 %s 没有 GPG ç¾å。" -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "æ交 %s 有一个æ¥è‡ª %s 的好的 GPG ç¾å。\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2615,7 +2647,7 @@ msgstr "%s çš„å–å€¼æ ¼å¼é”™è¯¯ï¼š%s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "必须是其ä¸ä¹‹ä¸€ï¼šnothingã€matchingã€simpleã€upstream 或 current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "错误的打包压缩级别 %d" @@ -2763,72 +2795,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ '%s'" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒç‰¹æ€§ '%s'" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "在能力之åŽåº”为一个 flush 包" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "忽略第一行 '%s' 之åŽçš„能力å—段" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "å议错误:æ„外的 capabilities^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "å议错误:预期浅克隆 sha-1,å´å¾—到 '%s'" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "å¦ä¸€ç«¯çš„仓库ä¸èƒ½æ˜¯æµ…克隆仓库" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "æ— æ•ˆæ•°æ®åŒ…" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "å议错误:æ„外的 '%s'" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "æœåŠ¡å™¨ç»™å‡ºæœªçŸ¥çš„å¯¹è±¡æ ¼å¼ '%s'" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "æ— æ•ˆçš„ ls-refs å“应:%s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "在引用列表之åŽåº”该有一个 flush 包" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "在引用列表之åŽåº”该有å“应结æŸåŒ…" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "ä¸æ”¯æŒ '%s' åè®®" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "æ— æ³•ä¸º socket 设置 SO_KEEPALIVE" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "查找 %s ..." -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "æ— æ³•æŸ¥æ‰¾ %sï¼ˆç«¯å£ %s)(%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2837,7 +2878,7 @@ msgstr "" "完æˆã€‚\n" "连接到 %sï¼ˆç«¯å£ %s)... " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2847,73 +2888,73 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "完æˆã€‚" -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "æ— æ³•æŸ¥æ‰¾ %s(%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "æœªçŸ¥ç«¯å£ %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "已阻æ¢å¥‡æ€ªçš„主机å '%s'" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "已阻æ¢å¥‡æ€ªçš„端å£å· '%s'" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "ä¸èƒ½å¯åŠ¨ä»£ç† %s" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "未指定路径,执行 'git help pull' 查看有效的 url è¯æ³•" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "ssh å˜ä½“ 'simple' ä¸æ”¯æŒ -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "ssh å˜ä½“ 'simple' ä¸æ”¯æŒ -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "ssh å˜ä½“ 'simple' ä¸æ”¯æŒè®¾ç½®ç«¯å£" -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "已阻æ¢å¥‡æ€ªçš„路径å '%s'" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "æ— æ³• fork" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "æ£åœ¨æ£€æŸ¥è¿žé€šæ€§" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "ä¸èƒ½æ‰§è¡Œ 'git rev-list'" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "写入 rev-list 失败" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "å…³é— rev-list çš„æ ‡å‡†è¾“å…¥å¤±è´¥" @@ -3172,18 +3213,18 @@ msgid "" msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库。使用 --no-index 比较工作区之外的两个路径" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " æ— æ³•è§£æž dirstat 截æ¢ï¼ˆcut-off)百分比 '%s'\n" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " 未知的 dirstat å‚æ•° '%s'\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3191,7 +3232,7 @@ msgstr "" "移动的颜色设置必须是 'no'ã€'default'ã€'blocks'ã€'zebra'ã€'dimmed_zebra' 或 " "'plain'" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3200,18 +3241,18 @@ msgstr "" "未知的 color-moved-ws æ¨¡å¼ '%s',å¯èƒ½çš„å–值有 'ignore-space-change'ã€'ignore-" "space-at-eol'ã€'ignore-all-space'ã€'allow-indentation-change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" msgstr "color-moved-ws:allow-indentation-change ä¸èƒ½ä¸Žå…¶å®ƒç©ºç™½å—符模å¼å…±ç”¨" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "é…ç½®å˜é‡ 'diff.submodule' 未知的å–值:'%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3220,35 +3261,35 @@ msgstr "" "å‘现é…ç½®å˜é‡ 'diff.dirstat' ä¸çš„错误:\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "外部 diff 退出,åœæ¢åœ¨ %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-onlyã€--name-statusã€--check å’Œ -s 是互斥的" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-Gã€-S å’Œ --find-object 是互斥的" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow 明确è¦æ±‚åªè·Ÿä¸€ä¸ªè·¯å¾„è§„æ ¼" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "æ— æ•ˆçš„ --stat 值:%s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s 期望一个数å—值" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3257,195 +3298,195 @@ msgstr "" "æ— æ³•è§£æž --dirstat/-X 选项的å‚数:\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "--diff-filter=%2$s ä¸æœªçŸ¥çš„å˜æ›´ç±» '%1$c'" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "ws-error-highlight=%.*s 之åŽæœªçŸ¥çš„值" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "ä¸èƒ½è§£æž '%s'" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s 期望 <n>/<m> æ ¼å¼" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s 期望一个å—符,得到 '%s'" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "åçš„ --color-moved å‚数:%s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "--color-moved-ws ä¸çš„æ— æ•ˆæ¨¡å¼ '%s' " -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" msgstr "" "diff-algorithm 选项有 \"myers\"ã€\"minimal\"ã€\"patience\" å’Œ \"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "%s çš„å‚æ•°æ— æ•ˆ" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "æ— æ³•è§£æž --submodule 选项的å‚数:'%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "åçš„ --word-diff å‚数:%s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "å·®å¼‚è¾“å‡ºæ ¼å¼åŒ–选项" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "生æˆè¡¥ä¸" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "ä¸æ˜¾ç¤ºå·®å¼‚输出" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "生æˆå« <n> 行上下文的差异" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "生æˆåŽŸå§‹æ ¼å¼çš„差异" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "å’Œ '-p --raw' åŒä¹‰" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "å’Œ '-p --stat' åŒä¹‰" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "机器å‹å¥½çš„ --stat" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "åªè¾“出 --stat 的最åŽä¸€è¡Œ" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<å‚æ•°1,å‚æ•°2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "输出æ¯ä¸ªå目录相对å˜æ›´çš„分布" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "å’Œ --dirstat=cumulative åŒä¹‰" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "是 --dirstat=files,param1,param2... çš„åŒä¹‰è¯" -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "如果å˜æ›´ä¸å¼•å…¥å†²çªå®šç•Œç¬¦æˆ–空白错误,给出è¦å‘Š" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "精简摘è¦ï¼Œä¾‹å¦‚创建ã€é‡å‘½å和模å¼å˜æ›´" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "åªæ˜¾ç¤ºå˜æ›´æ–‡ä»¶çš„文件å" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "åªæ˜¾ç¤ºå˜æ›´æ–‡ä»¶çš„文件å和状æ€" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<宽度>[,<文件å宽度>[,<次数>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "生æˆå·®å¼‚统计(diffstat)" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<宽度>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "使用给定的长度生æˆå·®å¼‚统计" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "使用给定的文件å长度生æˆå·®å¼‚统计" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "使用给定的图形长度生æˆå·®å¼‚统计" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<次数>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "生æˆæœ‰é™è¡Œæ•°çš„差异统计" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "生æˆå·®å¼‚统计的简æ´æ‘˜è¦" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "输出一个å¯ä»¥åº”用的二进制差异" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "在 \"index\" 行显示完整的å‰åŽå¯¹è±¡å称" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "显示带颜色的差异" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<类型>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" msgstr "对于差异ä¸çš„上下文ã€æ—§çš„å’Œæ–°çš„è¡Œï¼ŒåŠ äº®æ˜¾ç¤ºé”™è¯¯çš„ç©ºç™½å—符" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3453,295 +3494,295 @@ msgstr "" "在 --raw 或者 --numstat ä¸ï¼Œä¸å¯¹è·¯å¾„å—符转ç 并使用 NUL å—符åšä¸ºè¾“出å—段的分隔" "符" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<å‰ç¼€>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "显示给定的æºå‰ç¼€å–代 \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "æ˜¾ç¤ºç»™å®šçš„ç›®æ ‡å‰ç¼€å–代 \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "输出的æ¯ä¸€è¡Œé™„åŠ å‰ç¼€" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "ä¸æ˜¾ç¤ºä»»ä½•æºå’Œç›®æ ‡å‰ç¼€" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "显示指定行数的差异å—间的上下文" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<å—符>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "指定一个å—符å–代 '+' æ¥è¡¨ç¤ºæ–°çš„一行" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "指定一个å—符å–代 '-' æ¥è¡¨ç¤ºæ—§çš„一行" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "指定一个å—符å–代 ' ' æ¥è¡¨ç¤ºä¸€è¡Œä¸Šä¸‹æ–‡" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "差异é‡å‘½å选项" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "将完全é‡å†™çš„å˜æ›´æ‰“ç ´ä¸ºæˆå¯¹çš„åˆ é™¤å’Œåˆ›å»º" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "检测é‡å‘½å" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" msgstr "çœç•¥åˆ 除æ“作的差异输出" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "检测拷è´" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "使用未修改的文件åšä¸ºå‘现拷è´çš„æº" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "ç¦ç”¨é‡å‘½å探测" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "使用空的数æ®å¯¹è±¡åšä¸ºé‡å‘½åçš„æº" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "继ç»åˆ—出文件é‡å‘½å以外的历å²è®°å½•" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" msgstr "如果é‡å‘½å/æ‹·è´ç›®æ ‡è¶…过给定的é™åˆ¶ï¼Œç¦æ¢é‡å‘½å/æ‹·è´æ£€æµ‹" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "差异算法选项" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "生æˆå°½å¯èƒ½å°çš„差异" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "行比较时忽略空白å—符" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "忽略空白å—符的å˜æ›´" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "忽略行尾的空白å—符å˜æ›´" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "忽略行尾的回车符(CR)" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "忽略整行都是空白的å˜æ›´" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "å¯å‘å¼è½¬æ¢å·®å¼‚边界以便阅读" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "使用 \"patience diff\" 算法生æˆå·®å¼‚" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "使用 \"histogram diff\" 算法生æˆå·®å¼‚" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<算法>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "选择一个差异算法" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<文本>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "使用 \"anchored diff\" 算法生æˆå·®å¼‚" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<模å¼>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "显示å•è¯å·®å¼‚,使用 <模å¼> 分隔å˜æ›´çš„å•è¯" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<æ£åˆ™>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "使用 <æ£åˆ™è¡¨è¾¾å¼> 确定何为一个è¯" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "相当于 --word-diff=color --word-diff-regex=<æ£åˆ™>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "移动的代ç 行用ä¸åŒæ–¹å¼ç€è‰²" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "在 --color-moved 下如何忽略空白å—符" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "其它差异选项" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "当从å目录è¿è¡Œï¼ŒæŽ’除目录之外的å˜æ›´å¹¶æ˜¾ç¤ºç›¸å¯¹è·¯å¾„" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "把所有文件当åšæ–‡æœ¬å¤„ç†" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "交æ¢ä¸¤ä¸ªè¾“入,å转差异" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "有差异时退出ç 为 1,å¦åˆ™ä¸º 0" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "ç¦ç”¨æœ¬ç¨‹åºçš„所有输出" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "å…许执行一个外置的差异助手" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "当比较二进制文件时,è¿è¡Œå¤–部的文本转æ¢è¿‡æ»¤å™¨" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<何时>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "在生æˆå·®å¼‚时,忽略å模组的更改" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<æ ¼å¼>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "指定å模组的差异如何显示" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "éšè—ç´¢å¼•ä¸ 'git add -N' æ¡ç›®" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "å°†ç´¢å¼•ä¸ 'git add -N' æ¡ç›®å½“åšçœŸå®žçš„" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<å—符串>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" msgstr "查找改å˜äº†æŒ‡å®šå—符串出现次数的差异" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" msgstr "查找改å˜æŒ‡å®šæ£åˆ™åŒ¹é…出现次数的差异" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "显示使用 -S 或 -G çš„å˜æ›´é›†çš„所有å˜æ›´" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "å°† -S çš„ <string> 当åšæ‰©å±•çš„ POSIX æ£åˆ™è¡¨è¾¾å¼" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "控制输出ä¸çš„文件显示顺åº" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<对象 ID>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" msgstr "查找改å˜æŒ‡å®šå¯¹è±¡å‡ºçŽ°æ¬¡æ•°çš„差异" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "通过差异类型选择文件" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<文件>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "输出到一个指定的文件" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "å› ä¸ºæ–‡ä»¶å¤ªå¤šï¼Œç•¥è¿‡ä¸ä¸¥æ ¼çš„é‡å‘½å检查。" -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "å› ä¸ºæ–‡ä»¶å¤ªå¤šï¼Œåªåœ¨ä¿®æ”¹çš„路径ä¸æŸ¥æ‰¾æ‹·è´ã€‚" -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3756,59 +3797,59 @@ msgstr "读å–排åºæ–‡ä»¶ '%s' 失败" msgid "Performing inexact rename detection" msgstr "æ£åœ¨è¿›è¡Œéžç²¾ç¡®çš„é‡å‘½å探测" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "è·¯å¾„è§„æ ¼ '%s' 未匹é…任何 git 已知文件" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "未识别的模å¼ï¼š'%s'" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "未识别的åå‘模å¼ï¼š'%s'" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "您的 sparse-checkout 文件å¯èƒ½æœ‰é—®é¢˜ï¼šé‡å¤çš„æ¨¡å¼ '%s'" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "ç¦æ¢ cone 模å¼åŒ¹é…" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "ä¸èƒ½å°† %s 用作排除文件" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "ä¸èƒ½æ‰“开目录 '%s'" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "æ— æ³•èŽ·å¾—å†…æ ¸å称和信æ¯" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "缓å˜æœªè·Ÿè¸ªæ–‡ä»¶åœ¨æœ¬ç³»ç»Ÿæˆ–ä½ç½®ä¸è¢«ç¦ç”¨" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "仓库 %s ä¸çš„索引文件æŸå" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "ä¸èƒ½ä¸º %s 创建目录" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "ä¸èƒ½ä»Ž '%s' è¿ç§» git 目录到 '%s'" @@ -3818,11 +3859,11 @@ msgstr "ä¸èƒ½ä»Ž '%s' è¿ç§» git 目录到 '%s'" msgid "hint: Waiting for your editor to close the file...%c" msgstr "æ示:ç‰å¾…您的编辑器关é—文件...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "过滤内容" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "ä¸èƒ½å¯¹æ–‡ä»¶ '%s' 调用 stat" @@ -3842,227 +3883,245 @@ msgstr "ä¸èƒ½è®¾ç½® GIT_DIR 为 '%s'" msgid "too many args to run %s" msgstr "执行 %s çš„å‚数太多" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack:应为 shallow 列表" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack:在浅克隆列表之åŽæœŸæœ›ä¸€ä¸ª flush 包" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack:期望 ACK/NAK,å´å¾—到 flush 包" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack:应为 ACK/NAK,å´å¾—到 '%s'" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "æ— æ³•å†™åˆ°è¿œç¨‹" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc éœ€è¦ multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "æ— æ•ˆçš„ shallow ä¿¡æ¯ï¼š%s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "æ— æ•ˆçš„ unshallow ä¿¡æ¯ï¼š%s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "对象未找到:%s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "对象ä¸å‡ºé”™ï¼š%s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "未å‘现 shallow:%s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "应为 shallow/unshallow,å´å¾—到 %s" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "得到 %s %d %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "æ— æ•ˆæ交 %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "放弃" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "完æˆ" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "得到 %s (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "æ ‡è®° %s 为完æˆ" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "å·²ç»æœ‰ %s(%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-packï¼šæ— æ³•æ´¾ç”Ÿ sideband 多路输出" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "å议错误:å的包头" -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-packï¼šæ— æ³•æ´¾ç”Ÿè¿›ç¨‹ %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s 失败" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "sideband 多路输出出错" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "æœåŠ¡å™¨ç‰ˆæœ¬ %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "æœåŠ¡å™¨æ”¯æŒ %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ shalllow 客户端" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "æœåŠ¡å™¨ä¸æ”¯æŒè¿™ä¸ªä»“åº“çš„å¯¹è±¡æ ¼å¼" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "没有共åŒçš„æ交" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack:获å–失败。" #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "ä¸åŒ¹é…的算法:客户端 %s,æœåŠ¡ç«¯ %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "æœåŠ¡å™¨ä¸æ”¯æŒç®—法 '%s'" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "æœåŠ¡å™¨ä¸æ”¯æŒ shalllow 请求" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "æœåŠ¡å™¨æ”¯æŒ filter" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "æ— æ³•å°†è¯·æ±‚å†™åˆ°è¿œç¨‹" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "读å–èŠ‚æ ‡é¢˜ '%s' 出错" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "预期 '%s',得到 '%s'" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "æ„外的确认行:'%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "å¤„ç† ack 出错:%d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "预期在 'ready' 之åŽå‘é€ packfile" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "在没有 'ready' ä¸åº”该å‘é€å…¶å®ƒå°èŠ‚" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "处ç†æµ…克隆信æ¯å‡ºé”™ï¼š%d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "预期 wanted-ref,得到 '%s'" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "æ„外的 wanted-ref:'%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "处ç†è¦èŽ·å–的引用出错:%d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack:预期å“应结æŸåŒ…" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "没有匹é…的远程分支" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "远程没有å‘é€æ‰€æœ‰å¿…需的对象" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "æ²¡æœ‰è¿™æ ·çš„è¿œç¨‹å¼•ç”¨ %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "æœåŠ¡å™¨ä¸å…许请求未公开的对象 %s" @@ -4098,7 +4157,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s'ï¼šæ— æ³•è¯»å– %s" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4242,16 +4301,16 @@ msgstr[1] "" "\n" "最相似的命令是" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<选项>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s:%s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4349,6 +4408,10 @@ msgstr "期望在组åˆåŽæœ‰ä¸€äº›ä¸œè¥¿ï¼š" msgid "multiple filter-specs cannot be combined" msgstr "ä¸èƒ½æ··ç”¨å¤šç§è¿‡æ»¤è§„æ ¼" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "æ— æ³•å‡çº§ä»“åº“æ ¼å¼ä»¥æ”¯æŒéƒ¨åˆ†å…‹éš†" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4702,7 +4765,7 @@ msgstr "æ·»åŠ /æ·»åŠ " msgid "Skipped %s (merged same as existing)" msgstr "略过 %s(已ç»åšè¿‡ç›¸åŒåˆå¹¶ï¼‰" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "å模组" @@ -4826,7 +4889,7 @@ msgid "failed to read the cache" msgstr "读å–缓å˜å¤±è´¥" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "æ— æ³•å†™æ–°çš„ç´¢å¼•æ–‡ä»¶" @@ -5071,21 +5134,21 @@ msgstr "ä¸èƒ½è§£æžå¯¹è±¡ï¼š%s" msgid "hash mismatch %s" msgstr "哈希值与 %s ä¸åŒ¹é…" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "æ— æ³•å¾—åˆ° %s 的大å°" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "å移é‡åœ¨åŒ…文件结æŸä¹‹å‰ï¼ˆæŸåçš„ .idx?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "å移é‡åœ¨ %s 的包索引开始之å‰ï¼ˆæŸå的索引?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "å移é‡è¶Šè¿‡äº† %s 的包索引的结尾(被截æ–的索引?)" @@ -5287,44 +5350,48 @@ msgid "unable to write delim packet" msgstr "æ— æ³•å†™ delim 包" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "æ— æ³•å†™å…¥æ— çŠ¶æ€åˆ†éš”符数æ®åŒ…" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "flush 包写错误" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "å议错误:ä¸å¯èƒ½çš„é•¿è¡Œ" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "æ ¼å¼åŒ–包写入错误" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "写数æ®åŒ…失败:数æ®è¶…过了包的最大长度" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "æ•°æ®åŒ…写入失败" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "读å–错误" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "远端æ„外挂æ–了" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "å议错误:错误的行长度å—符串:%.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "å议错误:错误的行长度 %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "远程错误:%s" @@ -5501,7 +5568,7 @@ msgstr "'%s' 的未排åºæš‚å˜æ¡ç›®" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5558,7 +5625,7 @@ msgstr "æ— æ³•åˆ·æ–°å…±äº«ç´¢å¼• '%s'" msgid "broken index, expect %s in %s, got %s" msgstr "æŸå的索引,期望在 %2$s ä¸çš„ %1$s,得到 %3$s" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "ä¸èƒ½å…³é— '%s'" @@ -5734,7 +5801,7 @@ msgstr "" msgid "could not read '%s'." msgstr "ä¸èƒ½è¯»å– '%s'。" -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "丢失" @@ -5958,7 +6025,7 @@ msgstr "æ ¼å¼é”™è¯¯çš„对象 '%s'" msgid "ignoring ref with broken name %s" msgstr "忽略带有错误å称 %s 的引用" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "忽略æŸå的引用 %s" @@ -5988,94 +6055,108 @@ msgstr "æ ¼å¼é”™è¯¯çš„对象å %s" msgid "option `%s' must point to a commit" msgstr "选项 `%s' 必须指å‘一个æ交" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "%s 没有指å‘一个有效的对象ï¼" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "æ— æ³•èŽ·å– `%s`" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "æ— æ•ˆçš„åˆ†æ”¯å:%s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "忽略悬空符å·å¼•ç”¨ %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "æ— æ³•ä¸ºå†™å…¥æ‰“å¼€ '%s':%s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "æ— æ³•è¯»å–引用 '%s'" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "引用 '%s' å·²ç»å˜åœ¨" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "写入 '%s' æ—¶æ„外的对象 ID" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "ä¸èƒ½å†™å…¥ '%s'" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "æ— æ³•æ‰“å¼€ '%s' 进行写入" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "åˆ é™¤ '%s' æ—¶æ„外的对象 ID" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "引用 %s 的日志在 %s 之åŽæœ‰ç¼ºå£" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "引用 %s 的日志æ„外终æ¢äºŽ %s " -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "%s 的日志为空" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "æ‹’ç»æ›´æ–°æœ‰é”™è¯¯å称 '%s' 的引用" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "对引用 '%s' 执行 update_ref 失败:%s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "ä¸å…许对引用 '%s' 多次更新" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "在隔离环境ä¸ç¦æ¢æ›´æ–°å¼•ç”¨" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "引用更新被钩åä¸æ¢" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' å·²å˜åœ¨ï¼Œæ— 法创建 '%s'" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "æ— æ³•åŒæ—¶å¤„ç† '%s' å’Œ '%s'" @@ -6355,7 +6436,7 @@ msgstr[1] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (使用 \"git pull\" æ¥åˆå¹¶è¿œç¨‹åˆ†æ”¯ï¼‰\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "æ— æ³•è§£æžæœŸæœ›çš„对象å '%s'" @@ -6482,20 +6563,20 @@ msgstr "ä¸èƒ½ç¡®å®š HEAD 版本" msgid "failed to find tree of %s" msgstr "æ— æ³•æ‰¾åˆ° %s 指å‘çš„æ ‘ã€‚" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "您的当å‰åˆ†æ”¯å¥½åƒè¢«æŸå" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "您的当å‰åˆ†æ”¯ '%s' å°šæ— ä»»ä½•æ交" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent 与 --bisect ä¸å…¼å®¹" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L å°šä¸æ”¯æŒ -p å’Œ -s ä¹‹å¤–çš„å·®å¼‚æ ¼å¼" @@ -6535,21 +6616,25 @@ msgstr "远程解包失败:%s" msgid "failed to sign the push certificate" msgstr "为推é€è¯ä¹¦ç¾å失败" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "接收端ä¸æ”¯æŒè¿™ä¸ªä»“库的哈希算法" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "接收端ä¸æ”¯æŒç¾å推é€" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" msgstr "未å‘é€æŽ¨é€è¯ä¹¦ï¼Œå› 为接收端ä¸æ”¯æŒç¾å推é€" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "接收端ä¸æ”¯æŒåŽŸå推é€" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "接收端ä¸æ”¯æŒæŽ¨é€é€‰é¡¹" @@ -6669,7 +6754,7 @@ msgstr "在 '%.*s' ä¸æ²¡æœ‰ key" msgid "unable to dequote value of '%s'" msgstr "æ— æ³•ä¸º '%s' 的值去引å·" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7498,84 +7583,84 @@ msgstr "æ— æ³•ä½¿ç”¨æ— æ•ˆé…ç½®æ¥åˆ›å»ºå·¥ä½œåŒº" msgid "this operation must be run in a work tree" msgstr "该æ“作必须在一个工作区ä¸è¿è¡Œ" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "期望 git 仓库版本 <= %d,å´å¾—到 %d" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "å‘现未知的仓库扩展:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "打开 '%s' 出错" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "æ–‡ä»¶å¤ªå¤§ï¼Œæ— æ³•ä½œä¸º .git 文件:'%s'" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "è¯»å– %s 出错" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "æ— æ•ˆçš„ gitfile æ ¼å¼ï¼š%s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "在 gitfile ä¸æ²¡æœ‰è·¯å¾„:%s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库:%s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' 太大" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库:'%s'" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "ä¸èƒ½åˆ‡æ¢ç›®å½•åˆ° '%s'" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "æ— æ³•è¿”å›žå½“å‰å·¥ä½œç›®å½•" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "èŽ·å– '%*s%s%s' 状æ€ï¼ˆstat)失败" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "ä¸èƒ½è¯»å–当å‰å·¥ä½œç›®å½•" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "ä¸èƒ½åˆ‡æ¢åˆ° '%s'" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库(或者任何父目录):%s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7584,7 +7669,7 @@ msgstr "" "ä¸æ˜¯ä¸€ä¸ª git 仓库(或者直至挂载点 %s 的任何父目录)\n" "åœæ¢åœ¨æ–‡ä»¶ç³»ç»Ÿè¾¹ç•Œï¼ˆæœªè®¾ç½® GIT_DISCOVERY_ACROSS_FILESYSTEM)。" -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7593,15 +7678,15 @@ msgstr "" "å‚æ•° core.sharedRepository 的文件属性值有问题(0%.3o)。\n" "文件属主必须始终拥有读写æƒé™ã€‚" -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "ä¸èƒ½æ‰“开或者å¤åˆ¶ /dev/null" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "fork 失败" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "setsid 失败" @@ -7781,7 +7866,7 @@ msgstr "在对象 %s 上调用 deflateEnd 失败(%d)" msgid "confused by unstable object source data for %s" msgstr "被 %s çš„ä¸ç¨³å®šå¯¹è±¡æºæ•°æ®æžç³Šæ¶‚了" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "在 %s 上调用 utime() 失败" @@ -7956,43 +8041,43 @@ msgid "invalid object name '%.*s'." msgstr "æ— æ•ˆçš„å¯¹è±¡å '%.*s'。" #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" @@ -8000,14 +8085,14 @@ msgstr[0] "%u å—节" msgstr[1] "%u å—节" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u å—节/秒" msgstr[1] "%u å—节/秒" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "ä¸èƒ½ç¼–辑 '%s'" @@ -8246,7 +8331,7 @@ msgstr "ä¸èƒ½è¯»å–输入文件 '%s'" msgid "could not read from stdin" msgstr "ä¸èƒ½è‡ªæ ‡å‡†è¾“入读å–" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "ä¸èƒ½å¯¹ %s 调用 stat" @@ -8270,177 +8355,182 @@ msgstr "ä¸èƒ½æ‰“开临时文件" msgid "could not rename temporary file to %s" msgstr "ä¸èƒ½é‡å‘½å临时文件为 %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "完整写入远程助手失败" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "æ— æ³•ä¸º '%s' 找到远程助手" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "æ— æ³•å¤åˆ¶åŠ©æ‰‹è¾“出文件å¥æŸ„" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " "version of Git" msgstr "未知的强制能力 %s,该远程助手å¯èƒ½éœ€è¦æ–°ç‰ˆæœ¬çš„Git" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "远程助手需è¦å®žçŽ° refspec 能力" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s æ„外地说:'%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s 也é”定了 %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "ä¸èƒ½æ‰§è¡Œ fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "执行 fast-import 出错" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "æ— æ³•è¯»å–引用 %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "连接时未知的å“应:%s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "åè®®ä¸æ”¯æŒè®¾ç½®è¿œç¨‹æœåŠ¡è·¯å¾„" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "æ— æ•ˆçš„è¿œç¨‹æœåŠ¡è·¯å¾„" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "åè®®ä¸æ”¯æŒè¯¥æ“作" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "ä¸èƒ½è¿žæŽ¥åˆ°åæœåŠ¡ %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "预期 ok/error,助手说 '%s'" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "助手报告 %s çš„æ„外状æ€" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "助手 %s ä¸æ”¯æŒ dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "助手 %s ä¸æ”¯æŒ --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "助手 %s ä¸æ”¯æŒ --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "助手 %s ä¸æ”¯æŒ --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "助手 %s ä¸æ”¯æŒ 'push-option'" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "remote-heper ä¸æ”¯æŒ push,需è¦å¼•ç”¨è¡¨è¾¾å¼" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "助手 %s ä¸æ”¯æŒ 'force'" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "æ— æ³•æ‰§è¡Œ fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "执行 fast-export 时出错" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "没有共åŒçš„引用并且也没有指定,什么也ä¸ä¼šåšã€‚\n" -"å¯èƒ½æ‚¨åº”该指定一个分支如 'master'。\n" +"也许您应该指定一个分支。\n" + +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "ä¸æ”¯æŒçš„å¯¹è±¡æ ¼å¼ '%s'" -#: transport-helper.c:1121 +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "引用列表ä¸æ ¼å¼é”™è¯¯çš„å“应:%s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "读å–(%s)失败" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "写(%s)失败" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "%s 线程失败" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "%s 线程ç‰å¾…失败:%s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®ï¼š%s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "%s 进程ç‰å¾…失败" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "%s 进程失败" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "ä¸èƒ½å¯åŠ¨çº¿ç¨‹æ¥æ‹·è´æ•°æ®" @@ -8454,33 +8544,33 @@ msgstr "å°†è¦è®¾ç½® '%1$s' 的上游为 '%3$s' çš„ '%2$s'\n" msgid "could not read bundle '%s'" msgstr "æ— æ³•è¯»å– bundle '%s'" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "ä¼ è¾“ï¼šæ— æ•ˆçš„æ·±åº¦é€‰é¡¹ '%s'" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "查看 'git help config' ä¸çš„ protocol.version 获å–更多信æ¯" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "æœåŠ¡ç«¯é€‰é¡¹éœ€è¦ç‰ˆæœ¬ 2 å议或更高" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "ä¸èƒ½è§£æž transport.color.* é…ç½®" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "åè®® v2 的支æŒå°šæœªå®žçŽ°" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "é…ç½® '%s' çš„å–值未知:%s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "ä¼ è¾“ '%s' ä¸å…许" @@ -8489,14 +8579,14 @@ msgstr "ä¼ è¾“ '%s' ä¸å…许" msgid "git-over-rsync is no longer supported" msgstr "ä¸å†æ”¯æŒ git-over-rsync" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" "not be found on any remote:\n" msgstr "下列å模组路径所包å«çš„修改在任何远程æºä¸éƒ½æ‰¾ä¸åˆ°ï¼š\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8523,11 +8613,11 @@ msgstr "" "以推é€è‡³è¿œç¨‹ã€‚\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "æ£åœ¨ç»ˆæ¢ã€‚" -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "ä¸èƒ½æŽ¨é€å…¨éƒ¨éœ€è¦çš„å模组" @@ -8792,7 +8882,7 @@ msgstr "" msgid "Updating index flags" msgstr "æ£åœ¨æ›´æ–°ç´¢å¼•æ ‡å¿—" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "在 fetch å‚数之åŽåº”该有一个 flush 包" @@ -8829,47 +8919,47 @@ msgstr "æ— æ•ˆçš„ '..' 路径片段" msgid "Fetching objects" msgstr "æ£åœ¨èŽ·å–对象" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "è¯»å– '%s' 失败" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "在主工作区的 '%s' ä¸æ˜¯ä»“库目录" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "文件 '%s' ä¸åŒ…å«å·¥ä½œåŒºçš„ç»å¯¹è·¯å¾„" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' ä¸å˜åœ¨" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' ä¸æ˜¯ä¸€ä¸ª .git 文件,错误ç %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' 没有指回到 '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "æ— æ³•æ‰“å¼€ '%s' 进行读写" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "ä¸èƒ½è®¿é—® '%s'" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "ä¸èƒ½èŽ·å–当å‰å·¥ä½œç›®å½•" @@ -9280,39 +9370,44 @@ msgstr "您在执行二分查找æ“作。" msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (使用 \"git bisect reset\" 以回到原有分支)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "您处于稀ç–ç¾å‡ºçŠ¶æ€ï¼ŒåŒ…å« %d%% 的跟踪文件" + +#: wt-status.c:1733 msgid "On branch " msgstr "ä½äºŽåˆ†æ”¯ " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "交互å¼å˜åŸºæ“作æ£åœ¨è¿›è¡Œä¸ï¼›è‡³ " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "å˜åŸºæ“作æ£åœ¨è¿›è¡Œä¸ï¼›è‡³ " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "当å‰ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Šã€‚" -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "åˆå§‹æ交" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "å°šæ— æ交" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "未跟踪的文件" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "忽略的文件" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9322,97 +9417,97 @@ msgstr "" "耗费了 %.2f 秒以枚举未跟踪的文件。'status -uno' 也许能æ高速度,\n" "但您需è¦å°å¿ƒä¸è¦å¿˜äº†æ·»åŠ 新文件(å‚è§ 'git help status')。" -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "未跟踪的文件没有列出%s" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr "(使用 -u å‚数显示未跟踪的文件)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "没有修改" -#: wt-status.c:1768 +#: wt-status.c:1809 #, 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:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "ä¿®æ”¹å°šæœªåŠ å…¥æ交\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "æ交为空,但是å˜åœ¨å°šæœªè·Ÿè¸ªçš„文件(使用 \"git add\" 建立跟踪)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "æ交为空,但是å˜åœ¨å°šæœªè·Ÿè¸ªçš„文件\n" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "æ— æ–‡ä»¶è¦æ交(创建/æ‹·è´æ–‡ä»¶å¹¶ä½¿ç”¨ \"git add\" 建立跟踪)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "æ— æ–‡ä»¶è¦æ交\n" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "æ— æ–‡ä»¶è¦æ交(使用 -u 显示未跟踪的文件)\n" # 译者:ä¸æ–‡å—符串拼接,å¯åˆ 除å‰å¯¼ç©ºæ ¼ -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "æ— æ–‡ä»¶è¦æ交,干净的工作区\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "å°šæ— æ交在 " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD(éžåˆ†æ”¯ï¼‰" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "ä¸åŒ" # 译者:注æ„ä¿æŒå¥å°¾ç©ºæ ¼ -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "è½åŽ " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "领先 " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "ä¸èƒ½%s:您有未暂å˜çš„å˜æ›´ã€‚" -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "å¦å¤–,您的索引ä¸åŒ…å«æœªæ交的å˜æ›´ã€‚" -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "ä¸èƒ½%s:您的索引ä¸åŒ…å«æœªæ交的å˜æ›´ã€‚" @@ -9489,7 +9584,7 @@ msgstr "æ¼”ä¹ " msgid "interactive picking" msgstr "交互å¼æ‹£é€‰" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "交互å¼æŒ‘选数æ®å—" @@ -9613,12 +9708,12 @@ msgstr "选项 --ignore-missing åªèƒ½å’Œ --dry-run åŒæ—¶ä½¿ç”¨" msgid "--chmod param '%s' must be either -x or +x" msgstr "å‚æ•° --chmod å–值 '%s' 必须是 -x 或 +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file 与路径表达å¼å‚æ•°ä¸å…¼å®¹" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul éœ€è¦ --pathspec-from-file" @@ -9874,7 +9969,7 @@ msgstr "è€çš„å‚æ•° —— æ— ä½œç”¨" msgid "allow fall back on 3way merging if needed" msgstr "如果必è¦ï¼Œå…许使用三方åˆå¹¶ã€‚" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "é™é»˜æ¨¡å¼" @@ -9929,7 +10024,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "æ ¼å¼" @@ -10219,111 +10314,115 @@ msgstr "" "命令 'git bisect terms' çš„å‚æ•° %s æ— æ•ˆã€‚\n" "支æŒçš„选项有:--term-good|--term-old å’Œ --term-bad|--term-new。" -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„术è¯" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "未识别的选项:'%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "'%s' 看起æ¥ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„版本" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "åçš„ HEAD - 我需è¦ä¸€ä¸ª HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "检出 '%s' 失败。å°è¯• 'git bisect start <有效分支>'。" -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "ä¸ä¼šåœ¨åšäº† cg-seek çš„æ ‘ä¸ŠåšäºŒåˆ†æŸ¥æ‰¾" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "åçš„ HEAD - 奇怪的符å·å¼•ç”¨" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "æ— æ•ˆçš„å¼•ç”¨ï¼š'%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "执行 'git bisect next'" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "将术è¯å†™å…¥ .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "清除二分查找状æ€" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "检查预期的版本" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "清除二分查找状æ€" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "将二分查找的状æ€å†™å…¥ BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "在一个二分查找状æ€ä¸æ£€æŸ¥å’Œè®¾ç½®æœ¯è¯" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "检查å的或好的术è¯æ˜¯å¦å˜åœ¨" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "打å°äºŒåˆ†æŸ¥æ‰¾æœ¯è¯" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "å¯åŠ¨äºŒåˆ†æŸ¥æ‰¾è¿‡ç¨‹" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "æ›´æ–° BISECT_HEAD 而éžæ£€å‡ºå½“å‰æ交" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "BISECT_WRITE æ— æ—¥å¿—" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms 需è¦ä¸¤ä¸ªå‚æ•°" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state ä¸å¸¦å‚æ•°" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset æ— éœ€å‚数或者需è¦ä¸€ä¸ªæ交" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write éœ€è¦ 4 或 5 个å‚æ•°" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms éœ€è¦ 3 个å‚æ•°" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check éœ€è¦ 2 或 3 个å‚æ•°" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms éœ€è¦ 0 或 1 个å‚æ•°" @@ -10921,19 +11020,19 @@ msgstr "git bundle list-heads <文件> [<引用å>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <文件> [<引用å>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "ä¸æ˜¾ç¤ºè¿›åº¦è¡¨" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "显示进度表" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "在对象写入阶段显示进度表" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "当进度表显示时类似于 --all-progress" @@ -10973,11 +11072,9 @@ msgstr "" #: builtin/cat-file.c:599 msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" -msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" +msgstr "git cat-file (--batch[=<æ ¼å¼>] | --batch-check[=<æ ¼å¼>]) [--follow-symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11011,7 +11108,7 @@ msgstr "对于数æ®å¯¹è±¡ï¼Œå¯¹å…¶å†…容åšæ–‡æœ¬è½¬æ¢" msgid "for blob objects, run filters on object's content" msgstr "对于数æ®å¯¹è±¡ï¼Œå¯¹å…¶å†…容åšè¿‡æ»¤" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "æ•°æ®å¯¹è±¡" @@ -11071,8 +11168,8 @@ msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å‡ºæ–‡ä»¶å" msgid "terminate input and output records by a NUL character" msgstr "输入和输出的记录使用 NUL å—符终结" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "ä¸æ˜¾ç¤ºè¿›åº¦æŠ¥å‘Š" @@ -11164,7 +11261,7 @@ msgstr "将内容写入临时文件" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "å—符串" @@ -11279,11 +11376,11 @@ msgstr "'%s' 或 '%s' ä¸èƒ½å’Œ %s 一起使用" msgid "path '%s' is unmerged" msgstr "路径 '%s' 未åˆå¹¶" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "您需è¦å…ˆè§£å†³å½“å‰ç´¢å¼•çš„冲çª" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11292,51 +11389,51 @@ msgstr "" "ä¸èƒ½ç»§ç»ï¼Œä¸‹åˆ—文件有暂å˜çš„修改:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "ä¸èƒ½å¯¹ '%s' 执行 reflog æ“作:%s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD ç›®å‰ä½äºŽ" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "ä¸èƒ½æ›´æ–° HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "é‡ç½®åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "å·²ç»ä½äºŽ '%s'\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "切æ¢å¹¶é‡ç½®åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "切æ¢åˆ°ä¸€ä¸ªæ–°åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "切æ¢åˆ°åˆ†æ”¯ '%s'\n" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ... åŠå…¶å®ƒ %d 个。\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11357,7 +11454,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11384,19 +11481,19 @@ msgstr[1] "" " git branch <新分支å> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "在版本é历时é‡åˆ°å†…部错误" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "之å‰çš„ HEAD ä½ç½®æ˜¯" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "您ä½äºŽä¸€ä¸ªå°šæœªåˆå§‹åŒ–的分支" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11405,7 +11502,7 @@ msgstr "" "'%s' æ—¢å¯ä»¥æ˜¯ä¸€ä¸ªæœ¬åœ°æ–‡ä»¶ï¼Œä¹Ÿå¯ä»¥æ˜¯ä¸€ä¸ªè·Ÿè¸ªåˆ†æ”¯ã€‚\n" "请使用 --(和å¯é€‰çš„ --no-guess)æ¥æ¶ˆé™¤æ§ä¹‰" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11424,51 +11521,51 @@ msgstr "" "如果您总是喜欢使用模糊的简çŸåˆ†æ”¯å <å称>,而ä¸å–œæ¬¢å¦‚ 'origin' 的远程\n" "å称,å¯ä»¥åœ¨é…ç½®ä¸è®¾ç½® checkout.defaultRemote=origin。" -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' 匹é…多个(%d 个)远程跟踪分支" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "åªæœŸæœ›ä¸€ä¸ªå¼•ç”¨" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "应åªæœ‰ä¸€ä¸ªå¼•ç”¨ï¼Œå´ç»™å‡ºäº† %d 个" -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "æ— æ•ˆå¼•ç”¨ï¼š%s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "引用ä¸æ˜¯ä¸€ä¸ªæ ‘:%s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "æœŸæœ›ä¸€ä¸ªåˆ†æ”¯ï¼Œå¾—åˆ°æ ‡ç¾ '%s'" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "期望一个分支,得到远程分支 '%s'" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "期望一个分支,得到 '%s'" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "期望一个分支,得到æ交 '%s'" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11476,7 +11573,7 @@ msgstr "" "ä¸èƒ½åœ¨åˆå¹¶æ—¶åˆ‡æ¢åˆ†æ”¯\n" "考虑使用 \"git merge --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11484,7 +11581,7 @@ msgstr "" "ä¸èƒ½åœ¨ä¸€ä¸ª am 会è¯æœŸé—´åˆ‡æ¢åˆ†æ”¯\n" "考虑使用 \"git am --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11492,7 +11589,7 @@ msgstr "" "ä¸èƒ½åœ¨å˜åŸºæ—¶åˆ‡æ¢åˆ†æ”¯\n" "考虑使用 \"git rebase --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11500,7 +11597,7 @@ msgstr "" "ä¸èƒ½åœ¨æ‹£é€‰æ—¶åˆ‡æ¢åˆ†æ”¯\n" "考虑使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11508,213 +11605,214 @@ msgstr "" "ä¸èƒ½åœ¨è¿˜åŽŸæ—¶åˆ‡æ¢åˆ†æ”¯\n" "考虑使用 \"git revert --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "您在执行二分查找时切æ¢åˆ†æ”¯" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "路径ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' ä¸èƒ½å’Œåˆ‡æ¢åˆ†æ”¯åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' ä¸èƒ½å’Œ '%s' åŒæ—¶ä½¿ç”¨" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s' ä¸å¸¦ <起始点>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "ä¸èƒ½åˆ‡æ¢åˆ†æ”¯åˆ°ä¸€ä¸ªéžæ交 '%s'" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "缺少分支或æ交å‚æ•°" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "强制显示进度报告" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "和新的分支执行三方åˆå¹¶" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "é£Žæ ¼" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "冲çªè¾“å‡ºé£Žæ ¼ï¼ˆmerge 或 diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "HEAD 从指定的æ交分离" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "为新的分支设置上游信æ¯" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "强制检出(丢弃本地修改)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "新分支" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "新的没有父æ交的分支" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "更新忽略的文件(默认)" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "ä¸æ£€æŸ¥æŒ‡å®šçš„引用是å¦è¢«å…¶ä»–工作区所å 用" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "对尚未åˆå¹¶çš„文件检出我们的版本" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "对尚未åˆå¹¶çš„文件检出他们的版本" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "对路径ä¸åšç¨€ç–检出的é™åˆ¶" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%cã€-%c å’Œ --orphan 是互斥的" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p å’Œ --overlay 互斥" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track 需è¦ä¸€ä¸ªåˆ†æ”¯å" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "缺少分支å,å°è¯• -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "æ— æ³•è§£æž %s" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "æ— æ•ˆçš„è·¯å¾„è§„æ ¼" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæ交,ä¸èƒ½åŸºäºŽå®ƒåˆ›å»ºåˆ†æ”¯ '%s'" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout:--detach ä¸èƒ½æŽ¥æ”¶è·¯å¾„å‚æ•° '%s'" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file 与 --detach ä¸å…¼å®¹" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file 与 --patch ä¸å…¼å®¹" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." msgstr "" "git checkout:在从索引检出时,--ours/--theirsã€--force å’Œ --merge ä¸å…¼å®¹ã€‚" -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "您必须指定一个è¦æ¢å¤çš„路径" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "分支" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "创建并检出一个新的分支" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "创建/é‡ç½®å¹¶æ£€å‡ºä¸€ä¸ªåˆ†æ”¯" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "为新的分支创建引用日志" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "二次猜测 'git checkout <æ— æ¤åˆ†æ”¯>'(默认)" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "使用å åŠ æ¨¡å¼ï¼ˆé»˜è®¤ï¼‰" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "创建并切æ¢ä¸€ä¸ªæ–°åˆ†æ”¯" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "创建/é‡ç½®å¹¶åˆ‡æ¢ä¸€ä¸ªåˆ†æ”¯" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "二次猜测 'git switch <æ— æ¤åˆ†æ”¯>'" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "丢弃本地修改" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "è¦æ£€å‡ºå“ªä¸€ä¸ªæ ‘" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "æ¢å¤ç´¢å¼•" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "æ¢å¤å·¥ä½œåŒºï¼ˆé»˜è®¤ï¼‰" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "忽略未åˆå¹¶æ¡ç›®" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "使用å åŠ æ¨¡å¼" @@ -11877,24 +11975,24 @@ msgstr "ä¹Ÿåˆ é™¤å¿½ç•¥çš„æ–‡ä»¶" msgid "remove only ignored files" msgstr "åªåˆ 除忽略的文件" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x å’Œ -X ä¸èƒ½åŒæ—¶ä½¿ç”¨" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" msgstr "" "clean.requireForce 设置为 true 且未æä¾› -iã€-n 或 -f 选项,拒ç»æ‰§è¡Œæ¸…ç†åŠ¨ä½œ" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" msgstr "" "clean.requireForce 默认为 true 且未æä¾› -iã€-n 或 -f 选项,拒ç»æ‰§è¡Œæ¸…ç†åŠ¨ä½œ" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x å’Œ -X ä¸èƒ½åŒæ—¶ä½¿ç”¨" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<选项>] [--] <仓库> [<路径>]" @@ -11903,7 +12001,7 @@ msgstr "git clone [<选项>] [--] <仓库> [<路径>]" msgid "don't create a checkout" msgstr "ä¸åˆ›å»ºä¸€ä¸ªæ£€å‡º" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "创建一个纯仓库" @@ -11935,11 +12033,11 @@ msgstr "在克隆时åˆå§‹åŒ–å模组" msgid "number of submodules cloned in parallel" msgstr "并å‘克隆的å模组的数é‡" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "模æ¿ç›®å½•" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "模æ¿ç›®å½•å°†è¢«ä½¿ç”¨" @@ -11953,8 +12051,8 @@ msgstr "å‚考仓库" msgid "use --reference only while cloning" msgstr "仅在克隆时å‚考 --reference 指å‘的本地仓库" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "å称" @@ -11979,7 +12077,7 @@ msgstr "深度" msgid "create a shallow clone of that depth" msgstr "创建一个指定深度的浅克隆" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "时间" @@ -12010,11 +12108,11 @@ msgstr "ä¸è¦å…‹éš†ä»»ä½•æ ‡ç¾ï¼Œå¹¶ä¸”åŽç»èŽ·å–æ“作也ä¸ä¸‹è½½å®ƒä»¬" msgid "any cloned submodules will be shallow" msgstr "å模组将以浅下载模å¼å…‹éš†" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "git目录" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "git目录和工作区分离" @@ -12141,7 +12239,7 @@ msgstr "æ— æ³•æ‰§è¡Œ repack æ¥æ¸…ç†" msgid "cannot unlink temporary alternates file" msgstr "æ— æ³•åˆ é™¤ä¸´æ—¶çš„ alternates 文件" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "太多å‚数。" @@ -12158,83 +12256,83 @@ msgstr "--bare å’Œ --origin %s 选项ä¸å…¼å®¹ã€‚" msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare å’Œ --separate-git-dir 选项ä¸å…¼å®¹ã€‚" -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "仓库 '%s' ä¸å˜åœ¨" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "深度 %s ä¸æ˜¯ä¸€ä¸ªæ£æ•°" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "ç›®æ ‡è·¯å¾„ '%s' å·²ç»å˜åœ¨ï¼Œå¹¶ä¸”ä¸æ˜¯ä¸€ä¸ªç©ºç›®å½•ã€‚" -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "工作区 '%s' å·²ç»å˜åœ¨ã€‚" -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "ä¸èƒ½ä¸º '%s' 创建先导目录" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "ä¸èƒ½åˆ›å»ºå·¥ä½œåŒºç›®å½• '%s'" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "克隆到纯仓库 '%s'...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "æ£å…‹éš†åˆ° '%s'...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" msgstr "clone --recursive å’Œ --reference ä»¥åŠ --reference-if-able ä¸å…¼å®¹" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth 在本地克隆时被忽略,请改用 file:// å议。" -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "--shallow-since 在本地克隆时被忽略,请改用 file:// å议。" -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "--shallow-exclude 在本地克隆时被忽略,请改用 file:// å议。" -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "--filter 在本地克隆时被忽略,请改用 file:// å议。" -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "æºä»“库是浅克隆,忽略 --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local 被忽略" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "远程分支 %s 在上游 %s 未å‘现" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "您似乎克隆了一个空仓库。" @@ -12270,14 +12368,14 @@ msgstr "两列之间的填充空间" msgid "--command must be the first argument" msgstr "--command 必须是第一个å‚æ•°" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <对象目录>] [--shallow] [--" "[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12287,79 +12385,88 @@ msgstr "" ">]] [--reachable|--stdin-packs|--stdin-commits] [--changed-paths] [--" "[no-]progress] <切分选项>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "æ— æ³•æ‰¾åˆ°å’Œ %s 匹é…的对象目录" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "目录" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "ä¿å˜å›¾å½¢çš„对象目录" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "如果æ交图形被拆分,åªéªŒè¯å¤´ä¸€ä¸ªæ–‡ä»¶" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "æ— æ³•æ‰“å¼€æ交图形 '%s'" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "未能识别的 --split å‚数,%s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "æ„外的éžåå…进制对象 ID:%s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "æ— æ•ˆå¯¹è±¡ï¼š%s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "开始é历所有引用" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "ä»Žæ ‡å‡†è¾“å…¥ä¸çš„包索引文件列表ä¸æ‰«ææ交" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "ä»Žæ ‡å‡†è¾“å…¥ä¸çš„æ交开始扫æ" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "åŒ…å« commit-graph 文件ä¸å·²æœ‰æ‰€æœ‰æ交" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "å¯ç”¨å˜æ›´è·¯å¾„的计算" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "å…许写一个增é‡æ交图形文件" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "在éžåŸºæœ¬æ‹†åˆ†æ交图形ä¸çš„最大æ交数" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "一个拆分æ交图形的两个级别之间的最大比率" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "åªè®©æ—©äºŽç»™å®šæ—¶é—´çš„文件过期" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ --reachableã€--stdin-commits 或 --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "æ„外的éžåå…进制对象 ID:%s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "æ£ä»Žæ ‡å‡†è¾“入收集æ交" #: builtin/commit-tree.c:18 msgid "" @@ -12755,7 +12862,7 @@ msgid "version" msgstr "版本" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "机器å¯è¯»çš„输出" @@ -12768,8 +12875,8 @@ msgid "terminate entries with NUL" msgstr "æ¡ç›®ä»¥ NUL å—符结尾" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "模å¼" @@ -13442,35 +13549,45 @@ msgstr "--dirty 与æ交å·ä¸å…¼å®¹" msgid "--broken is incompatible with commit-ishes" msgstr "--broken 与æ交å·ä¸å…¼å®¹" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s':ä¸æ˜¯ä¸€ä¸ªæ£è§„文件或符å·é“¾æŽ¥" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "æ— æ•ˆé€‰é¡¹ï¼š%s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%sï¼šæ— åˆå¹¶åŸºçº¿" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "ä¸æ˜¯ä¸€ä¸ª git 仓库" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "æä¾›äº†æ— æ•ˆå¯¹è±¡ '%s'。" -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "æ供了超过两个数æ®å¯¹è±¡ï¼š'%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "æ— æ³•å¤„ç†çš„对象 '%s'。" +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s:多æ¡åˆå¹¶åŸºçº¿ï¼Œä½¿ç”¨ %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<选项>] [<æ交> [<æ交>]] [--] [<路径>...]" @@ -13615,82 +13732,103 @@ msgstr "选项 `--default' å’Œ `type=ulong` æœŸæœ›ä¸€ä¸ªæ— ç¬¦å·é•¿æ•´åž‹ï¼Œä¸ msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "错误:除éžæŒ‡å®š --mark-tags,å¦åˆ™æ— æ³•å¯¼å‡ºåµŒå¥—æ ‡ç¾ã€‚" -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "--anonymize-map å–值ä¸èƒ½ä¸ºç©º" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "在 <n> 个对象之åŽæ˜¾ç¤ºè¿›åº¦" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "选择如何处ç†ç¾åæ ‡ç¾" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "é€‰æ‹©å½“æ ‡ç¾æŒ‡å‘è¢«è¿‡æ»¤å¯¹è±¡æ—¶è¯¥æ ‡ç¾çš„处ç†æ–¹å¼" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "选择使用备用编ç 处ç†æ交说明" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "æŠŠæ ‡è®°å˜å‚¨åˆ°è¿™ä¸ªæ–‡ä»¶" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "ä»Žè¿™ä¸ªæ–‡ä»¶å¯¼å…¥æ ‡è®°" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "ä»Žè¯¥æ–‡ä»¶å¯¼å…¥æ ‡è®°ï¼ˆå¦‚æžœå˜åœ¨çš„è¯ï¼‰" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "å½“æ ‡ç¾ç¼ºå°‘æ ‡è®°è€…å—段时,å‡è£…æ供一个" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "æ¯æ¬¡æäº¤éƒ½è¾“å‡ºæ•´ä¸ªæ ‘" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "使用 done 功能æ¥ç»ˆæ¢æµ" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "跳过数æ®å¯¹è±¡çš„输出" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "å¼•ç”¨è§„æ ¼" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "å¯¹å¯¼å‡ºçš„å¼•ç”¨åº”ç”¨å¼•ç”¨è§„æ ¼" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "匿å输出" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "from:to" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "在匿å输出ä¸å°† <from> 转æ¢ä¸º <to>" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "引用父对象 ID ä¸åœ¨ fast-export æµä¸" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "显示数æ®å¯¹è±¡/æ交的原始对象 ID" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "å¯¹å¸¦æœ‰æ ‡è®° ID çš„æ ‡ç¾åšæ ‡è®°" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "--anonymize-map 而没有 --anonymize 没有æ„义" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "ä¸èƒ½åŒæ—¶ä¼ 递å‚æ•° --import-marks å’Œ --import-marks-if-exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "Lockfile 已创建但未报告:%s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<选项>] [<仓库> [<å¼•ç”¨è§„æ ¼>...]]" @@ -14011,40 +14149,40 @@ msgstr "未指定远程仓库。请通过一个 URL 或远程仓库å指定,ç msgid "You need to specify a tag name." msgstr "您需è¦æŒ‡å®šä¸€ä¸ªæ ‡ç¾å称。" -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "--deepen ä¸æ”¯æŒè´Ÿæ•°æ·±åº¦" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen å’Œ --depth 是互斥的" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth å’Œ --unshallow ä¸èƒ½åŒæ—¶ä½¿ç”¨" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "对于一个完整的仓库,å‚æ•° --unshallow 没有æ„义" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all ä¸èƒ½å¸¦ä¸€ä¸ªä»“库å‚æ•°" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all å¸¦å¼•ç”¨è§„æ ¼æ²¡æœ‰ä»»ä½•æ„义" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "æ²¡æœ‰è¿™æ ·çš„è¿œç¨‹æˆ–è¿œç¨‹ç»„ï¼š%s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "获å–ç»„å¹¶æŒ‡å®šå¼•ç”¨è§„æ ¼æ²¡æœ‰æ„义" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14491,8 +14629,8 @@ msgstr "为 %2$s 设定的线程数 (%1$d) æ— æ•ˆ" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "没有线程支æŒï¼Œå¿½ç•¥ %s" @@ -14722,11 +14860,11 @@ msgstr "--untracked ä¸æ”¯æŒå’Œ --recurse-submodules 共用" msgid "invalid option combination, ignoring --threads" msgstr "æ— æ•ˆçš„é€‰é¡¹ç»„åˆï¼Œå¿½ç•¥ --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "没有线程支æŒï¼Œå¿½ç•¥ --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "æŒ‡å®šçš„çº¿ç¨‹æ•°æ— æ•ˆï¼ˆ%d)" @@ -14927,7 +15065,7 @@ msgstr "输入上的读错误" msgid "used more bytes than were available" msgstr "用掉了超过å¯ç”¨çš„å—节" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "åŒ…å¤ªå¤§è¶…è¿‡äº†å½“å‰ off_t 的定义" @@ -14998,8 +15136,8 @@ msgstr "解压缩严é‡çš„ä¸ä¸€è‡´" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "å‘现 %s 出现 SHA1 冲çªï¼" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "ä¸èƒ½è¯» %s" @@ -15060,7 +15198,7 @@ msgstr "parse_pack_objects() ä¸é‡åˆ°ä¸å¯ç†å–»çš„问题" msgid "Resolving deltas" msgstr "å¤„ç† delta ä¸" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "ä¸èƒ½åˆ›å»ºçº¿ç¨‹ï¼š%s" @@ -15125,58 +15263,67 @@ msgstr "æ— æ³•å˜å‚¨åŒ…文件" msgid "cannot store index file" msgstr "æ— æ³•å˜å‚¨ç´¢å¼•æ–‡ä»¶" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "åçš„ pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "æ— æ³•æ‰“å¼€çŽ°å˜åŒ…文件 '%s'" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "æ— æ³•ä¸º %s 打开包索引文件" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "éž delta:%d 个对象" msgstr[1] "éž delta:%d 个对象" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, 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:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "æ— æ³•è¿”å›žå½“å‰å·¥ä½œç›®å½•" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "错误选项 %s" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "未知的哈希算法 '%s'" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin ä¸èƒ½å’Œ --stdin åŒæ—¶ä½¿ç”¨" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin 需è¦ä¸€ä¸ª git 仓库" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format ä¸èƒ½å’Œ --stdin åŒæ—¶ä½¿ç”¨" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify 没有æ供包文件åå‚æ•°" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "åœ¨æ‰“åŒ…å¯¹è±¡ä¸ fsck 检查出错" @@ -15220,51 +15367,56 @@ msgstr "没有在 %s ä¸æ‰¾åˆ°æ¨¡ç‰ˆ" msgid "not copying templates from '%s': %s" msgstr "没有从 '%s' å¤åˆ¶æ¨¡ç‰ˆï¼š%s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "æ— æ•ˆçš„åˆå§‹åˆ†æ”¯å:'%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "ä¸èƒ½å¤„ç† %d 类型的文件" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "ä¸èƒ½ç§»åŠ¨ %s 至 %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "å°è¯•ç”¨ä¸åŒçš„哈希算法é‡æ–°åˆå§‹åŒ–仓库" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "未知的哈希算法 '%s'" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s å·²ç»å˜åœ¨" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init:已忽略 --initial-branch=%s" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "é‡æ–°åˆå§‹åŒ–å·²å˜åœ¨çš„共享 Git 仓库于 %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "é‡æ–°åˆå§‹åŒ–å·²å˜åœ¨çš„ Git 仓库于 %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "å·²åˆå§‹åŒ–空的共享 Git 仓库于 %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "å·²åˆå§‹åŒ–空的 Git 仓库于 %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15272,40 +15424,44 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<模æ¿ç›®å½•>] [--shared[=<æƒé™>]] " "[<目录>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "æƒé™" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "指定 git 仓库是多个用户之间共享的" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "覆盖åˆå§‹åˆ†æ”¯å称" + +#: builtin/init-db.c:564 msgid "hash" msgstr "hash" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "指定è¦ä½¿ç”¨çš„哈希算法" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "ä¸èƒ½åˆ›å»ºç›®å½• %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "ä¸èƒ½åˆ‡æ¢ç›®å½•åˆ° %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" "dir=<directory>)" msgstr "ä¸å…许 %s(或 --work-tree=<目录>)而没有指定 %s(或 --git-dir=<目录>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "ä¸èƒ½è®¿é—®å·¥ä½œåŒº '%s'" @@ -17025,7 +17181,7 @@ msgstr "å°è¯•åˆ 除ä¸å˜åœ¨çš„注解ä¸æ˜¯ä¸€ä¸ªé”™è¯¯" msgid "read object names from the standard input" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–对象å称" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "ä¸åˆ 除,åªæ˜¾ç¤º" @@ -17056,101 +17212,114 @@ msgid "" "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]" msgstr "git pack-objects [<选项>...] <å‰ç¼€å称> [< <引用列表> | < <对象列表>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "%s 错的包对象 CRC" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "%s æŸå的包对象" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "å‘现对象 %s 递归 delta" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "排åºäº† %u 个对象,预期 %<PRIu32> 个" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "ç¦ç”¨ bitmap å†™å…¥ï¼Œå› ä¸º pack.packSizeLimit 设置使得包被切分为多个" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "写入对象ä¸" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "对 %s 调用 stat 失败" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "写入 %<PRIu32> 个对象而预期 %<PRIu32> 个" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "ç¦ç”¨ bitmap å†™å…¥ï¼Œå› ä¸ºä¸€äº›å¯¹è±¡å°†ä¸ä¼šè¢«æ‰“包" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "%s åŽ‹ç¼©ä¸ delta 基准å移越界" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "%s çš„ delta 基准å移越界" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "对象计数ä¸" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "æ— æ³•è§£æžå¯¹è±¡ %s 头信æ¯" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "对象 %s æ— æ³•è¯»å–" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "对象 %s ä¸ä¸€è‡´çš„对象长度(%<PRIuMAX> vs %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "次优(suboptimal)打包 - 内å˜ä¸è¶³" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "使用 %d 个线程进行压缩" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "æ— æ³•ä¸ºæ ‡ç¾ %s 压缩对象" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "压缩对象ä¸" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "ä¸ä¸€è‡´çš„差异计数" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "uploadpack.blobpackfileuri çš„å–值必须是 '<object-hash> <pack-hash> <uri>' æ ¼å¼ï¼ˆå¾—到 '%s')" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "对象已ç»åœ¨å¦å¤–çš„ uploadpack.blobpackfileuri ä¸é…置(得到 '%s')" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17159,7 +17328,7 @@ msgstr "" "预期边界对象(edge object)ID,å´å¾—到垃圾数æ®ï¼š\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17168,226 +17337,234 @@ msgstr "" "预期对象 ID,å´å¾—到垃圾数æ®ï¼š\n" " %s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "选项 --missing çš„å€¼æ— æ•ˆ" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "æ— æ³•æ‰“å¼€åŒ…æ–‡ä»¶ç´¢å¼•" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "æ— æ³•æ£€æŸ¥ %s 处的æ¾æ•£å¯¹è±¡" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "æ— æ³•å¼ºåˆ¶æ¾æ•£å¯¹è±¡" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "ä¸æ˜¯ä¸€ä¸ªç‰ˆæœ¬ '%s'" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "å的版本 '%s'" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "æ— æ³•æ·»åŠ æœ€è¿‘çš„å¯¹è±¡" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "ä¸æ”¯æŒçš„索引版本 %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "å的索引版本 '%s'" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<版本>[,<å移>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬æ¥å†™åŒ…索引文件" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "æ¯ä¸ªè¾“出包的最大尺寸" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "忽略从备用对象å˜å‚¨é‡Œå€Ÿç”¨å¯¹è±¡" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "忽略包对象" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "é™åˆ¶æ‰“包窗å£çš„对象数" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "除对象数é‡é™åˆ¶å¤–设置打包窗å£çš„内å˜é™åˆ¶" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "打包å…许的 delta 链的最大长度" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "é‡ç”¨å·²å˜åœ¨çš„ deltas" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "é‡ç”¨å·²å˜åœ¨çš„对象" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "使用 OFS_DELTA 对象" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "使用线程查询最佳 delta 匹é…" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "ä¸åˆ›å»ºç©ºçš„包输出" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–版本å·å‚æ•°" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的对象" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "包括å¯ä»¥ä»Žä»»ä½•å¼•ç”¨è®¿é—®åˆ°çš„对象" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "包括被引用日志引用到的对象" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "包括被索引引用到的对象" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "è¾“å‡ºåŒ…åˆ°æ ‡å‡†è¾“å‡º" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "åŒ…æ‹¬é‚£äº›å¼•ç”¨äº†å¾…æ‰“åŒ…å¯¹è±¡çš„æ ‡ç¾å¯¹è±¡" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "ç»´æŒä¸å¯è¾¾çš„对象" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "打包æ¾æ•£çš„ä¸å¯è¾¾å¯¹è±¡" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "将比给定 <时间> æ–°çš„æ— æ³•è®¿é—®çš„å¯¹è±¡è§£åŒ…" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "使用稀ç–å¯è¾¾æ€§ç®—法" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "创建精简包" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "创建适åˆæµ…克隆仓库获å–的包" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "忽略é…有 .keep 文件的包" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "忽略该 pack" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "打包压缩级别" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "显示被移æ¤éšè—çš„æ交" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "使用 bitmap 索引(如果有的è¯ï¼‰ä»¥æ高对象计数时的速度" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "在建立包索引的åŒæ—¶åˆ›å»º bitmap 索引" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "如果å¯èƒ½ï¼Œå†™ bitmap 索引" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "处ç†ä¸¢å¤±çš„对象" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "ä¸è¦æ‰“包 promisor 包文件ä¸çš„对象" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "在增é‡åŽ‹ç¼©æ—¶å‚考数æ®å²›" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "åè®®" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "使用æ¤å议排除任何已é…置的 uploadpack.blobpackfileuri" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "增é‡é“¾æ·±åº¦ %d 太深了,强制为 %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "é…ç½® pack.deltaCacheLimit 太高了,强制为 %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "ä¸èƒ½ä½¿ç”¨ --max-pack-size æ¥æž„å»ºä¼ è¾“ç”¨çš„åŒ…æ–‡ä»¶" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "最å°çš„包文件大å°æ˜¯ 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin ä¸èƒ½ç”¨äºŽåˆ›å»ºä¸€ä¸ªå¯ç´¢å¼•åŒ…" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable å’Œ --unpack-unreachable ä¸å…¼å®¹" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "ä¸èƒ½åœ¨æ²¡æœ‰ --stdout 的情况下使用 --filter" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "枚举对象" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -18647,7 +18824,7 @@ msgstr "å¿«è¿› %s 到 %s。\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <仓库目录>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -18673,7 +18850,7 @@ msgstr "" "è‹¥è¦å±è”½æ¤ä¿¡æ¯ä¸”ä¿æŒé»˜è®¤è¡Œä¸ºï¼Œè®¾ç½® 'receive.denyCurrentBranch'\n" "é…ç½®å˜é‡ä¸º 'refuse'。" -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -18692,11 +18869,11 @@ msgstr "" "\n" "è‹¥è¦å±è”½æ¤ä¿¡æ¯ï¼Œæ‚¨å¯ä»¥è®¾ç½®å®ƒä¸º 'refuse'。" -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "é™é»˜æ¨¡å¼" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "您必须指定一个目录。" @@ -20227,6 +20404,14 @@ msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„引用。" msgid "cannot find commit %s (%s)" msgstr "ä¸èƒ½æ‰¾åˆ°æ交 %s(%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "哈希算法" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "未知的哈希算法" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20279,50 +20464,54 @@ msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <选项>" msgid "this worktree is not sparse (sparse-checkout file may not exist)" msgstr "本工作区ä¸æ˜¯ç¨€ç–模å¼ï¼ˆç¨€ç–检出文件å¯èƒ½ä¸å˜åœ¨ï¼‰" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "æ— æ³•ä¸ºç¨€ç–检出文件创建目录" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "æ— æ³•å‡çº§ä»“åº“æ ¼å¼ä»¥å¯ç”¨ worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "æ— æ³•è®¾ç½® extensions.worktreeConfig" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "åˆå§‹åŒ–稀ç–检出为 cone 模å¼" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "æ— æ³•æ‰“å¼€ '%s'" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "æ— æ³•è§„èŒƒåŒ–è·¯å¾„ %s" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <模å¼>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "æ— æ³•ä¸º C è¯è¨€é£Žæ ¼çš„å—符串 '%s' 去引å·" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "æ— æ³•åŠ è½½çŽ°å˜çš„稀ç–检出模å¼" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "ä»Žæ ‡å‡†è¾“å…¥è¯»å–模å¼" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "刷新工作目录时出错" @@ -21008,12 +21197,37 @@ msgstr "阻æ¢è®¾ç½®å模组 URL 的输出" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <路径> <新地å€>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "设置默认跟踪分支为 master" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "设置默认跟踪分支" + +#: builtin/submodule--helper.c:2300 +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <路径>" + +#: builtin/submodule--helper.c:2301 +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-b|--branch) <分支> <路径>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "éœ€è¦ --branch 或 --default" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch å’Œ --default 是互斥的" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s ä¸æ”¯æŒ --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„ submodule--helper å命令" @@ -21635,193 +21849,187 @@ msgstr "git worktree remove [<选项>] <工作区>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <路径>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "åˆ é™¤ '%s' 失败" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "åˆ é™¤å·¥ä½œåŒº/%s:ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„目录" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "åˆ é™¤ worktrees/%s:gitdir 文件ä¸å˜åœ¨" +msgid "not a valid directory" +msgstr "ä¸æ˜¯ä¸€ä¸ªæœ‰æ•ˆçš„目录" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "åˆ é™¤ worktrees/%sï¼šæ— æ³•è¯»å– gitdir 文件 (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "gitdir 文件ä¸å˜åœ¨" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "åˆ é™¤å·¥ä½œæ ‘/%s:读å–过çŸï¼ˆæœŸæœ› %<PRIuMAX> å—èŠ‚ï¼Œè¯»å– %<PRIuMAX>)" +msgid "unable to read gitdir file (%s)" +msgstr "æ— æ³•è¯»å– gitdir 文件(%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "åˆ é™¤ worktrees/%sï¼šæ— æ•ˆçš„ gitdir 文件" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "读å–过çŸï¼ˆæœŸæœ› %<PRIuMAX> å—èŠ‚ï¼Œè¯»å– %<PRIuMAX>)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "æ— æ•ˆçš„ gitdir 文件" -#: builtin/worktree.c:126 +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "gitdir 文件指å‘一个ä¸å˜åœ¨çš„ä½ç½®" + +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "åˆ é™¤ worktrees/%s:gitdir 文件的指å‘ä¸å˜åœ¨" +msgid "Removing %s/%s: %s" +msgstr "åˆ é™¤ %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "报告清除的工作区" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "将早于 <时间> 的工作区过期" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' å·²ç»å˜åœ¨" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "æ— æ³•å†æ¬¡æ·»åŠ 工作区 '%s'" +msgid "unusable worktree destination '%s'" +msgstr "æ— æ³•ä½¿ç”¨çš„å·¥ä½œåŒºç›®æ ‡ '%s'" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" -"'%s' 是一个丢失但é”定的工作区,使用\n" -"'add -f -f' 覆盖,或 'unlock' å’Œ 'prune' 或 'remove' 清除" +"'%s' 是一个丢失但é”定的工作区,\n" +"使用 '%s -f -f' 覆盖,或用 'unlock' å’Œ 'prune' 或 'remove' 清除" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" -"'%s' 是一个丢失但已ç»æ³¨å†Œçš„工作区,使用\n" -"'add -f' 覆盖,或 'prune' 或 'remove' 清除" +"'%s' 是一个丢失但已ç»æ³¨å†Œçš„工作区,\n" +"使用 '%s -f' 覆盖,或用 'prune' 或 'remove' 清除" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "ä¸èƒ½åˆ›å»ºç›®å½• '%s'" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "准备工作区(新分支 '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "准备工作区(é‡ç½®åˆ†æ”¯ '%s',之å‰ä¸º %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "准备工作区(检出 '%s')" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "准备工作区(分离头指针 %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "检出 <分支>,å³ä½¿å·²ç»è¢«æ£€å‡ºåˆ°å…¶å®ƒå·¥ä½œåŒº" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "创建一个新分支" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "创建或é‡ç½®ä¸€ä¸ªåˆ†æ”¯" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "生æˆæ–°çš„工作区" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "é”定新工作区" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "设置跟踪模å¼ï¼ˆå‚è§ git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "å°è¯•ä¸ºæ–°åˆ†æ”¯å匹é…一个远程跟踪分支" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-bã€-B å’Œ --detach 是互斥的" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "åªèƒ½åœ¨åˆ›å»ºæ–°åˆ†æ”¯æ—¶ä½¿ç”¨é€‰é¡¹ --[no-]track " -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "é”å®šåŽŸå› " -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' ä¸æ˜¯ä¸€ä¸ªå·¥ä½œåŒº" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "ä¸»å·¥ä½œåŒºæ— æ³•è¢«åŠ é”或解é”" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' 已被é”å®šï¼ŒåŽŸå› ï¼š%s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' 已被é”定" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' 未被é”定" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "ä¸èƒ½ç§»åŠ¨æˆ–åˆ é™¤åŒ…å«å模组的工作区" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "强制移动,å³ä½¿å·¥ä½œåŒºæ˜¯è„的或已é”定" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' 是一个主工作区" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "æ— æ³•ä»Ž '%s' ç®—å‡ºç›®æ ‡å称" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "ç›®æ ‡ '%s' å·²å˜åœ¨" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -21830,7 +22038,7 @@ msgstr "" "æ— æ³•ç§»åŠ¨ä¸€ä¸ªé”定的工作区,é”å®šåŽŸå› ï¼š%s\n" "使用 'move -f -f' 覆盖或先解é”" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -21838,36 +22046,36 @@ msgstr "" "æ— æ³•ç§»åŠ¨ä¸€ä¸ªé”定的工作区,\n" "使用 'move -f -f' 覆盖或先解é”" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "验è¯å¤±è´¥ï¼Œæ— 法移动工作区:%s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "移动 '%s' 到 '%s' 失败" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "在 '%s' ä¸æ‰§è¡Œ 'git status' 失败" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "'%s' 包å«ä¿®æ”¹æˆ–未跟踪的文件,使用 --force åˆ é™¤" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "在 '%s' ä¸æ‰§è¡Œ 'git status' 失败,退出ç %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "å¼ºåˆ¶åˆ é™¤ï¼Œå³ä½¿å·¥ä½œåŒºæ˜¯è„的或已é”定" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -21876,7 +22084,7 @@ msgstr "" "æ— æ³•åˆ é™¤ä¸€ä¸ªé”定的工作区,é”å®šåŽŸå› ï¼š%s\n" "使用 'remove -f -f' 覆盖或先解é”" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -21884,7 +22092,7 @@ msgstr "" "æ— æ³•åˆ é™¤ä¸€ä¸ªé”定的工作区,\n" "使用 'remove -f -f' 覆盖或先解é”" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "验è¯å¤±è´¥ï¼Œæ— æ³•åˆ é™¤å·¥ä½œåŒºï¼š%s" @@ -21905,32 +22113,32 @@ msgstr "å°† <å‰ç¼€> åç›®å½•å†…å®¹å†™åˆ°ä¸€ä¸ªæ ‘å¯¹è±¡" msgid "only useful for debugging" msgstr "åªå¯¹è°ƒè¯•æœ‰ç”¨" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "git 版本:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() 失败,错误为 '%s'(%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "编译器信æ¯ï¼š" -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "libc ä¿¡æ¯ï¼š" -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "ä¸æ˜¯åœ¨ git 仓库ä¸æ‰§è¡Œ - 没有è¦æ˜¾ç¤ºçš„é’©å\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <文件>] [-s|--suffix <æ ¼å¼>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -21964,66 +22172,76 @@ msgstr "" "请检查错误报告下é¢çš„内容。\n" "您å¯ä»¥åˆ 除任何您ä¸æƒ³å…±äº«çš„内容。\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "æŒ‡å®šé”™è¯¯æŠ¥å‘Šæ–‡ä»¶çš„ç›®æ ‡ä½ç½®" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "指定文件的 strftime æ ¼å¼åŽç¼€" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "ä¸èƒ½ä¸º '%s' 创建先导目录" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "系统信æ¯" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "å¯ç”¨çš„é’©å" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "ä¸èƒ½åˆ›å»ºæ–°æ–‡ä»¶ '%s'" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "æ— æ³•å†™å…¥ %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "在 '%s' 创建了新报告。\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "å模组 '%s' 缺少 from æ ‡è®°" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "å模组 '%s' 缺少 to æ ‡è®°" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "预期 'mark' 命令,得到 %s" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "预期 'to' 命令,得到 %s" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "å模组é‡å†™é€‰é¡¹çš„é¢„æœŸæ ¼å¼ä¸º name:filename" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "ä¸å¸¦ --allow-unsafe-features 的输入ä¸ç¦æ¢ä½¿ç”¨åŠŸèƒ½ '%s'" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "--packfile çš„å‚数必须是有效的哈希值(得到 '%s')" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22199,30 +22417,30 @@ msgstr "ä¸æ”¯æŒå§”æ‰˜æŽ§åˆ¶ï¼Œå› ä¸º cURL < 7.22.0" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "ä¸æ”¯æŒå…¬é’¥æ–‡ä»¶é”å®šï¼Œå› ä¸º cURL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "ä¸æ”¯æŒ CURLSSLOPT_NO_REVOKEï¼Œå› ä¸º cURL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "ä¸æ”¯æŒåè®®é™åˆ¶ï¼Œå› 为 cURL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "ä¸æ”¯æŒçš„ SSL åŽç«¯ '%s'。支æŒçš„ SSL åŽç«¯ï¼š" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "æ— æ³•è®¾ç½® SSL åŽç«¯ä¸º '%s':cURL: cURL 没有使用 SSL åŽç«¯æž„建" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "æ— æ³•å°† SSL åŽç«¯è®¾ç½®ä¸º '%s':已ç»è®¾ç½®" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22233,111 +22451,134 @@ msgstr "" " 请求:%s\n" " é‡å®šå‘:%s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "在 push-option å–值ä¸æ— 效的引å·ï¼š'%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs æ— æ•ˆï¼šè¿™æ˜¯ä¸€ä¸ª git 仓库么?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "æ— æ•ˆçš„æœåŠ¡ç«¯å“应。预期æœåŠ¡ï¼Œå¾—到 flush 包" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "æ— æ•ˆçš„æœåŠ¡ç«¯å“应,得到 '%s'" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "仓库 '%s' 未找到" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "'%s' 鉴æƒå¤±è´¥" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "æ— æ³•è®¿é—® '%s':%s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "é‡å®šå‘到 %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "当没有设置温和处ç†æ–‡ä»¶ç»“æŸç¬¦ï¼ˆEOF)时,ä¸åº”该有文件结æŸç¬¦" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "远程æœåŠ¡å™¨å‘é€äº†æ— 状æ€åˆ†éš”符" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "æ— æ³•å€’å›ž rpc post æ•°æ® - å°è¯•å¢žåŠ http.postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl:错误的行宽å—符:%.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl:æ„外å“应结æŸåŒ…" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC 失败。%s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "ä¸èƒ½å¤„ç†è¿™ä¹ˆå¤§çš„推é€" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "ä¸èƒ½åŽ‹ç¼©è¯·æ±‚,zlib 压缩错误 %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "ä¸èƒ½åŽ‹ç¼©è¯·æ±‚,zlib 结æŸé”™è¯¯ %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "收到了 %d å—节长度的头信æ¯" + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "预期ä»ç„¶éœ€è¦ %d 个å—节的æ£æ–‡" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "å“‘ http ä¼ è¾“ä¸æ”¯æŒ shalllow 能力" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "获å–失败。" -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "æ— æ³•é€šè¿‡æ™ºèƒ½ HTTP èŽ·å– sha1" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "å议错误:期望 sha/ref,å´å¾—到 '%s'" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "http ä¼ è¾“åè®®ä¸æ”¯æŒ %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push 失败" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl:用法:git remote-curl <远程> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl:错误读å–æ¥è‡ª git 的命令æµ" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl:å°è¯•æ²¡æœ‰æœ¬åœ°ä»“库下获å–" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl:未知的æ¥è‡ª git 的命令 '%s'" @@ -23345,29 +23586,29 @@ msgstr "å模组 '$displaypath':'$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "æ— æ³•é€’å½’è¿›å模组路径 '$displaypath'" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "选项 --cached ä¸èƒ½å’Œé€‰é¡¹ --files åŒæ—¶ä½¿ç”¨" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "æ„å¤–çš„æ¨¡å¼ $mod_dst" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_src" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_dst" # 译者:注æ„ä¿æŒå‰å¯¼ç©ºæ ¼ -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_src å’Œ $sha1_dst" @@ -23766,44 +24007,44 @@ msgid_plural "touched %d paths\n" msgstr[0] "触碰了 %d 个路径\n" msgstr[1] "触碰了 %d 个路径\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." msgstr "如果补ä¸èƒ½å¹²å‡€åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºæš‚å˜ã€‚" -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." msgstr "如果补ä¸èƒ½å¹²å‡€åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºè´®è—。" -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." msgstr "如果补ä¸èƒ½å¹²å‡€åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºæœªæš‚å˜ã€‚" -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." msgstr "如果补ä¸èƒ½å¹²å‡€åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºåº”用。" -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." msgstr "如果补ä¸èƒ½å¹²å‡€åœ°åº”用,编辑å—将立å³æ ‡è®°ä¸ºä¸¢å¼ƒã€‚" -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "为写入打开å—编辑文件失败:%s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -23816,12 +24057,12 @@ msgstr "" "è¦åˆ 除 '%s' å¼€å§‹çš„è¡Œï¼Œåˆ é™¤å®ƒä»¬ã€‚\n" "以 %s å¼€å§‹çš„è¡Œå°†è¢«åˆ é™¤ã€‚\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "æ— æ³•è¯»å–å—编辑文件:%s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -23835,7 +24076,7 @@ msgstr "" "a - æš‚å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸æš‚å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -23849,7 +24090,7 @@ msgstr "" "a - è´®è—该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è´®è—该å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -23863,7 +24104,7 @@ msgstr "" "a - ä¸æš‚å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦ä¸æš‚å˜è¯¥å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -23877,7 +24118,7 @@ msgstr "" "a - 应用该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦åº”用该å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -23891,7 +24132,7 @@ msgstr "" "a - 丢弃该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦ä¸¢å¼ƒè¯¥å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -23905,7 +24146,7 @@ msgstr "" "a - 丢弃该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦ä¸¢å¼ƒè¯¥å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -23919,7 +24160,7 @@ msgstr "" "a - 应用该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦åº”用该å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -23933,7 +24174,7 @@ msgstr "" "a - 应用该å—和本文件ä¸åŽé¢çš„全部å—\n" "d - ä¸è¦åº”用该å—和本文件ä¸åŽé¢çš„全部å—" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -23955,85 +24196,90 @@ msgstr "" "e - 手动编辑当å‰å—\n" "? - 显示帮助\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "选ä¸çš„å—ä¸èƒ½åº”用到索引ï¼\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "忽略未åˆå…¥çš„:%s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "将模å¼å˜æ›´åº”用到工作区 [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " msgstr "å°†åˆ é™¤æ“作应用到工作区 [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "å°†æ·»åŠ æ“作应用到工作区 [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "将该å—应用到工作区 [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "没有其它å¯ä¾›è·³è½¬çš„å—\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "æ— æ•ˆæ•°å—:'%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "对ä¸èµ·ï¼Œåªæœ‰ %d 个å¯ç”¨å—。\n" msgstr[1] "对ä¸èµ·ï¼Œåªæœ‰ %d 个å¯ç”¨å—。\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "没有其它å¯ä¾›æŸ¥æ‰¾çš„å—\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "错误的æ£åˆ™è¡¨è¾¾å¼ %s:%s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "没有和给定模å¼ç›¸åŒ¹é…çš„å—\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "没有å‰ä¸€ä¸ªå—\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "没有下一个å—\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "对ä¸èµ·ï¼Œä¸èƒ½æ‹†åˆ†è¿™ä¸ªå—\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "拆分为 %d å—。\n" msgstr[1] "拆分为 %d å—。\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "对ä¸èµ·ï¼Œä¸èƒ½ç¼–辑这个å—\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24050,19 +24296,19 @@ msgstr "" "diff - 显示 HEAD 和索引间差异\n" "add untracked - æ·»åŠ æœªè·Ÿè¸ªæ–‡ä»¶çš„å†…å®¹è‡³æš‚å˜åˆ—表\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "缺失 --" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "未知的 --patch 模å¼ï¼š%s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "æ— æ•ˆçš„å‚æ•° %s,期望是 --" @@ -24365,56 +24611,56 @@ msgstr "(mbox) æ·»åŠ cc:%s 自行 '%s'\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) æ·»åŠ to:%s 自行 '%s'\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) æ·»åŠ cc:%s 自行 '%s'\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(body) æ·»åŠ cc: %s 自行 '%s'\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) ä¸èƒ½æ‰§è¡Œ '%s'" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) æ·»åŠ %s: %s 自:'%s'\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) æ— æ³•å…³é—管é“至 '%s'" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "ä¸èƒ½ä»¥ 7bit å½¢å¼å‘é€ä¿¡æ¯" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "æ— æ•ˆçš„ä¼ é€ç¼–ç " -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "ä¸èƒ½æ‰“å¼€ %s:%s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s:补ä¸åŒ…å«ä¸€ä¸ªè¶…过 998 å—符的行" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "略过 %s å«å¤‡ä»½åŽç¼€ '%s'。\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "您真的è¦å‘é€ %s?[y|N]:" diff --git a/po/zh_TW.po b/po/zh_TW.po index 38670cb654..9334b46faa 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -292,8 +292,8 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2020-05-27 07:23+0800\n" -"PO-Revision-Date: 2020-05-30 00:36+0800\n" +"POT-Creation-Date: 2020-07-10 09:53+0800\n" +"PO-Revision-Date: 2020-07-20 18:34+0800\n" "Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n" "Language-Team: Chinese (Traditional) <zh-l10n@lists.linux.org.tw>\n" "Language: zh_TW\n" @@ -395,21 +395,21 @@ msgstr[0] "å¢žåŠ äº† %d 個路徑\n" msgid "ignoring unmerged: %s" msgstr "忽略未åˆä½µï¼š%s" -#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366 +#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368 #, c-format msgid "Only binary files changed.\n" msgstr "åªæœ‰äºŒé€²ä½æª”案被修改。\n" -#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368 +#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370 #, c-format msgid "No changes.\n" msgstr "沒有修改。\n" -#: add-interactive.c:935 git-add--interactive.perl:1376 +#: add-interactive.c:935 git-add--interactive.perl:1378 msgid "Patch update" msgstr "修補檔更新" -#: add-interactive.c:974 git-add--interactive.perl:1754 +#: add-interactive.c:974 git-add--interactive.perl:1771 msgid "Review diff" msgstr "檢視 diff" @@ -477,11 +477,11 @@ msgstr "é¸æ“‡ç·¨è™ŸéŽçš„é …ç›®" msgid "(empty) select nothing" msgstr "(空)全ä¸é¸å–" -#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851 +#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868 msgid "*** Commands ***" msgstr "*** 指令 ***" -#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848 +#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865 msgid "What now" msgstr "è«‹é¸æ“‡" @@ -498,7 +498,7 @@ msgstr "未快å–" #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905 -#: builtin/submodule--helper.c:2148 bugreport.c:129 +#: builtin/submodule--helper.c:2148 bugreport.c:135 #: git-add--interactive.perl:213 msgid "path" msgstr "路徑" @@ -507,33 +507,38 @@ msgstr "路徑" msgid "could not refresh index" msgstr "無法é‡æ–°æ•´ç†ç´¢å¼•" -#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765 +#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782 #, c-format msgid "Bye.\n" msgstr "å†è¦‹ã€‚\n" -#: add-patch.c:34 git-add--interactive.perl:1428 +#: add-patch.c:34 git-add--interactive.perl:1430 #, c-format, perl-format msgid "Stage mode change [y,n,q,a,d%s,?]? " msgstr "æš«å˜æ¨¡å¼è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:35 git-add--interactive.perl:1429 +#: add-patch.c:35 git-add--interactive.perl:1431 #, c-format, perl-format msgid "Stage deletion [y,n,q,a,d%s,?]? " -msgstr "æš«å˜åˆªé™¤å‹•ä½œ [y,n,q,a,d%s,?]? " +msgstr "æš«å˜åˆªé™¤è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:36 git-add--interactive.perl:1430 +#: add-patch.c:36 git-add--interactive.perl:1432 +#, c-format, perl-format +msgid "Stage addition [y,n,q,a,d%s,?]? " +msgstr "æš«å˜æ–°å¢žè®Šæ›´ [y,n,q,a,d%s,?]? " + +#: add-patch.c:37 git-add--interactive.perl:1433 #, c-format, perl-format msgid "Stage this hunk [y,n,q,a,d%s,?]? " msgstr "æš«å˜æ¤å€å¡Š [y,n,q,a,d%s,?]? " -#: add-patch.c:38 +#: add-patch.c:39 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "staging." msgstr "如果修補檔能乾淨地套用,編輯å€å¡Šå°‡ç«‹å³æ¨™è¨˜ç‚ºæš«å˜ã€‚" -#: add-patch.c:41 +#: add-patch.c:42 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -547,28 +552,33 @@ msgstr "" "a - æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:55 git-add--interactive.perl:1433 +#: add-patch.c:56 git-add--interactive.perl:1436 #, c-format, perl-format msgid "Stash mode change [y,n,q,a,d%s,?]? " msgstr "儲è—模å¼è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:56 git-add--interactive.perl:1434 +#: add-patch.c:57 git-add--interactive.perl:1437 #, c-format, perl-format msgid "Stash deletion [y,n,q,a,d%s,?]? " -msgstr "儲è—刪除動作 [y,n,q,a,d%s,?]? " +msgstr "儲è—刪除變更 [y,n,q,a,d%s,?]? " -#: add-patch.c:57 git-add--interactive.perl:1435 +#: add-patch.c:58 git-add--interactive.perl:1438 +#, c-format, perl-format +msgid "Stash addition [y,n,q,a,d%s,?]? " +msgstr "儲è—新增變更 [y,n,q,a,d%s,?]? " + +#: add-patch.c:59 git-add--interactive.perl:1439 #, c-format, perl-format msgid "Stash this hunk [y,n,q,a,d%s,?]? " msgstr "儲è—æ¤å€å¡Š [y,n,q,a,d%s,?]? " -#: add-patch.c:59 +#: add-patch.c:61 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "stashing." msgstr "如果修補檔能乾淨地套用,編輯å€å¡Šå°‡ç«‹å³æ¨™è¨˜ç‚ºå„²è—。" -#: add-patch.c:62 +#: add-patch.c:64 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -582,28 +592,33 @@ msgstr "" "a - 儲è—æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸å„²è—æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:78 git-add--interactive.perl:1438 +#: add-patch.c:80 git-add--interactive.perl:1442 #, c-format, perl-format msgid "Unstage mode change [y,n,q,a,d%s,?]? " msgstr "å–消暫å˜æ¨¡å¼è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:79 git-add--interactive.perl:1439 +#: add-patch.c:81 git-add--interactive.perl:1443 #, c-format, perl-format msgid "Unstage deletion [y,n,q,a,d%s,?]? " -msgstr "å–消暫å˜åˆªé™¤å‹•ä½œ [y,n,q,a,d%s,?]? " +msgstr "å–消暫å˜åˆªé™¤è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:80 git-add--interactive.perl:1440 +#: add-patch.c:82 git-add--interactive.perl:1444 +#, c-format, perl-format +msgid "Unstage addition [y,n,q,a,d%s,?]? " +msgstr "å–消暫å˜æ–°å¢žè®Šæ›´ [y,n,q,a,d%s,?]? " + +#: add-patch.c:83 git-add--interactive.perl:1445 #, c-format, perl-format msgid "Unstage this hunk [y,n,q,a,d%s,?]? " msgstr "å–消暫å˜æ¤å€å¡Š [y,n,q,a,d%s,?]? " -#: add-patch.c:82 +#: add-patch.c:85 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "unstaging." msgstr "如果修補檔能乾淨地套用,編輯å€å¡Šå°‡ç«‹å³æ¨™è¨˜ç‚ºæœªæš«å˜ã€‚" -#: add-patch.c:85 +#: add-patch.c:88 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -617,28 +632,33 @@ msgstr "" "a - ä¸æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦ä¸æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:100 git-add--interactive.perl:1443 +#: add-patch.c:103 git-add--interactive.perl:1448 #, c-format, perl-format msgid "Apply mode change to index [y,n,q,a,d%s,?]? " msgstr "將模å¼è®Šæ›´å¥—用到索引 [y,n,q,a,d%s,?]? " -#: add-patch.c:101 git-add--interactive.perl:1444 +#: add-patch.c:104 git-add--interactive.perl:1449 #, c-format, perl-format msgid "Apply deletion to index [y,n,q,a,d%s,?]? " -msgstr "將刪除動作套用到索引 [y,n,q,a,d%s,?]? " +msgstr "將刪除變更套用到索引 [y,n,q,a,d%s,?]? " -#: add-patch.c:102 git-add--interactive.perl:1445 +#: add-patch.c:105 git-add--interactive.perl:1450 +#, c-format, perl-format +msgid "Apply addition to index [y,n,q,a,d%s,?]? " +msgstr "套用新增變更至索引 [y,n,q,a,d%s,?]? " + +#: add-patch.c:106 git-add--interactive.perl:1451 #, c-format, perl-format msgid "Apply this hunk to index [y,n,q,a,d%s,?]? " msgstr "å°‡æ¤å€å¡Šå¥—用到索引 [y,n,q,a,d%s,?]? " -#: add-patch.c:104 add-patch.c:169 add-patch.c:212 +#: add-patch.c:108 add-patch.c:176 add-patch.c:221 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "applying." msgstr "如果修補檔能乾淨地套用,編輯å€å¡Šå°‡ç«‹å³æ¨™è¨˜ç‚ºå¥—用。" -#: add-patch.c:107 +#: add-patch.c:111 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -652,31 +672,37 @@ msgstr "" "a - 套用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦å¥—用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:122 git-add--interactive.perl:1448 -#: git-add--interactive.perl:1463 +#: add-patch.c:126 git-add--interactive.perl:1454 +#: git-add--interactive.perl:1472 #, c-format, perl-format msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? " msgstr "從工作å€ä¸æ¨æ£„模å¼è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:123 git-add--interactive.perl:1449 -#: git-add--interactive.perl:1464 +#: add-patch.c:127 git-add--interactive.perl:1455 +#: git-add--interactive.perl:1473 #, c-format, perl-format msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? " -msgstr "從工作å€ä¸æ¨æ£„刪除動作 [y,n,q,a,d%s,?]? " +msgstr "從工作å€ä¸æ¨æ£„刪除變更 [y,n,q,a,d%s,?]? " + +#: add-patch.c:128 git-add--interactive.perl:1456 +#: git-add--interactive.perl:1474 +#, c-format, perl-format +msgid "Discard addition from worktree [y,n,q,a,d%s,?]? " +msgstr "放棄工作目錄的新增變更 [y,n,q,a,d%s,?]? " -#: add-patch.c:124 git-add--interactive.perl:1450 -#: git-add--interactive.perl:1465 +#: add-patch.c:129 git-add--interactive.perl:1457 +#: git-add--interactive.perl:1475 #, c-format, perl-format msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? " msgstr "從工作å€ä¸æ¨æ£„æ¤å€å¡Š [y,n,q,a,d%s,?]? " -#: add-patch.c:126 add-patch.c:148 add-patch.c:191 +#: add-patch.c:131 add-patch.c:154 add-patch.c:199 msgid "" "If the patch applies cleanly, the edited hunk will immediately be marked for " "discarding." msgstr "如果修補檔能乾淨地套用,編輯å€å¡Šå°‡ç«‹å³æ¨™è¨˜ç‚ºæ¨æ£„。" -#: add-patch.c:129 add-patch.c:194 +#: add-patch.c:134 add-patch.c:202 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -690,22 +716,27 @@ msgstr "" "a - æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453 +#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460 #, c-format, perl-format msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? " msgstr "從索引和工作å€ä¸æ¨æ£„模å¼è®Šæ›´ [y,n,q,a,d%s,?]? " -#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454 +#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461 #, c-format, perl-format msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? " msgstr "從索引和工作å€ä¸æ¨æ£„刪除 [y,n,q,a,d%s,?]? " -#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455 +#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462 +#, c-format, perl-format +msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? " +msgstr "放棄索引åŠå·¥ä½œç›®éŒ„的新增變更 [y,n,q,a,d%s,?]? " + +#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463 #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "從索引和工作å€ä¸æ¨æ£„æ¤å€å¡Š [y,n,q,a,d%s,?]? " -#: add-patch.c:151 +#: add-patch.c:157 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -719,22 +750,27 @@ msgstr "" "a - æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458 +#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466 #, c-format, perl-format msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? " msgstr "將模å¼è®Šæ›´å¥—ç”¨åˆ°ç´¢å¼•å’Œå·¥ä½œå€ [y,n,q,a,d%s,?]? " -#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459 +#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467 #, c-format, perl-format msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? " -msgstr "å°‡åˆªé™¤å‹•ä½œå¥—ç”¨åˆ°ç´¢å¼•å’Œå·¥ä½œå€ [y,n,q,a,d%s,?]? " +msgstr "å°‡åˆªé™¤è®Šæ›´å¥—ç”¨åˆ°ç´¢å¼•å’Œå·¥ä½œå€ [y,n,q,a,d%s,?]? " + +#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468 +#, c-format, perl-format +msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? " +msgstr "套用索引åŠå·¥ä½œç›®éŒ„的新增變更 [y,n,q,a,d%s,?]? " -#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460 +#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469 #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "å°‡æ¤å€å¡Šå¥—ç”¨åˆ°ç´¢å¼•å’Œå·¥ä½œå€ [y,n,q,a,d%s,?]? " -#: add-patch.c:172 +#: add-patch.c:179 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -748,7 +784,7 @@ msgstr "" "a - 套用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦å¥—用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:215 +#: add-patch.c:224 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -762,40 +798,40 @@ msgstr "" "a - 套用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦å¥—用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" -#: add-patch.c:319 +#: add-patch.c:328 #, c-format msgid "could not parse hunk header '%.*s'" msgstr "無法解æžå€å¡Šæ¨™é '%.*s'" -#: add-patch.c:338 add-patch.c:342 +#: add-patch.c:347 add-patch.c:351 #, c-format msgid "could not parse colored hunk header '%.*s'" msgstr "無法解æžä¸Šè‰²éŽçš„å€å¡Šæ¨™é '%.*s'" -#: add-patch.c:396 +#: add-patch.c:405 msgid "could not parse diff" msgstr "無法解æžå·®ç•° (diff)" -#: add-patch.c:415 +#: add-patch.c:424 msgid "could not parse colored diff" msgstr "無法解æžä¸Šè‰²éŽçš„差異 (diff)" -#: add-patch.c:429 +#: add-patch.c:438 #, c-format msgid "failed to run '%s'" msgstr "無法執行 '%s'" -#: add-patch.c:588 +#: add-patch.c:602 msgid "mismatched output from interactive.diffFilter" msgstr "interactive.diffFilter 的輸出ä¸ç¬¦" -#: add-patch.c:589 +#: add-patch.c:603 msgid "" "Your filter must maintain a one-to-one correspondence\n" "between its input and output lines." msgstr "您的éŽæ¿¾å™¨å¿…é ˆåœ¨å…¶è¼¸å…¥åŠè¼¸å‡ºè¡Œç¶æŒä¸€å°ä¸€çš„å°æ‡‰é—œä¿‚。" -#: add-patch.c:762 +#: add-patch.c:776 #, c-format msgid "" "expected context line #%d in\n" @@ -804,7 +840,7 @@ msgstr "" "應有上下文行 #%d æ–¼\n" "%.*s" -#: add-patch.c:777 +#: add-patch.c:791 #, c-format msgid "" "hunks do not overlap:\n" @@ -817,11 +853,11 @@ msgstr "" "\tä¸ä»¥ä¸‹è¿°çµå°¾ï¼š\n" "%.*s" -#: add-patch.c:1053 git-add--interactive.perl:1112 +#: add-patch.c:1067 git-add--interactive.perl:1114 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n" msgstr "手動å€å¡Šç·¨è¼¯æ¨¡å¼ -- 檢視底部的快速指å—。\n" -#: add-patch.c:1057 +#: add-patch.c:1071 #, c-format msgid "" "---\n" @@ -835,7 +871,7 @@ msgstr "" "以 %c 開始的行將被刪除。\n" #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. -#: add-patch.c:1071 git-add--interactive.perl:1126 +#: add-patch.c:1085 git-add--interactive.perl:1128 msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" "edit again. If all lines of the hunk are removed, then the edit is\n" @@ -844,11 +880,11 @@ msgstr "" "如果ä¸èƒ½ä¹¾æ·¨åœ°å¥—用,您將有機會é‡æ–°ç·¨è¼¯ã€‚如果æ¤å€å¡Šçš„全部內容刪除,則\n" "æ¤æ¬¡ç·¨è¼¯è¢«çµ‚æ¢ï¼Œæ¤å€å¡Šä¸æœƒè¢«ä¿®æ”¹ã€‚\n" -#: add-patch.c:1104 +#: add-patch.c:1118 msgid "could not parse hunk header" msgstr "無法解æžå€å¡Šæ¨™é " -#: add-patch.c:1149 +#: add-patch.c:1163 msgid "'git apply --cached' failed" msgstr "「git apply --cachedã€å¤±æ•—" @@ -864,24 +900,24 @@ msgstr "「git apply --cachedã€å¤±æ•—" #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. -#: add-patch.c:1218 git-add--interactive.perl:1239 +#: add-patch.c:1232 git-add--interactive.perl:1241 msgid "" "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? " msgstr "您的編輯塊ä¸èƒ½è¢«æ‡‰ç”¨ã€‚é‡æ–°ç·¨è¼¯ï¼ˆé¸æ“‡ \"no\" æ¨æ£„ï¼ï¼‰ [y/n]? " -#: add-patch.c:1261 +#: add-patch.c:1275 msgid "The selected hunks do not apply to the index!" msgstr "é¸å–çš„å€å¡Šä¸æœƒå¥—用進索引ï¼" -#: add-patch.c:1262 git-add--interactive.perl:1343 +#: add-patch.c:1276 git-add--interactive.perl:1345 msgid "Apply them to the worktree anyway? " msgstr "無論如何都è¦å¥—用到工作å€å—Žï¼Ÿ" -#: add-patch.c:1269 git-add--interactive.perl:1346 +#: add-patch.c:1283 git-add--interactive.perl:1348 msgid "Nothing was applied.\n" msgstr "未套用。\n" -#: add-patch.c:1326 +#: add-patch.c:1340 msgid "" "j - leave this hunk undecided, see next undecided hunk\n" "J - leave this hunk undecided, see next hunk\n" @@ -903,68 +939,68 @@ msgstr "" "e - 手動編輯目å‰å€å¡Š\n" "? - 顯示說明\n" -#: add-patch.c:1447 add-patch.c:1457 +#: add-patch.c:1463 add-patch.c:1473 msgid "No previous hunk" msgstr "沒有上一個å€å¡Š" -#: add-patch.c:1452 add-patch.c:1462 +#: add-patch.c:1468 add-patch.c:1478 msgid "No next hunk" msgstr "沒有下一個å€å¡Š" -#: add-patch.c:1468 +#: add-patch.c:1484 msgid "No other hunks to goto" msgstr "沒有其它å¯ä¾›è·³è½‰çš„å€å¡Š" -#: add-patch.c:1479 git-add--interactive.perl:1577 +#: add-patch.c:1495 git-add--interactive.perl:1594 msgid "go to which hunk (<ret> to see more)? " msgstr "跳轉到哪個å€å¡Šï¼ˆ<Enter> 檢視更多)? " -#: add-patch.c:1480 git-add--interactive.perl:1579 +#: add-patch.c:1496 git-add--interactive.perl:1596 msgid "go to which hunk? " msgstr "跳轉到哪個å€å¡Šï¼Ÿ" -#: add-patch.c:1491 +#: add-patch.c:1507 #, c-format msgid "Invalid number: '%s'" msgstr "無效數å—:'%s'" -#: add-patch.c:1496 +#: add-patch.c:1512 #, c-format msgid "Sorry, only %d hunk available." msgid_plural "Sorry, only %d hunks available." msgstr[0] "å°ä¸èµ·ï¼Œåªæœ‰ %d 個å¯ç”¨å€å¡Šã€‚" -#: add-patch.c:1505 +#: add-patch.c:1521 msgid "No other hunks to search" msgstr "沒有其它å¯ä¾›å°‹æ‰¾çš„å€å¡Š" -#: add-patch.c:1511 git-add--interactive.perl:1623 +#: add-patch.c:1527 git-add--interactive.perl:1640 msgid "search for regex? " msgstr "使用æ£è¦è¡¨ç¤ºå¼æœå°‹ï¼Ÿ" -#: add-patch.c:1526 +#: add-patch.c:1542 #, c-format msgid "Malformed search regexp %s: %s" msgstr "錯誤的æ£è¦è¡¨ç¤ºå¼ %s:%s" -#: add-patch.c:1543 +#: add-patch.c:1559 msgid "No hunk matches the given pattern" msgstr "沒有和æ供模å¼ç›¸ç¬¦åˆçš„å€å¡Š" -#: add-patch.c:1550 +#: add-patch.c:1566 msgid "Sorry, cannot split this hunk" msgstr "å°ä¸èµ·ï¼Œä¸èƒ½åˆ†å‰²é€™å€‹å€å¡Š" -#: add-patch.c:1554 +#: add-patch.c:1570 #, c-format msgid "Split into %d hunks." msgstr "分割為 %d 塊。" -#: add-patch.c:1558 +#: add-patch.c:1574 msgid "Sorry, cannot edit this hunk" msgstr "å°ä¸èµ·ï¼Œä¸èƒ½ç·¨è¼¯é€™å€‹å€å¡Š" -#: add-patch.c:1609 +#: add-patch.c:1625 msgid "'git apply' failed" msgstr "'git apply' 失敗" @@ -1631,7 +1667,7 @@ msgstr "確ä¿è‡³å°‘ç¬¦åˆ <n> 行上下文" #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102 -#: builtin/pack-objects.c:3458 builtin/rebase.c:1332 +#: builtin/pack-objects.c:3530 builtin/rebase.c:1332 msgid "action" msgstr "動作" @@ -1720,7 +1756,7 @@ msgstr "路徑ä¸æ˜¯æœ‰æ•ˆçš„ UTF-8:%s" msgid "path too long (%d chars, SHA1: %s): %s" msgstr "路徑太長(%d å—元,SHA1:%s):%s" -#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235 +#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246 #, c-format msgid "deflate error (%d)" msgstr "壓縮錯誤 (%d)" @@ -1789,8 +1825,8 @@ msgid "prepend prefix to each pathname in the archive" msgstr "為æ¸æª”ä¸æ¯å€‹è·¯å¾‘ååŠ ä¸Šå‰ç¶´" #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866 -#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162 -#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907 +#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208 +#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123 #: parse-options.h:190 @@ -2012,10 +2048,10 @@ msgstr "ä¸èƒ½å°‡ --contents 和最終的æ交物件å共用" msgid "--reverse and --first-parent together require specified latest commit" msgstr "--reverse å’Œ --first-parent 共用,需è¦æŒ‡å®šæœ€æ–°çš„æ交" -#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 +#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235 -#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291 +#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363 #: builtin/shortlog.c:192 msgid "revision walk setup failed" msgstr "版本éæ·è¨å®šå¤±æ•—" @@ -2168,82 +2204,86 @@ msgstr "'%s' 已經檢出到 '%s'" msgid "HEAD of working tree %s is not updated" msgstr "å·¥ä½œå€ %s çš„ HEAD 指å‘沒有被更新" -#: bundle.c:36 +#: bundle.c:47 #, c-format msgid "'%s' does not look like a v2 bundle file" msgstr "'%s' ä¸åƒæ˜¯ä¸€å€‹ v2 版本的包檔案" -#: bundle.c:64 +#: bundle.c:69 +msgid "unknown hash algorithm length" +msgstr "未知的雜湊算法長度" + +#: bundle.c:84 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "無法è˜åˆ¥çš„包é :%s%s (%d)" -#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 +#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034 #: builtin/commit.c:814 #, c-format msgid "could not open '%s'" msgstr "ä¸èƒ½é–‹å•Ÿ '%s'" -#: bundle.c:143 +#: bundle.c:163 msgid "Repository lacks these prerequisite commits:" msgstr "版本庫ä¸ç¼ºå°‘這些必備的æ交:" -#: bundle.c:146 +#: bundle.c:166 msgid "need a repository to verify a bundle" msgstr "需è¦ç‰ˆæœ¬åº«é©—è‰ä¸€å€‹åŒ…" -#: bundle.c:197 +#: bundle.c:217 #, c-format msgid "The bundle contains this ref:" msgid_plural "The bundle contains these %d refs:" msgstr[0] "這個包ä¸å«æœ‰é€™ %d 個引用:" -#: bundle.c:204 +#: bundle.c:224 msgid "The bundle records a complete history." msgstr "這個包記錄一個完整æ·å²ã€‚" -#: bundle.c:206 +#: bundle.c:226 #, c-format msgid "The bundle requires this ref:" msgid_plural "The bundle requires these %d refs:" msgstr[0] "這個包需è¦é€™ %d 個引用:" -#: bundle.c:273 +#: bundle.c:293 msgid "unable to dup bundle descriptor" msgstr "無法複製 bundle æ述符" -#: bundle.c:280 +#: bundle.c:300 msgid "Could not spawn pack-objects" msgstr "ä¸èƒ½ç”Ÿæˆ pack-objects 進程" -#: bundle.c:291 +#: bundle.c:311 msgid "pack-objects died" msgstr "pack-objects 終æ¢" -#: bundle.c:333 +#: bundle.c:353 msgid "rev-list died" msgstr "rev-list 終æ¢" -#: bundle.c:382 +#: bundle.c:402 #, c-format msgid "ref '%s' is excluded by the rev-list options" msgstr "引用 '%s' 被 rev-list é¸é …排除" -#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 +#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306 #, c-format msgid "unrecognized argument: %s" msgstr "無法è˜åˆ¥çš„åƒæ•¸ï¼š%s" -#: bundle.c:469 +#: bundle.c:489 msgid "Refusing to create empty bundle." msgstr "ä¸èƒ½å»ºç«‹ç©ºåŒ…。" -#: bundle.c:479 +#: bundle.c:499 #, c-format msgid "cannot create '%s'" msgstr "ä¸èƒ½å»ºç«‹ '%s'" -#: bundle.c:504 +#: bundle.c:524 msgid "index-pack died" msgstr "index-pack 終æ¢" @@ -2252,266 +2292,259 @@ msgstr "index-pack 終æ¢" msgid "invalid color value: %.*s" msgstr "無效的é¡è‰²å€¼ï¼š%.*s" -#: commit-graph.c:183 +#: commit-graph.c:238 msgid "commit-graph file is too small" msgstr "æ交圖形檔案太å°" -#: commit-graph.c:248 +#: commit-graph.c:303 #, c-format msgid "commit-graph signature %X does not match signature %X" msgstr "æ交圖形簽å %X 和簽å %X ä¸ç¬¦åˆ" -#: commit-graph.c:255 +#: commit-graph.c:310 #, c-format msgid "commit-graph version %X does not match version %X" msgstr "æ交圖形版本 %X 和版本 %X ä¸ç¬¦åˆ" -#: commit-graph.c:262 +#: commit-graph.c:317 #, c-format msgid "commit-graph hash version %X does not match version %X" msgstr "æ交圖形雜湊版本 %X 和版本 %X ä¸ç¬¦åˆ" -#: commit-graph.c:284 +#: commit-graph.c:339 msgid "commit-graph chunk lookup table entry missing; file may be incomplete" msgstr "æ交圖形å€å¡Šå°‹æ‰¾è¡¨æ¢ç›®éºå¤±ï¼Œæª”案å¯èƒ½ä¸å®Œæ•´" -#: commit-graph.c:294 +#: commit-graph.c:349 #, c-format msgid "commit-graph improper chunk offset %08x%08x" msgstr "æ交圖形ä¸æ£ç¢ºçš„å€å¡Šä½ç§» %08x%08x" -#: commit-graph.c:362 +#: commit-graph.c:417 #, c-format msgid "commit-graph chunk id %08x appears multiple times" msgstr "æ交圖形å€å¡Š id %08x 出ç¾äº†å¤šæ¬¡" -#: commit-graph.c:436 +#: commit-graph.c:491 msgid "commit-graph has no base graphs chunk" msgstr "æ交圖形沒有基礎圖形å€å¡Š" -#: commit-graph.c:446 +#: commit-graph.c:501 msgid "commit-graph chain does not match" msgstr "æ交圖形éˆä¸ç¬¦åˆ" -#: commit-graph.c:494 +#: commit-graph.c:549 #, c-format msgid "invalid commit-graph chain: line '%s' not a hash" msgstr "無效的æ交圖形éˆï¼šè¡Œ '%s' ä¸æ˜¯ä¸€å€‹é›œæ¹Šå€¼" -#: commit-graph.c:518 +#: commit-graph.c:573 msgid "unable to find all commit-graph files" msgstr "無法找到所有æ交圖形檔案" -#: commit-graph.c:651 commit-graph.c:711 +#: commit-graph.c:706 commit-graph.c:770 msgid "invalid commit position. commit-graph is likely corrupt" msgstr "無效的æ交ä½ç½®ã€‚æ交圖形å¯èƒ½å·²æ壞" -#: commit-graph.c:672 +#: commit-graph.c:727 #, c-format msgid "could not find commit %s" msgstr "無法找到æ交 %s" -#: commit-graph.c:948 builtin/am.c:1292 +#: commit-graph.c:1009 builtin/am.c:1292 #, c-format msgid "unable to parse commit %s" msgstr "ä¸èƒ½è§£æžæ交 %s" -#: commit-graph.c:1096 +#: commit-graph.c:1157 msgid "Writing changed paths Bloom filters index" msgstr "æ£åœ¨å¯«å…¥è®Šæ›´è·¯å¾‘的布隆éŽæ¿¾å™¨ç´¢å¼•" -#: commit-graph.c:1121 +#: commit-graph.c:1182 msgid "Writing changed paths Bloom filters data" msgstr "æ£åœ¨å¯«å…¥è®Šæ›´è·¯å¾‘的布隆éŽæ¿¾å™¨ç´¢å¼•" -#: commit-graph.c:1160 builtin/pack-objects.c:2783 +#: commit-graph.c:1221 builtin/pack-objects.c:2832 #, c-format msgid "unable to get type of object %s" msgstr "無法ç²å¾—物件 %s é¡žåž‹" -#: commit-graph.c:1196 +#: commit-graph.c:1257 msgid "Loading known commits in commit graph" msgstr "æ£åœ¨è¼‰å…¥æ交圖ä¸çš„已知æ交" -#: commit-graph.c:1213 +#: commit-graph.c:1274 msgid "Expanding reachable commits in commit graph" msgstr "æ£åœ¨æ“´å±•æ交圖ä¸çš„å¯ä»¥å–å¾—æ交" -#: commit-graph.c:1233 +#: commit-graph.c:1294 msgid "Clearing commit marks in commit graph" msgstr "æ£åœ¨æ¸…除æ交圖ä¸çš„æ交標記" -#: commit-graph.c:1252 +#: commit-graph.c:1313 msgid "Computing commit graph generation numbers" msgstr "æ£åœ¨è¨ˆç®—æ交圖世代數å—" -#: commit-graph.c:1300 +#: commit-graph.c:1367 msgid "Computing commit changed paths Bloom filters" msgstr "æ£åœ¨è¨ˆç®—æ交變更路徑的布隆éŽæ¿¾å™¨" -#: commit-graph.c:1359 +#: commit-graph.c:1423 +msgid "Collecting referenced commits" +msgstr "æ£åœ¨æ”¶é›†å¼•ç”¨æ交" + +#: commit-graph.c:1447 #, c-format msgid "Finding commits for commit graph in %d pack" msgid_plural "Finding commits for commit graph in %d packs" msgstr[0] "æ£åœ¨ %d 個包ä¸å°‹æ‰¾æ交圖的æ交" -#: commit-graph.c:1372 +#: commit-graph.c:1460 #, c-format msgid "error adding pack %s" msgstr "新增包 %s 發生錯誤" -#: commit-graph.c:1376 +#: commit-graph.c:1464 #, c-format msgid "error opening index for %s" msgstr "為 %s 開啟索引發生錯誤" -#: commit-graph.c:1405 -#, c-format -msgid "Finding commits for commit graph from %d ref" -msgid_plural "Finding commits for commit graph from %d refs" -msgstr[0] "æ£åœ¨å¾ž %d 個引用ä¸å°‹æ‰¾æ交圖的æ交" - -#: commit-graph.c:1426 -#, c-format -msgid "invalid commit object id: %s" -msgstr "無效的æ交物件 ID:%s" - -#: commit-graph.c:1442 +#: commit-graph.c:1503 msgid "Finding commits for commit graph among packed objects" msgstr "æ£åœ¨æ‰“包物件ä¸å°‹æ‰¾æ交圖的æ交" -#: commit-graph.c:1457 +#: commit-graph.c:1518 msgid "Counting distinct commits in commit graph" msgstr "æ£åœ¨è¨ˆç®—æ交圖ä¸ä¸åŒçš„æ交" -#: commit-graph.c:1489 +#: commit-graph.c:1550 msgid "Finding extra edges in commit graph" msgstr "æ£åœ¨å°‹æ‰¾æ交圖ä¸é¡å¤–çš„é‚Š" -#: commit-graph.c:1538 +#: commit-graph.c:1599 msgid "failed to write correct number of base graph ids" msgstr "無法寫入æ£ç¢ºæ•¸é‡çš„基礎圖形 ID" -#: commit-graph.c:1572 midx.c:812 +#: commit-graph.c:1633 midx.c:812 #, c-format msgid "unable to create leading directories of %s" msgstr "ä¸èƒ½ç‚º %s 建立先導目錄" -#: commit-graph.c:1585 +#: commit-graph.c:1646 msgid "unable to create temporary graph layer" msgstr "無法建立暫時的圖形層" -#: commit-graph.c:1590 +#: commit-graph.c:1651 #, c-format msgid "unable to adjust shared permissions for '%s'" msgstr "無法調整「%sã€çš„共用權é™" -#: commit-graph.c:1667 +#: commit-graph.c:1728 #, c-format msgid "Writing out commit graph in %d pass" msgid_plural "Writing out commit graph in %d passes" msgstr[0] "æ£åœ¨ç”¨ %d æ¥å¯«å‡ºæ交圖" -#: commit-graph.c:1712 +#: commit-graph.c:1773 msgid "unable to open commit-graph chain file" msgstr "無法開啟æ交圖形éˆæª”案" -#: commit-graph.c:1728 +#: commit-graph.c:1789 msgid "failed to rename base commit-graph file" msgstr "無法é‡æ–°å‘½å基礎æ交圖形檔案" -#: commit-graph.c:1748 +#: commit-graph.c:1809 msgid "failed to rename temporary commit-graph file" msgstr "無法é‡æ–°å‘½å暫時æ交圖形檔案" -#: commit-graph.c:1874 +#: commit-graph.c:1935 msgid "Scanning merged commits" msgstr "æ£åœ¨æŽƒæåˆä½µæ交" -#: commit-graph.c:1885 +#: commit-graph.c:1946 #, c-format msgid "unexpected duplicate commit id %s" msgstr "æ„外的é‡è¤‡æ交 ID %s" -#: commit-graph.c:1908 +#: commit-graph.c:1969 msgid "Merging commit-graph" msgstr "æ£åœ¨åˆä½µæ交圖形" -#: commit-graph.c:2096 +#: commit-graph.c:2156 #, c-format msgid "the commit graph format cannot write %d commits" msgstr "æäº¤åœ–æ ¼å¼ä¸èƒ½å¯«å…¥ %d 個æ交" -#: commit-graph.c:2107 +#: commit-graph.c:2167 msgid "too many commits to write graph" msgstr "æ交太多ä¸èƒ½ç•«åœ–" -#: commit-graph.c:2200 +#: commit-graph.c:2260 msgid "the commit-graph file has incorrect checksum and is likely corrupt" msgstr "æ交圖檔案的總和檢查碼錯誤,å¯èƒ½å·²ç¶“æ壞" -#: commit-graph.c:2210 +#: commit-graph.c:2270 #, c-format msgid "commit-graph has incorrect OID order: %s then %s" msgstr "æ交圖形的物件 ID é †åºä¸æ£ç¢ºï¼š%s 然後 %s" -#: commit-graph.c:2220 commit-graph.c:2235 +#: commit-graph.c:2280 commit-graph.c:2295 #, c-format msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u" msgstr "æ交圖形有ä¸æ£ç¢ºçš„扇出值:fanout[%d] = %u != %u" -#: commit-graph.c:2227 +#: commit-graph.c:2287 #, c-format msgid "failed to parse commit %s from commit-graph" msgstr "無法從æ交圖形ä¸è§£æžæ交 %s" -#: commit-graph.c:2245 +#: commit-graph.c:2305 msgid "Verifying commits in commit graph" msgstr "æ£åœ¨é©—è‰æ交圖ä¸çš„æ交" -#: commit-graph.c:2259 +#: commit-graph.c:2320 #, c-format msgid "failed to parse commit %s from object database for commit-graph" msgstr "無法從æ交圖形的物件庫ä¸è§£æžæ交 %s" -#: commit-graph.c:2266 +#: commit-graph.c:2327 #, c-format msgid "root tree OID for commit %s in commit-graph is %s != %s" msgstr "æ交圖形ä¸çš„æ交 %s çš„æ ¹æ¨¹ç‹€ç‰©ä»¶ ID 是 %s != %s" -#: commit-graph.c:2276 +#: commit-graph.c:2337 #, c-format msgid "commit-graph parent list for commit %s is too long" msgstr "æ交 %s çš„æ交圖形父æ交列表太長了" -#: commit-graph.c:2285 +#: commit-graph.c:2346 #, c-format msgid "commit-graph parent for %s is %s != %s" msgstr "%s çš„æ交圖形父æ交是 %s != %s" -#: commit-graph.c:2298 +#: commit-graph.c:2360 #, c-format msgid "commit-graph parent list for commit %s terminates early" msgstr "æ交 %s çš„æ交圖形父æ交列表éŽæ—©çµ‚æ¢" -#: commit-graph.c:2303 +#: commit-graph.c:2365 #, c-format msgid "" "commit-graph has generation number zero for commit %s, but non-zero elsewhere" msgstr "æ交圖形ä¸æ交 %s 的世代號是零,但其它地方éžé›¶" -#: commit-graph.c:2307 +#: commit-graph.c:2369 #, c-format msgid "" "commit-graph has non-zero generation number for commit %s, but zero elsewhere" msgstr "æ交圖形ä¸æ交 %s 的世代號éžé›¶ï¼Œä½†å…¶å®ƒåœ°æ–¹æ˜¯é›¶" -#: commit-graph.c:2322 +#: commit-graph.c:2385 #, c-format msgid "commit-graph generation for commit %s is %u != %u" msgstr "æ交圖形ä¸çš„æ交 %s 的世代號是 %u != %u" -#: commit-graph.c:2328 +#: commit-graph.c:2391 #, c-format msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>" msgstr "æ交圖形ä¸æ交 %s çš„æ交日期是 %<PRIuMAX> != %<PRIuMAX>" @@ -2547,27 +2580,27 @@ msgstr "" "è¨å®š \"git config advice.graftFileDeprecated false\"\n" "å¯é—œé–‰æœ¬æ¶ˆæ¯" -#: commit.c:1168 +#: commit.c:1172 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "æ交 %s 有一個éžå¯ä¿¡çš„è²ç¨±ä¾†è‡ª %s çš„ GPG ç°½å。" -#: commit.c:1172 +#: commit.c:1176 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "æ交 %s 有一個錯誤的è²ç¨±ä¾†è‡ª %s çš„ GPG ç°½å。" -#: commit.c:1175 +#: commit.c:1179 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "æ交 %s 沒有 GPG ç°½å。" -#: commit.c:1178 +#: commit.c:1182 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "æ交 %s 有一個來自 %s 的好的 GPG ç°½å。\n" -#: commit.c:1432 +#: commit.c:1436 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" @@ -2755,7 +2788,7 @@ msgstr "%s çš„å–å€¼æ ¼å¼éŒ¯èª¤ï¼š%s" msgid "must be one of nothing, matching, simple, upstream or current" msgstr "å¿…é ˆæ˜¯å…¶ä¸ä¹‹ä¸€ï¼šnothingã€matchingã€simpleã€upstream 或 current" -#: config.c:1533 builtin/pack-objects.c:3542 +#: config.c:1533 builtin/pack-objects.c:3617 #, c-format msgid "bad pack compression level %d" msgstr "錯誤的打包壓縮級別 %d" @@ -2903,72 +2936,81 @@ msgstr "" msgid "server doesn't support '%s'" msgstr "伺æœå™¨ä¸æ”¯æ´ '%s'" -#: connect.c:103 +#: connect.c:118 #, c-format msgid "server doesn't support feature '%s'" msgstr "伺æœå™¨ä¸æ”¯æ´ç‰¹æ€§ '%s'" -#: connect.c:114 +#: connect.c:129 msgid "expected flush after capabilities" msgstr "在能力之後應為一個 flush 包" -#: connect.c:233 +#: connect.c:263 #, c-format msgid "ignoring capabilities after first line '%s'" msgstr "忽略第一行 '%s' 之後的能力欄ä½" -#: connect.c:252 +#: connect.c:284 msgid "protocol error: unexpected capabilities^{}" msgstr "å”定錯誤:æ„外的 capabilities^{}" -#: connect.c:273 +#: connect.c:306 #, c-format msgid "protocol error: expected shallow sha-1, got '%s'" msgstr "å”定錯誤:é 期淺複製 sha-1,å»å¾—到 '%s'" -#: connect.c:275 +#: connect.c:308 msgid "repository on the other end cannot be shallow" msgstr "å¦ä¸€ç«¯çš„版本庫ä¸èƒ½æ˜¯æ·ºè¤‡è£½ç‰ˆæœ¬åº«" -#: connect.c:313 +#: connect.c:347 msgid "invalid packet" msgstr "無效å°åŒ…" -#: connect.c:333 +#: connect.c:367 #, c-format msgid "protocol error: unexpected '%s'" msgstr "å”定錯誤:æ„外的 '%s'" -#: connect.c:441 +#: connect.c:473 +#, c-format +msgid "unknown object format '%s' specified by server" +msgstr "伺æœå™¨æŒ‡å®šçš„「%sã€ç‰©ä»¶æ ¼å¼ç„¡æ•ˆ" + +#: connect.c:500 #, c-format msgid "invalid ls-refs response: %s" msgstr "無效的 ls-refs 回應:%s" -#: connect.c:445 +#: connect.c:504 msgid "expected flush after ref listing" msgstr "在引用列表之後應該有一個 flush 包" -#: connect.c:544 +#: connect.c:507 +msgid "expected response end packet after ref listing" +msgstr "在引用列表後é 期è¦æœ‰å›žæ‡‰çµæŸå°åŒ…" + +#: connect.c:640 #, c-format msgid "protocol '%s' is not supported" msgstr "ä¸æ”¯æ´ '%s' å”定" -#: connect.c:595 +#: connect.c:691 msgid "unable to set SO_KEEPALIVE on socket" msgstr "無法為 socket è¨å®š SO_KEEPALIVE" -#: connect.c:635 connect.c:698 +#: connect.c:731 connect.c:794 #, c-format msgid "Looking up %s ... " msgstr "尋找 %s ... " -#: connect.c:639 +#: connect.c:735 #, c-format msgid "unable to look up %s (port %s) (%s)" msgstr "無法尋找 %sï¼ˆåŸ %s)(%s)" #. TRANSLATORS: this is the end of "Looking up %s ... " -#: connect.c:643 connect.c:714 +#: connect.c:739 connect.c:810 #, c-format msgid "" "done.\n" @@ -2977,7 +3019,7 @@ msgstr "" "完æˆã€‚\n" "連線到 %sï¼ˆåŸ %s)... " -#: connect.c:665 connect.c:742 +#: connect.c:761 connect.c:838 #, c-format msgid "" "unable to connect to %s:\n" @@ -2987,73 +3029,73 @@ msgstr "" "%s" #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... " -#: connect.c:671 connect.c:748 +#: connect.c:767 connect.c:844 msgid "done." msgstr "完æˆã€‚" -#: connect.c:702 +#: connect.c:798 #, c-format msgid "unable to look up %s (%s)" msgstr "無法尋找 %s(%s)" -#: connect.c:708 +#: connect.c:804 #, c-format msgid "unknown port %s" msgstr "æœªçŸ¥åŸ %s" -#: connect.c:845 connect.c:1175 +#: connect.c:941 connect.c:1271 #, c-format msgid "strange hostname '%s' blocked" msgstr "已阻æ¢å¥‡æ€ªçš„主機å稱 '%s'" -#: connect.c:847 +#: connect.c:943 #, c-format msgid "strange port '%s' blocked" msgstr "已阻æ¢å¥‡æ€ªçš„åŸ è™Ÿ '%s'" -#: connect.c:857 +#: connect.c:953 #, c-format msgid "cannot start proxy %s" msgstr "ä¸èƒ½å•Ÿå‹•ä»£ç† %s" -#: connect.c:928 +#: connect.c:1024 msgid "no path specified; see 'git help pull' for valid url syntax" msgstr "未指定路徑,執行 'git help pull' 檢視有效的 url 語法" -#: connect.c:1123 +#: connect.c:1219 msgid "ssh variant 'simple' does not support -4" msgstr "ssh 變體 'simple' ä¸æ”¯æ´ -4" -#: connect.c:1135 +#: connect.c:1231 msgid "ssh variant 'simple' does not support -6" msgstr "ssh 變體 'simple' ä¸æ”¯æ´ -6" -#: connect.c:1152 +#: connect.c:1248 msgid "ssh variant 'simple' does not support setting port" msgstr "ssh 變體 'simple' ä¸æ”¯æ´è¨å®šåŸ " -#: connect.c:1264 +#: connect.c:1360 #, c-format msgid "strange pathname '%s' blocked" msgstr "已阻æ¢å¥‡æ€ªçš„路徑å '%s'" -#: connect.c:1311 +#: connect.c:1407 msgid "unable to fork" msgstr "無法 fork" -#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45 +#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45 msgid "Checking connectivity" msgstr "æ£åœ¨æª¢æŸ¥é€£é€šæ€§" -#: connected.c:119 +#: connected.c:121 msgid "Could not run 'git rev-list'" msgstr "ä¸èƒ½åŸ·è¡Œ 'git rev-list'" -#: connected.c:139 +#: connected.c:141 msgid "failed write to rev-list" msgstr "寫入 rev-list 失敗" -#: connected.c:146 +#: connected.c:148 msgid "failed to close rev-list's stdin" msgstr "關閉 rev-list 的標準輸入失敗" @@ -3302,18 +3344,18 @@ msgid "" msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫。使用 --no-index 比較工作å€ä¹‹å¤–的兩個路徑" # è¯è€…:請ç¶æŒå‰å°Žç©ºæ ¼ -#: diff.c:155 +#: diff.c:156 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr " ç„¡æ³•è§£æž dirstat 截æ¢ï¼ˆcut-off)百分比 '%s'\n" # è¯è€…:請ç¶æŒå‰å°Žç©ºæ ¼ -#: diff.c:160 +#: diff.c:161 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " 未知的 dirstat åƒæ•¸ '%s'\n" -#: diff.c:296 +#: diff.c:297 msgid "" "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', " "'dimmed-zebra', 'plain'" @@ -3321,7 +3363,7 @@ msgstr "" "移動的é¡è‰²è¨å®šå¿…é ˆæ˜¯ 'no'ã€'default'ã€'blocks'ã€'zebra'ã€'dimmed_zebra' 或 " "'plain'" -#: diff.c:324 +#: diff.c:325 #, c-format msgid "" "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', " @@ -3330,18 +3372,18 @@ msgstr "" "未知的 color-moved-ws æ¨¡å¼ '%s',å¯èƒ½çš„å–值有 'ignore-space-change'ã€'ignore-" "space-at-eol'ã€'ignore-all-space'ã€'allow-indentation-change'" -#: diff.c:332 +#: diff.c:333 msgid "" "color-moved-ws: allow-indentation-change cannot be combined with other " "whitespace modes" msgstr "color-moved-ws:allow-indentation-change ä¸èƒ½èˆ‡å…¶å®ƒç©ºç™½å—元模å¼å…±ç”¨" -#: diff.c:405 +#: diff.c:410 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "è¨å®šè®Šæ•¸ 'diff.submodule' 未知的å–值:'%s'" -#: diff.c:465 +#: diff.c:470 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -3350,35 +3392,35 @@ msgstr "" "發ç¾è¨å®šè®Šæ•¸ 'diff.dirstat' ä¸çš„錯誤:\n" "%s" -#: diff.c:4238 +#: diff.c:4243 #, c-format msgid "external diff died, stopping at %s" msgstr "外部 diff 離開,åœæ¢åœ¨ %s" -#: diff.c:4583 +#: diff.c:4589 msgid "--name-only, --name-status, --check and -s are mutually exclusive" msgstr "--name-onlyã€--name-statusã€--check å’Œ -s 是互斥的" -#: diff.c:4586 +#: diff.c:4592 msgid "-G, -S and --find-object are mutually exclusive" msgstr "-Gã€-S å’Œ --find-object 是互斥的" -#: diff.c:4664 +#: diff.c:4670 msgid "--follow requires exactly one pathspec" msgstr "--follow 明確è¦æ±‚åªè·Ÿä¸€å€‹è·¯å¾‘è¦æ ¼" -#: diff.c:4712 +#: diff.c:4718 #, c-format msgid "invalid --stat value: %s" msgstr "無效的 --stat 值:%s" -#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245 +#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250 #: parse-options.c:197 parse-options.c:201 #, c-format msgid "%s expects a numerical value" msgstr "%s 期望一個數å—值" -#: diff.c:4749 +#: diff.c:4755 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -3387,195 +3429,195 @@ msgstr "" "ç„¡æ³•è§£æž --dirstat/-X é¸é …çš„åƒæ•¸ï¼š\n" "%s" -#: diff.c:4834 +#: diff.c:4840 #, c-format msgid "unknown change class '%c' in --diff-filter=%s" msgstr "--diff-filter=%2$s ä¸æœªçŸ¥çš„變更類 '%1$c'" -#: diff.c:4858 +#: diff.c:4864 #, c-format msgid "unknown value after ws-error-highlight=%.*s" msgstr "ws-error-highlight=%.*s 之後未知的值" -#: diff.c:4872 +#: diff.c:4878 #, c-format msgid "unable to resolve '%s'" msgstr "ä¸èƒ½è§£æž '%s'" -#: diff.c:4922 diff.c:4928 +#: diff.c:4928 diff.c:4934 #, c-format msgid "%s expects <n>/<m> form" msgstr "%s 期望 <n>/<m> æ ¼å¼" -#: diff.c:4940 +#: diff.c:4946 #, c-format msgid "%s expects a character, got '%s'" msgstr "%s 期望一個å—元,得到 '%s'" -#: diff.c:4961 +#: diff.c:4967 #, c-format msgid "bad --color-moved argument: %s" msgstr "壞的 --color-moved åƒæ•¸ï¼š%s" -#: diff.c:4980 +#: diff.c:4986 #, c-format msgid "invalid mode '%s' in --color-moved-ws" msgstr "--color-moved-ws ä¸çš„ç„¡æ•ˆæ¨¡å¼ '%s'" -#: diff.c:5020 +#: diff.c:5026 msgid "" "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and " "\"histogram\"" msgstr "" "diff-algorithm é¸é …有 \"myers\"ã€\"minimal\"ã€\"patience\" å’Œ \"histogram\"" -#: diff.c:5056 diff.c:5076 +#: diff.c:5062 diff.c:5082 #, c-format msgid "invalid argument to %s" msgstr "%s çš„åƒæ•¸ç„¡æ•ˆ" -#: diff.c:5214 +#: diff.c:5219 #, c-format msgid "failed to parse --submodule option parameter: '%s'" msgstr "ç„¡æ³•è§£æž --submodule é¸é …çš„åƒæ•¸ï¼š'%s'" -#: diff.c:5270 +#: diff.c:5275 #, c-format msgid "bad --word-diff argument: %s" msgstr "壞的 --word-diff åƒæ•¸ï¼š%s" -#: diff.c:5293 +#: diff.c:5298 msgid "Diff output format options" msgstr "å·®ç•°è¼¸å‡ºæ ¼å¼åŒ–é¸é …" -#: diff.c:5295 diff.c:5301 +#: diff.c:5300 diff.c:5306 msgid "generate patch" msgstr "生æˆä¿®è£œæª”" -#: diff.c:5298 builtin/log.c:177 +#: diff.c:5303 builtin/log.c:177 msgid "suppress diff output" msgstr "ä¸é¡¯ç¤ºå·®ç•°è¼¸å‡º" -#: diff.c:5303 diff.c:5417 diff.c:5424 +#: diff.c:5308 diff.c:5422 diff.c:5429 msgid "<n>" msgstr "<n>" -#: diff.c:5304 diff.c:5307 +#: diff.c:5309 diff.c:5312 msgid "generate diffs with <n> lines context" msgstr "生æˆå« <n> 行上下文的差異" -#: diff.c:5309 +#: diff.c:5314 msgid "generate the diff in raw format" msgstr "生æˆåŽŸå§‹æ ¼å¼çš„差異" -#: diff.c:5312 +#: diff.c:5317 msgid "synonym for '-p --raw'" msgstr "å’Œ '-p --raw' åŒç¾©" -#: diff.c:5316 +#: diff.c:5321 msgid "synonym for '-p --stat'" msgstr "å’Œ '-p --stat' åŒç¾©" -#: diff.c:5320 +#: diff.c:5325 msgid "machine friendly --stat" msgstr "機器å‹å¥½çš„ --stat" -#: diff.c:5323 +#: diff.c:5328 msgid "output only the last line of --stat" msgstr "åªè¼¸å‡º --stat 的最後一行" -#: diff.c:5325 diff.c:5333 +#: diff.c:5330 diff.c:5338 msgid "<param1,param2>..." msgstr "<åƒæ•¸1,åƒæ•¸2>..." -#: diff.c:5326 +#: diff.c:5331 msgid "" "output the distribution of relative amount of changes for each sub-directory" msgstr "輸出æ¯å€‹å目錄相å°è®Šæ›´çš„分布" -#: diff.c:5330 +#: diff.c:5335 msgid "synonym for --dirstat=cumulative" msgstr "å’Œ --dirstat=cumulative åŒç¾©" -#: diff.c:5334 +#: diff.c:5339 msgid "synonym for --dirstat=files,param1,param2..." msgstr "是 --dirstat=files,param1,param2... çš„åŒç¾©è©ž" -#: diff.c:5338 +#: diff.c:5343 msgid "warn if changes introduce conflict markers or whitespace errors" msgstr "如果變更ä¸å¼•å…¥è¡çªå®šç•Œç¬¦æˆ–空白錯誤,給出è¦å‘Š" -#: diff.c:5341 +#: diff.c:5346 msgid "condensed summary such as creations, renames and mode changes" msgstr "精簡摘è¦ï¼Œä¾‹å¦‚建立ã€é‡æ–°å‘½å和模å¼è®Šæ›´" -#: diff.c:5344 +#: diff.c:5349 msgid "show only names of changed files" msgstr "åªé¡¯ç¤ºè®Šæ›´æª”案的檔案å" -#: diff.c:5347 +#: diff.c:5352 msgid "show only names and status of changed files" msgstr "åªé¡¯ç¤ºè®Šæ›´æª”案的檔案å和狀態" -#: diff.c:5349 +#: diff.c:5354 msgid "<width>[,<name-width>[,<count>]]" msgstr "<寬度>[,<檔案å寬度>[,<次數>]]" -#: diff.c:5350 +#: diff.c:5355 msgid "generate diffstat" msgstr "生æˆå·®ç•°çµ±è¨ˆï¼ˆdiffstat)" -#: diff.c:5352 diff.c:5355 diff.c:5358 +#: diff.c:5357 diff.c:5360 diff.c:5363 msgid "<width>" msgstr "<寬度>" -#: diff.c:5353 +#: diff.c:5358 msgid "generate diffstat with a given width" msgstr "使用æ供的長度生æˆå·®ç•°çµ±è¨ˆ" -#: diff.c:5356 +#: diff.c:5361 msgid "generate diffstat with a given name width" msgstr "使用æ供的檔案å長度生æˆå·®ç•°çµ±è¨ˆ" -#: diff.c:5359 +#: diff.c:5364 msgid "generate diffstat with a given graph width" msgstr "使用æ供的圖形長度生æˆå·®ç•°çµ±è¨ˆ" -#: diff.c:5361 +#: diff.c:5366 msgid "<count>" msgstr "<次數>" -#: diff.c:5362 +#: diff.c:5367 msgid "generate diffstat with limited lines" msgstr "生æˆæœ‰é™è¡Œæ•¸çš„差異統計" -#: diff.c:5365 +#: diff.c:5370 msgid "generate compact summary in diffstat" msgstr "生æˆå·®ç•°çµ±è¨ˆçš„簡潔摘è¦" -#: diff.c:5368 +#: diff.c:5373 msgid "output a binary diff that can be applied" msgstr "輸出一個å¯ä»¥æ‡‰ç”¨çš„二進ä½å·®ç•°" -#: diff.c:5371 +#: diff.c:5376 msgid "show full pre- and post-image object names on the \"index\" lines" msgstr "在 \"index\" 行顯示完整的å‰å¾Œç‰©ä»¶å稱" -#: diff.c:5373 +#: diff.c:5378 msgid "show colored diff" msgstr "顯示帶é¡è‰²çš„差異" -#: diff.c:5374 +#: diff.c:5379 msgid "<kind>" msgstr "<é¡žåž‹>" -#: diff.c:5375 +#: diff.c:5380 msgid "" "highlight whitespace errors in the 'context', 'old' or 'new' lines in the " "diff" msgstr "å°æ–¼å·®ç•°ä¸çš„上下文ã€èˆŠçš„å’Œæ–°çš„è¡Œï¼ŒåŠ äº®é¡¯ç¤ºéŒ¯èª¤çš„ç©ºç™½å—å…ƒ" -#: diff.c:5378 +#: diff.c:5383 msgid "" "do not munge pathnames and use NULs as output field terminators in --raw or " "--numstat" @@ -3583,295 +3625,295 @@ msgstr "" "在 --raw 或者 --numstat ä¸ï¼Œä¸å°è·¯å¾‘å—元轉檔並使用 NUL å—å…ƒåšç‚ºè¼¸å‡ºæ¬„ä½çš„分隔" "符" -#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493 +#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498 msgid "<prefix>" msgstr "<å‰ç¶´>" -#: diff.c:5382 +#: diff.c:5387 msgid "show the given source prefix instead of \"a/\"" msgstr "顯示æ供的æºå‰ç¶´å–代 \"a/\"" -#: diff.c:5385 +#: diff.c:5390 msgid "show the given destination prefix instead of \"b/\"" msgstr "顯示æ供的目標å‰ç¶´å–代 \"b/\"" -#: diff.c:5388 +#: diff.c:5393 msgid "prepend an additional prefix to every line of output" msgstr "輸出的æ¯ä¸€è¡Œé™„åŠ å‰ç¶´" -#: diff.c:5391 +#: diff.c:5396 msgid "do not show any source or destination prefix" msgstr "ä¸é¡¯ç¤ºä»»ä½•æºå’Œç›®æ¨™å‰ç¶´" -#: diff.c:5394 +#: diff.c:5399 msgid "show context between diff hunks up to the specified number of lines" msgstr "顯示指定行數的差異å€å¡Šé–“的上下文" -#: diff.c:5398 diff.c:5403 diff.c:5408 +#: diff.c:5403 diff.c:5408 diff.c:5413 msgid "<char>" msgstr "<å—å…ƒ>" -#: diff.c:5399 +#: diff.c:5404 msgid "specify the character to indicate a new line instead of '+'" msgstr "指定一個å—å…ƒå–代 '+' 來表示新的一行" -#: diff.c:5404 +#: diff.c:5409 msgid "specify the character to indicate an old line instead of '-'" msgstr "指定一個å—å…ƒå–代 '-' 來表示舊的一行" -#: diff.c:5409 +#: diff.c:5414 msgid "specify the character to indicate a context instead of ' '" msgstr "指定一個å—å…ƒå–代 ' ' 來表示一行上下文" -#: diff.c:5412 +#: diff.c:5417 msgid "Diff rename options" msgstr "差異é‡æ–°å‘½åé¸é …" -#: diff.c:5413 +#: diff.c:5418 msgid "<n>[/<m>]" msgstr "<n>[/<m>]" -#: diff.c:5414 +#: diff.c:5419 msgid "break complete rewrite changes into pairs of delete and create" msgstr "將完全é‡å¯«çš„è®Šæ›´æ‰“ç ´ç‚ºæˆå°çš„刪除和建立" -#: diff.c:5418 +#: diff.c:5423 msgid "detect renames" msgstr "檢測é‡æ–°å‘½å" -#: diff.c:5422 +#: diff.c:5427 msgid "omit the preimage for deletes" -msgstr "çœç•¥åˆªé™¤å‹•ä½œçš„差異輸出" +msgstr "çœç•¥åˆªé™¤è®Šæ›´çš„差異輸出" -#: diff.c:5425 +#: diff.c:5430 msgid "detect copies" msgstr "檢測複製" -#: diff.c:5429 +#: diff.c:5434 msgid "use unmodified files as source to find copies" msgstr "使用未修改的檔案åšç‚ºç™¼ç¾è¤‡è£½çš„æº" -#: diff.c:5431 +#: diff.c:5436 msgid "disable rename detection" msgstr "åœç”¨é‡æ–°å‘½ååµæ¸¬" -#: diff.c:5434 +#: diff.c:5439 msgid "use empty blobs as rename source" msgstr "使用空的資料物件åšç‚ºé‡æ–°å‘½åçš„æº" -#: diff.c:5436 +#: diff.c:5441 msgid "continue listing the history of a file beyond renames" msgstr "繼續列出檔案é‡æ–°å‘½å以外的æ·å²è¨˜éŒ„" -#: diff.c:5439 +#: diff.c:5444 msgid "" "prevent rename/copy detection if the number of rename/copy targets exceeds " "given limit" msgstr "如果é‡æ–°å‘½å/複製目標超éŽæ供的é™åˆ¶ï¼Œç¦æ¢é‡æ–°å‘½å/複製檢測" -#: diff.c:5441 +#: diff.c:5446 msgid "Diff algorithm options" msgstr "差異演算法é¸é …" -#: diff.c:5443 +#: diff.c:5448 msgid "produce the smallest possible diff" msgstr "生æˆå„˜å¯èƒ½å°çš„差異" -#: diff.c:5446 +#: diff.c:5451 msgid "ignore whitespace when comparing lines" msgstr "行比較時忽略空白å—å…ƒ" -#: diff.c:5449 +#: diff.c:5454 msgid "ignore changes in amount of whitespace" msgstr "忽略空白å—元的變更" -#: diff.c:5452 +#: diff.c:5457 msgid "ignore changes in whitespace at EOL" msgstr "忽略行尾的空白å—元變更" -#: diff.c:5455 +#: diff.c:5460 msgid "ignore carrier-return at the end of line" msgstr "忽略行尾的Enter符(CR)" -#: diff.c:5458 +#: diff.c:5463 msgid "ignore changes whose lines are all blank" msgstr "忽略整行都是空白的變更" -#: diff.c:5461 +#: diff.c:5466 msgid "heuristic to shift diff hunk boundaries for easy reading" msgstr "啟發å¼è½‰æ›å·®ç•°é‚Šç•Œä»¥ä¾¿é–±è®€" -#: diff.c:5464 +#: diff.c:5469 msgid "generate diff using the \"patience diff\" algorithm" msgstr "使用 \"patience diff\" 演算法生æˆå·®ç•°" -#: diff.c:5468 +#: diff.c:5473 msgid "generate diff using the \"histogram diff\" algorithm" msgstr "使用 \"histogram diff\" 演算法生æˆå·®ç•°" -#: diff.c:5470 +#: diff.c:5475 msgid "<algorithm>" msgstr "<演算法>" -#: diff.c:5471 +#: diff.c:5476 msgid "choose a diff algorithm" msgstr "é¸æ“‡ä¸€å€‹å·®ç•°æ¼”算法" -#: diff.c:5473 +#: diff.c:5478 msgid "<text>" msgstr "<æ–‡å—>" -#: diff.c:5474 +#: diff.c:5479 msgid "generate diff using the \"anchored diff\" algorithm" msgstr "使用 \"anchored diff\" 演算法生æˆå·®ç•°" -#: diff.c:5476 diff.c:5485 diff.c:5488 +#: diff.c:5481 diff.c:5490 diff.c:5493 msgid "<mode>" msgstr "<模å¼>" -#: diff.c:5477 +#: diff.c:5482 msgid "show word diff, using <mode> to delimit changed words" msgstr "顯示單詞差異,使用 <模å¼> 分隔變更的單詞" -#: diff.c:5479 diff.c:5482 diff.c:5527 +#: diff.c:5484 diff.c:5487 diff.c:5532 msgid "<regex>" msgstr "<æ£å‰‡>" -#: diff.c:5480 +#: diff.c:5485 msgid "use <regex> to decide what a word is" msgstr "使用 <æ£è¦è¡¨ç¤ºå¼> 確定何為一個詞" -#: diff.c:5483 +#: diff.c:5488 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>" msgstr "相當於 --word-diff=color --word-diff-regex=<æ£å‰‡>" -#: diff.c:5486 +#: diff.c:5491 msgid "moved lines of code are colored differently" msgstr "移動的程å¼ç¢¼è¡Œç”¨ä¸åŒæ–¹å¼è‘—色" -#: diff.c:5489 +#: diff.c:5494 msgid "how white spaces are ignored in --color-moved" msgstr "在 --color-moved 下如何忽略空白å—å…ƒ" -#: diff.c:5492 +#: diff.c:5497 msgid "Other diff options" msgstr "其它差異é¸é …" -#: diff.c:5494 +#: diff.c:5499 msgid "when run from subdir, exclude changes outside and show relative paths" msgstr "當從å目錄執行,排除目錄之外的變更並顯示相å°è·¯å¾‘" -#: diff.c:5498 +#: diff.c:5503 msgid "treat all files as text" msgstr "把所有檔案當åšæ–‡å—處ç†" -#: diff.c:5500 +#: diff.c:5505 msgid "swap two inputs, reverse the diff" msgstr "交æ›å…©å€‹è¼¸å…¥ï¼Œå轉差異" -#: diff.c:5502 +#: diff.c:5507 msgid "exit with 1 if there were differences, 0 otherwise" msgstr "有差異時離開碼為 1,å¦å‰‡ç‚º 0" -#: diff.c:5504 +#: diff.c:5509 msgid "disable all output of the program" msgstr "åœç”¨æœ¬ç¨‹å¼çš„所有輸出" -#: diff.c:5506 +#: diff.c:5511 msgid "allow an external diff helper to be executed" msgstr "å…許執行一個外部的差異助手" -#: diff.c:5508 +#: diff.c:5513 msgid "run external text conversion filters when comparing binary files" msgstr "當比較二進ä½æª”案時,執行外部的文å—轉æ›éŽæ¿¾å™¨" -#: diff.c:5510 +#: diff.c:5515 msgid "<when>" msgstr "<何時>" -#: diff.c:5511 +#: diff.c:5516 msgid "ignore changes to submodules in the diff generation" msgstr "在生æˆå·®ç•°æ™‚,忽略å模組的更改" -#: diff.c:5514 +#: diff.c:5519 msgid "<format>" msgstr "<æ ¼å¼>" -#: diff.c:5515 +#: diff.c:5520 msgid "specify how differences in submodules are shown" msgstr "指定å模組的差異如何顯示" -#: diff.c:5519 +#: diff.c:5524 msgid "hide 'git add -N' entries from the index" msgstr "éš±è—ç´¢å¼•ä¸ 'git add -N' æ¢ç›®" -#: diff.c:5522 +#: diff.c:5527 msgid "treat 'git add -N' entries as real in the index" msgstr "å°‡ç´¢å¼•ä¸ 'git add -N' æ¢ç›®ç•¶åšçœŸå¯¦çš„" -#: diff.c:5524 +#: diff.c:5529 msgid "<string>" msgstr "<å—串>" -#: diff.c:5525 +#: diff.c:5530 msgid "" "look for differences that change the number of occurrences of the specified " "string" msgstr "尋找改變了指定å—串出ç¾æ¬¡æ•¸çš„差異" -#: diff.c:5528 +#: diff.c:5533 msgid "" "look for differences that change the number of occurrences of the specified " "regex" msgstr "尋找改變指定æ£å‰‡ç¬¦åˆå‡ºç¾æ¬¡æ•¸çš„差異" -#: diff.c:5531 +#: diff.c:5536 msgid "show all changes in the changeset with -S or -G" msgstr "顯示使用 -S 或 -G 的變更集的所有變更" -#: diff.c:5534 +#: diff.c:5539 msgid "treat <string> in -S as extended POSIX regular expression" msgstr "å°‡ -S çš„ <string> 當åšæ“´å±•çš„ POSIX æ£è¦è¡¨ç¤ºå¼" -#: diff.c:5537 +#: diff.c:5542 msgid "control the order in which files appear in the output" msgstr "控制輸出ä¸çš„æª”æ¡ˆé¡¯ç¤ºé †åº" -#: diff.c:5538 +#: diff.c:5543 msgid "<object-id>" msgstr "<物件 ID>" -#: diff.c:5539 +#: diff.c:5544 msgid "" "look for differences that change the number of occurrences of the specified " "object" msgstr "尋找改變指定物件出ç¾æ¬¡æ•¸çš„差異" -#: diff.c:5541 +#: diff.c:5546 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]" msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]" -#: diff.c:5542 +#: diff.c:5547 msgid "select files by diff type" msgstr "é€éŽå·®ç•°é¡žåž‹é¸æ“‡æª”案" -#: diff.c:5544 +#: diff.c:5549 msgid "<file>" msgstr "<檔案>" -#: diff.c:5545 +#: diff.c:5550 msgid "Output to a specific file" msgstr "輸出到一個指定的檔案" -#: diff.c:6200 +#: diff.c:6205 msgid "inexact rename detection was skipped due to too many files." msgstr "å› ç‚ºæª”æ¡ˆå¤ªå¤šï¼Œç•¥éŽä¸åš´æ ¼çš„é‡æ–°å‘½å檢查。" -#: diff.c:6203 +#: diff.c:6208 msgid "only found copies from modified paths due to too many files." msgstr "å› ç‚ºæª”æ¡ˆå¤ªå¤šï¼Œåªåœ¨ä¿®æ”¹çš„路徑ä¸å°‹æ‰¾è¤‡è£½ã€‚" -#: diff.c:6206 +#: diff.c:6211 #, c-format msgid "" "you may want to set your %s variable to at least %d and retry the command." @@ -3886,59 +3928,59 @@ msgstr "讀å–排åºæª”案 '%s' 失敗" msgid "Performing inexact rename detection" msgstr "æ£åœ¨é€²è¡Œéžç²¾ç¢ºçš„é‡æ–°å‘½ååµæ¸¬" -#: dir.c:555 +#: dir.c:573 #, c-format msgid "pathspec '%s' did not match any file(s) known to git" msgstr "路徑è¦æ ¼ '%s' 未符åˆä»»ä½• git 已知檔案" -#: dir.c:695 dir.c:724 dir.c:737 +#: dir.c:713 dir.c:742 dir.c:755 #, c-format msgid "unrecognized pattern: '%s'" msgstr "無法è˜åˆ¥æ¨£å¼ï¼šã€Œ%sã€" -#: dir.c:754 dir.c:768 +#: dir.c:772 dir.c:786 #, c-format msgid "unrecognized negative pattern: '%s'" msgstr "無法è˜åˆ¥åå‘模å¼ï¼šã€Œ%sã€" -#: dir.c:786 +#: dir.c:804 #, c-format msgid "your sparse-checkout file may have issues: pattern '%s' is repeated" msgstr "您的稀ç–檢出檔案å¯èƒ½æœ‰å•é¡Œï¼šã€Œ%sã€æ¨£å¼é‡è¤‡" -#: dir.c:796 +#: dir.c:814 msgid "disabling cone pattern matching" msgstr "åœç”¨ cone 樣å¼ç¬¦åˆæ¨¡å¼" -#: dir.c:1173 +#: dir.c:1191 #, c-format msgid "cannot use %s as an exclude file" msgstr "ä¸èƒ½å°‡ %s 用作排除檔案" -#: dir.c:2275 +#: dir.c:2296 #, c-format msgid "could not open directory '%s'" msgstr "ä¸èƒ½é–‹å•Ÿç›®éŒ„ '%s'" -#: dir.c:2575 +#: dir.c:2596 msgid "failed to get kernel name and information" msgstr "無法ç²å¾—æ ¸å¿ƒå稱和訊æ¯" -#: dir.c:2699 +#: dir.c:2720 msgid "untracked cache is disabled on this system or location" msgstr "å¿«å–未追蹤檔案在本系統或ä½ç½®ä¸è¢«åœç”¨" -#: dir.c:3481 +#: dir.c:3502 #, c-format msgid "index file corrupt in repo %s" msgstr "版本庫 %s ä¸çš„索引檔案æ壞" -#: dir.c:3526 dir.c:3531 +#: dir.c:3547 dir.c:3552 #, c-format msgid "could not create directories for %s" msgstr "ä¸èƒ½ç‚º %s 建立目錄" -#: dir.c:3560 +#: dir.c:3581 #, c-format msgid "could not migrate git directory from '%s' to '%s'" msgstr "ä¸èƒ½å¾ž '%s' é·ç§» git 目錄到 '%s'" @@ -3948,11 +3990,11 @@ msgstr "ä¸èƒ½å¾ž '%s' é·ç§» git 目錄到 '%s'" msgid "hint: Waiting for your editor to close the file...%c" msgstr "æ示:ç‰å¾…您的編輯器關閉檔案...%c" -#: entry.c:178 +#: entry.c:177 msgid "Filtering content" msgstr "éŽæ¿¾å…§å®¹" -#: entry.c:479 +#: entry.c:478 #, c-format msgid "could not stat file '%s'" msgstr "ä¸èƒ½å°æª”案 '%s' å‘¼å« stat" @@ -3972,227 +4014,245 @@ msgstr "ä¸èƒ½è¨å®š GIT_DIR 為 '%s'" msgid "too many args to run %s" msgstr "執行 %s çš„åƒæ•¸å¤ªå¤š" -#: fetch-pack.c:151 +#: fetch-pack.c:152 msgid "git fetch-pack: expected shallow list" msgstr "git fetch-pack:應為 shallow 列表" -#: fetch-pack.c:154 +#: fetch-pack.c:155 msgid "git fetch-pack: expected a flush packet after shallow list" msgstr "git fetch-pack:在淺複製列表之後期望一個 flush 包" -#: fetch-pack.c:165 +#: fetch-pack.c:166 msgid "git fetch-pack: expected ACK/NAK, got a flush packet" msgstr "git fetch-pack:期望 ACK/NAK,å»å¾—到 flush 包" -#: fetch-pack.c:185 +#: fetch-pack.c:186 #, c-format msgid "git fetch-pack: expected ACK/NAK, got '%s'" msgstr "git fetch-pack:應為 ACK/NAK,å»å¾—到 '%s'" -#: fetch-pack.c:196 +#: fetch-pack.c:197 msgid "unable to write to remote" msgstr "無法寫到é 端" -#: fetch-pack.c:258 +#: fetch-pack.c:259 msgid "--stateless-rpc requires multi_ack_detailed" msgstr "--stateless-rpc éœ€è¦ multi_ack_detailed" -#: fetch-pack.c:357 fetch-pack.c:1364 +#: fetch-pack.c:358 fetch-pack.c:1408 #, c-format msgid "invalid shallow line: %s" msgstr "無效的 shallow 訊æ¯ï¼š%s" -#: fetch-pack.c:363 fetch-pack.c:1370 +#: fetch-pack.c:364 fetch-pack.c:1414 #, c-format msgid "invalid unshallow line: %s" msgstr "無效的 unshallow 訊æ¯ï¼š%s" -#: fetch-pack.c:365 fetch-pack.c:1372 +#: fetch-pack.c:366 fetch-pack.c:1416 #, c-format msgid "object not found: %s" msgstr "物件未找到:%s" -#: fetch-pack.c:368 fetch-pack.c:1375 +#: fetch-pack.c:369 fetch-pack.c:1419 #, c-format msgid "error in object: %s" msgstr "物件ä¸ç™¼ç”ŸéŒ¯èª¤ï¼š%s" -#: fetch-pack.c:370 fetch-pack.c:1377 +#: fetch-pack.c:371 fetch-pack.c:1421 #, c-format msgid "no shallow found: %s" msgstr "æœªç™¼ç¾ shallow:%s" -#: fetch-pack.c:373 fetch-pack.c:1381 +#: fetch-pack.c:374 fetch-pack.c:1425 #, c-format msgid "expected shallow/unshallow, got %s" msgstr "應為 shallow/unshallow,å»å¾—到 %s" -#: fetch-pack.c:415 +#: fetch-pack.c:416 #, c-format msgid "got %s %d %s" msgstr "得到 %s %d %s" -#: fetch-pack.c:432 +#: fetch-pack.c:433 #, c-format msgid "invalid commit %s" msgstr "無效æ交 %s" -#: fetch-pack.c:463 +#: fetch-pack.c:464 msgid "giving up" msgstr "放棄" -#: fetch-pack.c:476 progress.c:336 +#: fetch-pack.c:477 progress.c:336 msgid "done" msgstr "完æˆ" -#: fetch-pack.c:488 +#: fetch-pack.c:489 #, c-format msgid "got %s (%d) %s" msgstr "得到 %s (%d) %s" -#: fetch-pack.c:534 +#: fetch-pack.c:535 #, c-format msgid "Marking %s as complete" msgstr "標記 %s 為完æˆ" -#: fetch-pack.c:755 +#: fetch-pack.c:756 #, c-format msgid "already have %s (%s)" msgstr "已經有 %s(%s)" -#: fetch-pack.c:819 +#: fetch-pack.c:821 msgid "fetch-pack: unable to fork off sideband demultiplexer" msgstr "fetch-pack:無法è¡ç”Ÿ sideband 多路輸出" -#: fetch-pack.c:827 +#: fetch-pack.c:829 msgid "protocol error: bad pack header" msgstr "å”定錯誤:壞的包é " -#: fetch-pack.c:901 +#: fetch-pack.c:910 #, c-format msgid "fetch-pack: unable to fork off %s" msgstr "fetch-pack:無法è¡ç”Ÿé€²ç¨‹ %s" -#: fetch-pack.c:917 +#: fetch-pack.c:927 #, c-format msgid "%s failed" msgstr "%s 失敗" -#: fetch-pack.c:919 +#: fetch-pack.c:929 msgid "error in sideband demultiplexer" msgstr "sideband 多路輸出發生錯誤" -#: fetch-pack.c:966 +#: fetch-pack.c:976 #, c-format msgid "Server version is %.*s" msgstr "伺æœå™¨ç‰ˆæœ¬ %.*s" -#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986 -#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002 -#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018 -#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040 +#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996 +#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012 +#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028 +#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050 #, c-format msgid "Server supports %s" msgstr "伺æœå™¨æ”¯æ´ %s" -#: fetch-pack.c:973 +#: fetch-pack.c:983 msgid "Server does not support shallow clients" msgstr "伺æœå™¨ä¸æ”¯æ´ shalllow 用戶端" -#: fetch-pack.c:1033 +#: fetch-pack.c:1043 msgid "Server does not support --shallow-since" msgstr "伺æœå™¨ä¸æ”¯æ´ --shallow-since" -#: fetch-pack.c:1038 +#: fetch-pack.c:1048 msgid "Server does not support --shallow-exclude" msgstr "伺æœå™¨ä¸æ”¯æ´ --shallow-exclude" -#: fetch-pack.c:1042 +#: fetch-pack.c:1052 msgid "Server does not support --deepen" msgstr "伺æœå™¨ä¸æ”¯æ´ --deepen" -#: fetch-pack.c:1059 +#: fetch-pack.c:1054 +msgid "Server does not support this repository's object format" +msgstr "伺æœå™¨ä¸æ”¯æ´æ¤ç‰ˆæœ¬åº«çš„ç‰©ä»¶æ ¼å¼" + +#: fetch-pack.c:1071 msgid "no common commits" msgstr "沒有共åŒçš„æ交" -#: fetch-pack.c:1071 fetch-pack.c:1563 +#: fetch-pack.c:1083 fetch-pack.c:1639 msgid "git fetch-pack: fetch failed." msgstr "git fetch-pack:å–得失敗。" #: fetch-pack.c:1211 +#, c-format +msgid "mismatched algorithms: client %s; server %s" +msgstr "算法ä¸ä¸€è‡´ï¼šç”¨æˆ¶ç«¯ %s;伺æœå™¨ %s" + +#: fetch-pack.c:1215 +#, c-format +msgid "the server does not support algorithm '%s'" +msgstr "伺æœå™¨ä¸æ”¯æ´ã€Œ%sã€ç®—法" + +#: fetch-pack.c:1235 msgid "Server does not support shallow requests" msgstr "伺æœå™¨ä¸æ”¯æ´ shalllow 請求" -#: fetch-pack.c:1218 +#: fetch-pack.c:1242 msgid "Server supports filter" msgstr "伺æœå™¨æ”¯æ´ filter" -#: fetch-pack.c:1242 +#: fetch-pack.c:1286 msgid "unable to write request to remote" msgstr "無法將請求寫到é 端" -#: fetch-pack.c:1260 +#: fetch-pack.c:1304 #, c-format msgid "error reading section header '%s'" msgstr "讀å–節標題 '%s' 發生錯誤" -#: fetch-pack.c:1266 +#: fetch-pack.c:1310 #, c-format msgid "expected '%s', received '%s'" msgstr "é 期 '%s',得到 '%s'" -#: fetch-pack.c:1327 +#: fetch-pack.c:1371 #, c-format msgid "unexpected acknowledgment line: '%s'" msgstr "æ„外的確èªè¡Œï¼š'%s'" -#: fetch-pack.c:1332 +#: fetch-pack.c:1376 #, c-format msgid "error processing acks: %d" msgstr "è™•ç† ack 發生錯誤:%d" -#: fetch-pack.c:1342 +#: fetch-pack.c:1386 msgid "expected packfile to be sent after 'ready'" msgstr "é 期在 'ready' ä¹‹å¾Œå‚³é€ packfile" -#: fetch-pack.c:1344 +#: fetch-pack.c:1388 msgid "expected no other sections to be sent after no 'ready'" msgstr "在沒有 'ready' ä¸æ‡‰è©²å‚³é€å…¶å®ƒå°ç¯€" -#: fetch-pack.c:1386 +#: fetch-pack.c:1430 #, c-format msgid "error processing shallow info: %d" msgstr "處ç†æ·ºè¤‡è£½è¨Šæ¯ç™¼ç”ŸéŒ¯èª¤ï¼š%d" -#: fetch-pack.c:1433 +#: fetch-pack.c:1477 #, c-format msgid "expected wanted-ref, got '%s'" msgstr "é 期 wanted-ref,得到 '%s'" -#: fetch-pack.c:1438 +#: fetch-pack.c:1482 #, c-format msgid "unexpected wanted-ref: '%s'" msgstr "æ„外的 wanted-ref:'%s'" -#: fetch-pack.c:1443 +#: fetch-pack.c:1487 #, c-format msgid "error processing wanted refs: %d" msgstr "處ç†è¦å–得的引用發生錯誤:%d" -#: fetch-pack.c:1789 +#: fetch-pack.c:1517 +msgid "git fetch-pack: expected response end packet" +msgstr "git fetch-pack: é 期è¦æœ‰å›žæ‡‰çµæŸå°åŒ…" + +#: fetch-pack.c:1921 msgid "no matching remote head" msgstr "沒有符åˆçš„é 端分支" -#: fetch-pack.c:1812 builtin/clone.c:692 +#: fetch-pack.c:1944 builtin/clone.c:692 msgid "remote did not send all necessary objects" msgstr "é 端沒有傳é€æ‰€æœ‰å¿…需的物件" -#: fetch-pack.c:1839 +#: fetch-pack.c:1971 #, c-format msgid "no such remote ref %s" msgstr "沒有這樣的é 端引用 %s" -#: fetch-pack.c:1842 +#: fetch-pack.c:1974 #, c-format msgid "Server does not allow request for unadvertised object %s" msgstr "伺æœå™¨ä¸å…許請求未公開的物件 %s" @@ -4228,7 +4288,7 @@ msgstr "" msgid "'%s': unable to read %s" msgstr "'%s'ï¼šç„¡æ³•è®€å– %s" -#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82 +#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89 #: builtin/rm.c:135 #, c-format msgid "failed to stat '%s'" @@ -4369,16 +4429,16 @@ msgstr[0] "" "\n" "最類似的指令有" -#: help.c:653 +#: help.c:654 msgid "git version [<options>]" msgstr "git version [<é¸é …>]" -#: help.c:708 +#: help.c:709 #, c-format msgid "%s: %s - %s" msgstr "%s:%s - %s" -#: help.c:712 +#: help.c:713 msgid "" "\n" "Did you mean this?" @@ -4473,6 +4533,10 @@ msgstr "期望在組åˆå¾Œæœ‰ä¸€äº›æ±è¥¿ï¼š" msgid "multiple filter-specs cannot be combined" msgstr "ä¸èƒ½æ··ç”¨å¤šç¨®éŽæ¿¾è¦æ ¼" +#: list-objects-filter-options.c:330 +msgid "unable to upgrade repository format to support partial clone" +msgstr "無法å‡ç´šç‰ˆæœ¬åº«æ ¼å¼ï¼Œä»¥è‡´ä¸æ”¯æ´éƒ¨åˆ†è¤‡è£½" + #: list-objects-filter.c:492 #, c-format msgid "unable to access sparse blob in '%s'" @@ -4827,7 +4891,7 @@ msgstr "新增/新增" msgid "Skipped %s (merged same as existing)" msgstr "ç•¥éŽ %s(已經åšéŽç›¸åŒåˆä½µï¼‰" -#: merge-recursive.c:3101 git-submodule.sh:985 +#: merge-recursive.c:3101 git-submodule.sh:959 msgid "submodule" msgstr "å模組" @@ -4950,7 +5014,7 @@ msgid "failed to read the cache" msgstr "讀å–å¿«å–失敗" #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912 -#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816 +#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816 #: builtin/stash.c:265 msgid "unable to write new index file" msgstr "無法寫新的索引檔案" @@ -5195,21 +5259,21 @@ msgstr "ä¸èƒ½è§£æžç‰©ä»¶ï¼š%s" msgid "hash mismatch %s" msgstr "雜湊值與 %s ä¸ç¬¦åˆ" -#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135 +#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184 #, c-format msgid "unable to get size of %s" msgstr "ä¸èƒ½å¾—到 %s 的大å°" -#: packfile.c:629 +#: packfile.c:630 msgid "offset before end of packfile (broken .idx?)" msgstr "ä½ç§»é‡åœ¨ packfile çµæŸä¹‹å‰ï¼ˆæ壞的 .idx?)" -#: packfile.c:1899 +#: packfile.c:1900 #, c-format msgid "offset before start of pack index for %s (corrupt index?)" msgstr "ä½ç§»é‡åœ¨ %s 的包索引開始之å‰ï¼ˆæ壞的索引?)" -#: packfile.c:1903 +#: packfile.c:1904 #, c-format msgid "offset beyond end of pack index for %s (truncated index?)" msgstr "ä½ç§»é‡è¶ŠéŽäº† %s 的包索引的çµå°¾ï¼ˆè¢«æˆªæ–·çš„索引?)" @@ -5411,44 +5475,48 @@ msgid "unable to write delim packet" msgstr "無法寫 delim 包" #: pkt-line.c:106 +msgid "unable to write stateless separator packet" +msgstr "無法寫入無狀態的分隔符號å°åŒ…" + +#: pkt-line.c:113 msgid "flush packet write failed" msgstr "flush 包寫錯誤" -#: pkt-line.c:146 pkt-line.c:232 +#: pkt-line.c:153 pkt-line.c:239 msgid "protocol error: impossibly long line" msgstr "å”定錯誤:ä¸å¯èƒ½çš„é•·è¡Œ" -#: pkt-line.c:162 pkt-line.c:164 +#: pkt-line.c:169 pkt-line.c:171 msgid "packet write with format failed" msgstr "æ ¼å¼åŒ–包寫入錯誤" -#: pkt-line.c:196 +#: pkt-line.c:203 msgid "packet write failed - data exceeds max packet size" msgstr "寫å°åŒ…失敗:資料超éŽäº†åŒ…的最大長度" -#: pkt-line.c:203 pkt-line.c:210 +#: pkt-line.c:210 pkt-line.c:217 msgid "packet write failed" msgstr "å°åŒ…寫入失敗" -#: pkt-line.c:295 +#: pkt-line.c:302 msgid "read error" msgstr "讀å–錯誤" -#: pkt-line.c:303 +#: pkt-line.c:310 msgid "the remote end hung up unexpectedly" msgstr "é 端æ„外掛斷了" -#: pkt-line.c:331 +#: pkt-line.c:338 #, c-format msgid "protocol error: bad line length character: %.4s" msgstr "å”定錯誤:錯誤的行長度å—串:%.4s" -#: pkt-line.c:341 pkt-line.c:346 +#: pkt-line.c:352 pkt-line.c:357 #, c-format msgid "protocol error: bad line length %d" msgstr "å”定錯誤:錯誤的行長度 %d" -#: pkt-line.c:362 +#: pkt-line.c:373 #, c-format msgid "remote error: %s" msgstr "é 端錯誤:%s" @@ -5625,7 +5693,7 @@ msgstr "'%s' 的未排åºæš«å˜æ¢ç›®" #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181 -#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961 +#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290 #: builtin/submodule--helper.c:332 @@ -5682,7 +5750,7 @@ msgstr "無法é‡æ–°æ•´ç†å…±äº«ç´¢å¼• '%s'" msgid "broken index, expect %s in %s, got %s" msgstr "æ壞的索引,期望在 %2$s ä¸çš„ %1$s,得到 %3$s" -#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130 +#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130 #, c-format msgid "could not close '%s'" msgstr "ä¸èƒ½é—œé–‰ '%s'" @@ -5857,7 +5925,7 @@ msgstr "" msgid "could not read '%s'." msgstr "ä¸èƒ½è®€å– '%s'。" -#: ref-filter.c:42 wt-status.c:1936 +#: ref-filter.c:42 wt-status.c:1977 msgid "gone" msgstr "éºå¤±" @@ -6081,7 +6149,7 @@ msgstr "æ ¼å¼éŒ¯èª¤çš„物件 '%s'" msgid "ignoring ref with broken name %s" msgstr "忽略帶有錯誤å稱 %s 的引用" -#: ref-filter.c:2095 refs.c:625 +#: ref-filter.c:2095 refs.c:657 #, c-format msgid "ignoring broken ref %s" msgstr "忽略æ壞的引用 %s" @@ -6111,94 +6179,108 @@ msgstr "æ ¼å¼éŒ¯èª¤çš„物件å %s" msgid "option `%s' must point to a commit" msgstr "é¸é … `%s' å¿…é ˆæŒ‡å‘一個æ交" -#: refs.c:262 +#: refs.c:264 #, c-format msgid "%s does not point to a valid object!" msgstr "%s 沒有指å‘一個有效的物件ï¼" -#: refs.c:623 +#: refs.c:572 +#, c-format +msgid "could not retrieve `%s`" +msgstr "無法擷å–「%sã€" + +#: refs.c:579 +#, c-format +msgid "invalid branch name: %s = %s" +msgstr "分支å稱無效:%s = %s" + +#: refs.c:655 #, c-format msgid "ignoring dangling symref %s" msgstr "忽略懸空符號引用 %s" -#: refs.c:760 +#: refs.c:792 #, c-format msgid "could not open '%s' for writing: %s" msgstr "無法為寫入開啟 '%s':%s" -#: refs.c:770 refs.c:821 +#: refs.c:802 refs.c:853 #, c-format msgid "could not read ref '%s'" msgstr "無法讀å–引用 '%s'" -#: refs.c:776 +#: refs.c:808 #, c-format msgid "ref '%s' already exists" msgstr "引用 '%s' 已經å˜åœ¨" -#: refs.c:781 +#: refs.c:813 #, c-format msgid "unexpected object ID when writing '%s'" msgstr "寫入 '%s' 時æ„外的物件 ID" -#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 -#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173 -#: wrapper.c:620 +#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925 +#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168 +#: wrapper.c:628 #, c-format msgid "could not write to '%s'" msgstr "ä¸èƒ½å¯«å…¥ '%s'" -#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719 +#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719 #: builtin/rebase.c:852 #, c-format msgid "could not open '%s' for writing" msgstr "無法開啟 '%s' 進行寫入" -#: refs.c:823 +#: refs.c:855 #, c-format msgid "unexpected object ID when deleting '%s'" msgstr "刪除 '%s' 時æ„外的物件 ID" -#: refs.c:954 +#: refs.c:986 #, c-format msgid "log for ref %s has gap after %s" msgstr "引用 %s 的日誌在 %s 之後有缺å£" -#: refs.c:960 +#: refs.c:992 #, c-format msgid "log for ref %s unexpectedly ended on %s" msgstr "引用 %s 的日誌æ„外終æ¢æ–¼ %s" -#: refs.c:1019 +#: refs.c:1051 #, c-format msgid "log for %s is empty" msgstr "%s 的日誌為空" -#: refs.c:1111 +#: refs.c:1143 #, c-format msgid "refusing to update ref with bad name '%s'" msgstr "拒絕更新有錯誤å稱 '%s' 的引用" -#: refs.c:1187 +#: refs.c:1219 #, c-format msgid "update_ref failed for ref '%s': %s" msgstr "å°å¼•ç”¨ '%s' 執行 update_ref 失敗:%s" -#: refs.c:1979 +#: refs.c:2011 #, c-format msgid "multiple updates for ref '%s' not allowed" msgstr "ä¸å…許å°å¼•ç”¨ '%s' 多次更新" -#: refs.c:2011 +#: refs.c:2098 msgid "ref updates forbidden inside quarantine environment" msgstr "在隔離環境ä¸ç¦æ¢æ›´æ–°å¼•ç”¨" -#: refs.c:2107 refs.c:2137 +#: refs.c:2109 +msgid "ref updates aborted by hook" +msgstr "引用更新被掛鉤拒絕" + +#: refs.c:2209 refs.c:2239 #, c-format msgid "'%s' exists; cannot create '%s'" msgstr "'%s' å·²å˜åœ¨ï¼Œç„¡æ³•å»ºç«‹ '%s'" -#: refs.c:2113 refs.c:2148 +#: refs.c:2215 refs.c:2250 #, c-format msgid "cannot process '%s' and '%s' at the same time" msgstr "無法åŒæ™‚è™•ç† '%s' å’Œ '%s'" @@ -6473,7 +6555,7 @@ msgstr[0] "" msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr " (使用 \"git pull\" 來åˆä½µé 端分支)\n" -#: remote.c:2233 +#: remote.c:2241 #, c-format msgid "cannot parse expected object name '%s'" msgstr "無法解æžæœŸæœ›çš„物件å '%s'" @@ -6600,20 +6682,20 @@ msgstr "ä¸èƒ½ç¢ºå®š HEAD 版本" msgid "failed to find tree of %s" msgstr "無法找到 %s 指å‘的樹" -#: revision.c:2655 +#: revision.c:2661 msgid "your current branch appears to be broken" msgstr "您的目å‰åˆ†æ”¯å¥½åƒè¢«æ壞" -#: revision.c:2658 +#: revision.c:2664 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "您的目å‰åˆ†æ”¯ '%s' 尚無任何æ交" -#: revision.c:2866 +#: revision.c:2873 msgid "--first-parent is incompatible with --bisect" msgstr "--first-parent 與 --bisect ä¸ç›¸å®¹" -#: revision.c:2870 +#: revision.c:2877 msgid "-L does not yet support diff formats besides -p and -s" msgstr "-L å°šä¸æ”¯æ´ -p å’Œ -s ä¹‹å¤–çš„å·®ç•°æ ¼å¼" @@ -6653,21 +6735,25 @@ msgstr "é 端解包失敗:%s" msgid "failed to sign the push certificate" msgstr "為推é€è‰æ›¸ç±¤å失敗" -#: send-pack.c:399 +#: send-pack.c:394 +msgid "the receiving end does not support this repository's hash algorithm" +msgstr "接收端ä¸æ”¯æ´æ¤ç‰ˆæœ¬åº«çš„雜湊算法" + +#: send-pack.c:403 msgid "the receiving end does not support --signed push" msgstr "接收端ä¸æ”¯æ´ç°½å推é€" -#: send-pack.c:401 +#: send-pack.c:405 msgid "" "not sending a push certificate since the receiving end does not support --" "signed push" msgstr "未傳é€æŽ¨é€è‰æ›¸ï¼Œå› 為接收端ä¸æ”¯æ´ç°½å推é€" -#: send-pack.c:413 +#: send-pack.c:417 msgid "the receiving end does not support --atomic push" msgstr "接收端ä¸æ”¯æ´åŽŸå推é€" -#: send-pack.c:418 +#: send-pack.c:422 msgid "the receiving end does not support push options" msgstr "接收端ä¸æ”¯æ´æŽ¨é€é¸é …" @@ -6787,7 +6873,7 @@ msgstr "在 '%.*s' ä¸æ²’有 key" msgid "unable to dequote value of '%s'" msgstr "無法為 '%s' 的值去引號" -#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710 +#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896 #, c-format msgid "could not open '%s' for reading" @@ -7616,84 +7702,84 @@ msgstr "無法使用無效è¨å®šä¾†å»ºç«‹å·¥ä½œå€" msgid "this operation must be run in a work tree" msgstr "è©²å‹•ä½œå¿…é ˆåœ¨ä¸€å€‹å·¥ä½œå€ä¸åŸ·è¡Œ" -#: setup.c:569 +#: setup.c:604 #, c-format msgid "Expected git repo version <= %d, found %d" msgstr "期望 git 版本庫版本 <= %d,å»å¾—到 %d" -#: setup.c:577 +#: setup.c:612 msgid "unknown repository extensions found:" msgstr "發ç¾æœªçŸ¥çš„版本庫擴展:" -#: setup.c:596 +#: setup.c:631 #, c-format msgid "error opening '%s'" msgstr "é–‹å•Ÿ '%s' 發生錯誤" -#: setup.c:598 +#: setup.c:633 #, c-format msgid "too large to be a .git file: '%s'" msgstr "檔案太大,無法作為 .git 檔案:'%s'" -#: setup.c:600 +#: setup.c:635 #, c-format msgid "error reading %s" msgstr "è®€å– %s 發生錯誤" -#: setup.c:602 +#: setup.c:637 #, c-format msgid "invalid gitfile format: %s" msgstr "無效的 gitfile æ ¼å¼ï¼š%s" -#: setup.c:604 +#: setup.c:639 #, c-format msgid "no path in gitfile: %s" msgstr "在 gitfile ä¸æ²’有路徑:%s" -#: setup.c:606 +#: setup.c:641 #, c-format msgid "not a git repository: %s" msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫:%s" -#: setup.c:708 +#: setup.c:743 #, c-format msgid "'$%s' too big" msgstr "'$%s' 太大" -#: setup.c:722 +#: setup.c:757 #, c-format msgid "not a git repository: '%s'" msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫:'%s'" -#: setup.c:751 setup.c:753 setup.c:784 +#: setup.c:786 setup.c:788 setup.c:819 #, c-format msgid "cannot chdir to '%s'" msgstr "ä¸èƒ½åˆ‡æ›ç›®éŒ„到 '%s'" -#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869 +#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904 msgid "cannot come back to cwd" msgstr "無法返回目å‰å·¥ä½œç›®éŒ„" -#: setup.c:883 +#: setup.c:918 #, c-format msgid "failed to stat '%*s%s%s'" msgstr "å–å¾— '%*s%s%s' 狀態(stat)失敗" -#: setup.c:1121 +#: setup.c:1156 msgid "Unable to read current working directory" msgstr "ä¸èƒ½è®€å–ç›®å‰å·¥ä½œç›®éŒ„" -#: setup.c:1130 setup.c:1136 +#: setup.c:1165 setup.c:1171 #, c-format msgid "cannot change to '%s'" msgstr "ä¸èƒ½åˆ‡æ›åˆ° '%s'" -#: setup.c:1141 +#: setup.c:1176 #, c-format msgid "not a git repository (or any of the parent directories): %s" msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫(或者任何父目錄):%s" -#: setup.c:1147 +#: setup.c:1182 #, c-format msgid "" "not a git repository (or any parent up to mount point %s)\n" @@ -7702,7 +7788,7 @@ msgstr "" "ä¸æ˜¯ä¸€å€‹ git 版本庫(或者直至掛載點 %s 的任何父目錄)\n" "åœæ¢åœ¨æª”案系統邊界(未è¨å®š GIT_DISCOVERY_ACROSS_FILESYSTEM)。" -#: setup.c:1258 +#: setup.c:1293 #, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" @@ -7711,15 +7797,15 @@ msgstr "" "åƒæ•¸ core.sharedRepository 的檔案屬性值有å•é¡Œï¼ˆ0%.3o)。\n" "æª”æ¡ˆæ‰€æœ‰è€…å¿…é ˆå§‹çµ‚æ“有讀寫權é™ã€‚" -#: setup.c:1304 +#: setup.c:1340 msgid "open /dev/null or dup failed" msgstr "ä¸èƒ½é–‹å•Ÿæˆ–者複製 /dev/null" -#: setup.c:1319 +#: setup.c:1355 msgid "fork failed" msgstr "fork 失敗" -#: setup.c:1324 +#: setup.c:1360 msgid "setsid failed" msgstr "setsid 失敗" @@ -7899,7 +7985,7 @@ msgstr "在物件 %s ä¸Šå‘¼å« deflateEnd 失敗(%d)" msgid "confused by unstable object source data for %s" msgstr "被 %s çš„ä¸ç©©å®šç‰©ä»¶æºè³‡æ–™æžç³Šå¡—了" -#: sha1-file.c:1906 builtin/pack-objects.c:1055 +#: sha1-file.c:1906 builtin/pack-objects.c:1085 #, c-format msgid "failed utime() on %s" msgstr "在 %s ä¸Šå‘¼å« utime() 失敗" @@ -8075,56 +8161,56 @@ msgid "invalid object name '%.*s'." msgstr "'%.*s' 物件å稱無效。" #. TRANSLATORS: IEC 80000-13:2008 gibibyte -#: strbuf.c:853 +#: strbuf.c:848 #, c-format msgid "%u.%2.2u GiB" msgstr "%u.%2.2u GiB" #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second -#: strbuf.c:855 +#: strbuf.c:850 #, c-format msgid "%u.%2.2u GiB/s" msgstr "%u.%2.2u GiB/s" #. TRANSLATORS: IEC 80000-13:2008 mebibyte -#: strbuf.c:863 +#: strbuf.c:858 #, c-format msgid "%u.%2.2u MiB" msgstr "%u.%2.2u MiB" #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second -#: strbuf.c:865 +#: strbuf.c:860 #, c-format msgid "%u.%2.2u MiB/s" msgstr "%u.%2.2u MiB/s" #. TRANSLATORS: IEC 80000-13:2008 kibibyte -#: strbuf.c:872 +#: strbuf.c:867 #, c-format msgid "%u.%2.2u KiB" msgstr "%u.%2.2u KiB" #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second -#: strbuf.c:874 +#: strbuf.c:869 #, c-format msgid "%u.%2.2u KiB/s" msgstr "%u.%2.2u KiB/s" #. TRANSLATORS: IEC 80000-13:2008 byte -#: strbuf.c:880 +#: strbuf.c:875 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ä½å…ƒçµ„" #. TRANSLATORS: IEC 80000-13:2008 byte/second -#: strbuf.c:882 +#: strbuf.c:877 #, c-format msgid "%u byte/s" msgid_plural "%u bytes/s" msgstr[0] "%u ä½å…ƒçµ„/秒" -#: strbuf.c:1180 +#: strbuf.c:1175 #, c-format msgid "could not edit '%s'" msgstr "無法編輯 '%s'" @@ -8363,7 +8449,7 @@ msgstr "ä¸èƒ½è®€å–輸入檔案 '%s'" msgid "could not read from stdin" msgstr "ä¸èƒ½è‡ªæ¨™æº–輸入讀å–" -#: trailer.c:1011 wrapper.c:665 +#: trailer.c:1011 wrapper.c:673 #, c-format msgid "could not stat %s" msgstr "ä¸èƒ½å° %s å‘¼å« stat" @@ -8387,177 +8473,182 @@ msgstr "ä¸èƒ½é–‹å•Ÿæš«å˜æª”" msgid "could not rename temporary file to %s" msgstr "ä¸èƒ½é‡æ–°å‘½åæš«å˜æª”為 %s" -#: transport-helper.c:61 transport-helper.c:90 +#: transport-helper.c:62 transport-helper.c:91 msgid "full write to remote helper failed" msgstr "完整寫入é 端助手失敗" -#: transport-helper.c:144 +#: transport-helper.c:145 #, c-format msgid "unable to find remote helper for '%s'" msgstr "無法為 '%s' 找到é 端助手" -#: transport-helper.c:160 transport-helper.c:571 +#: transport-helper.c:161 transport-helper.c:575 msgid "can't dup helper output fd" msgstr "無法複製助手輸出檔案å¥æŸ„" -#: transport-helper.c:211 +#: transport-helper.c:214 #, c-format msgid "" "unknown mandatory capability %s; this remote helper probably needs newer " "version of Git" msgstr "未知的強制能力 %s,該é 端助手å¯èƒ½éœ€è¦æ–°ç‰ˆæœ¬çš„Git" -#: transport-helper.c:217 +#: transport-helper.c:220 msgid "this remote helper should implement refspec capability" msgstr "é 端助手需è¦å¯¦ç¾ refspec 能力" -#: transport-helper.c:284 transport-helper.c:425 +#: transport-helper.c:287 transport-helper.c:429 #, c-format msgid "%s unexpectedly said: '%s'" msgstr "%s æ„外地說:'%s'" -#: transport-helper.c:414 +#: transport-helper.c:417 #, c-format msgid "%s also locked %s" msgstr "%s 也鎖定了 %s" -#: transport-helper.c:493 +#: transport-helper.c:497 msgid "couldn't run fast-import" msgstr "ä¸èƒ½åŸ·è¡Œ fast-import" -#: transport-helper.c:516 +#: transport-helper.c:520 msgid "error while running fast-import" msgstr "執行 fast-import 發生錯誤" -#: transport-helper.c:545 transport-helper.c:1135 +#: transport-helper.c:549 transport-helper.c:1156 #, c-format msgid "could not read ref %s" msgstr "無法讀å–引用 %s" -#: transport-helper.c:590 +#: transport-helper.c:594 #, c-format msgid "unknown response to connect: %s" msgstr "連線時未知的回應:%s" -#: transport-helper.c:612 +#: transport-helper.c:616 msgid "setting remote service path not supported by protocol" msgstr "å”定ä¸æ”¯æ´è¨å®šé 端æœå‹™è·¯å¾‘" -#: transport-helper.c:614 +#: transport-helper.c:618 msgid "invalid remote service path" msgstr "無效的é 端æœå‹™è·¯å¾‘" -#: transport-helper.c:657 transport.c:1339 +#: transport-helper.c:661 transport.c:1347 msgid "operation not supported by protocol" msgstr "å”定ä¸æ”¯æ´è©²å‹•ä½œ" -#: transport-helper.c:660 +#: transport-helper.c:664 #, c-format msgid "can't connect to subservice %s" msgstr "ä¸èƒ½é€£ç·šåˆ°åæœå‹™ %s" -#: transport-helper.c:736 +#: transport-helper.c:740 #, c-format msgid "expected ok/error, helper said '%s'" msgstr "é 期 ok/error,助手說 '%s'" -#: transport-helper.c:789 +#: transport-helper.c:793 #, c-format msgid "helper reported unexpected status of %s" msgstr "åŠ©æ‰‹å ±å‘Š %s çš„æ„外狀態" -#: transport-helper.c:850 +#: transport-helper.c:854 #, c-format msgid "helper %s does not support dry-run" msgstr "助手 %s ä¸æ”¯æ´ dry-run" -#: transport-helper.c:853 +#: transport-helper.c:857 #, c-format msgid "helper %s does not support --signed" msgstr "助手 %s ä¸æ”¯æ´ --signed" -#: transport-helper.c:856 +#: transport-helper.c:860 #, c-format msgid "helper %s does not support --signed=if-asked" msgstr "助手 %s ä¸æ”¯æ´ --signed=if-asked" -#: transport-helper.c:861 +#: transport-helper.c:865 #, c-format msgid "helper %s does not support --atomic" msgstr "助手 %s ä¸æ”¯æ´ --atomic" -#: transport-helper.c:867 +#: transport-helper.c:871 #, c-format msgid "helper %s does not support 'push-option'" msgstr "助手 %s ä¸æ”¯æ´ 'push-option'" -#: transport-helper.c:966 +#: transport-helper.c:970 msgid "remote-helper doesn't support push; refspec needed" msgstr "remote-heper ä¸æ”¯æ´ push,需è¦å¼•ç”¨è¡¨é”å¼" -#: transport-helper.c:971 +#: transport-helper.c:975 #, c-format msgid "helper %s does not support 'force'" msgstr "助手 %s ä¸æ”¯æ´ 'force'" -#: transport-helper.c:1018 +#: transport-helper.c:1022 msgid "couldn't run fast-export" msgstr "無法執行 fast-export" -#: transport-helper.c:1023 +#: transport-helper.c:1027 msgid "error while running fast-export" msgstr "執行 fast-export 時發生錯誤" -#: transport-helper.c:1048 +#: transport-helper.c:1052 #, c-format msgid "" "No refs in common and none specified; doing nothing.\n" -"Perhaps you should specify a branch such as 'master'.\n" +"Perhaps you should specify a branch.\n" msgstr "" "沒有共åŒçš„引用並且也沒有指定,什麼也ä¸æœƒåšã€‚\n" -"å¯èƒ½æ‚¨æ‡‰è©²æŒ‡å®šä¸€å€‹åˆ†æ”¯å¦‚ 'master'。\n" +"您或許得指定一個分支。\n" -#: transport-helper.c:1121 +#: transport-helper.c:1133 +#, c-format +msgid "unsupported object format '%s'" +msgstr "ä¸æ”¯æ´çš„ç‰©ä»¶æ ¼å¼ã€Œ%sã€" + +#: transport-helper.c:1142 #, c-format msgid "malformed response in ref list: %s" msgstr "引用列表ä¸æ ¼å¼éŒ¯èª¤çš„回應:%s" -#: transport-helper.c:1273 +#: transport-helper.c:1294 #, c-format msgid "read(%s) failed" msgstr "讀å–(%s)失敗" -#: transport-helper.c:1300 +#: transport-helper.c:1321 #, c-format msgid "write(%s) failed" msgstr "寫(%s)失敗" -#: transport-helper.c:1349 +#: transport-helper.c:1370 #, c-format msgid "%s thread failed" msgstr "%s 執行緒失敗" -#: transport-helper.c:1353 +#: transport-helper.c:1374 #, c-format msgid "%s thread failed to join: %s" msgstr "%s 執行緒ç‰å¾…失敗:%s" -#: transport-helper.c:1372 transport-helper.c:1376 +#: transport-helper.c:1393 transport-helper.c:1397 #, c-format msgid "can't start thread for copying data: %s" msgstr "ä¸èƒ½å•Ÿå‹•åŸ·è¡Œç·’來複製資料:%s" -#: transport-helper.c:1413 +#: transport-helper.c:1434 #, c-format msgid "%s process failed to wait" msgstr "%s 進程ç‰å¾…失敗" -#: transport-helper.c:1417 +#: transport-helper.c:1438 #, c-format msgid "%s process failed" msgstr "%s 進程失敗" -#: transport-helper.c:1435 transport-helper.c:1444 +#: transport-helper.c:1456 transport-helper.c:1465 msgid "can't start thread for copying data" msgstr "ä¸èƒ½å•Ÿå‹•åŸ·è¡Œç·’來複製資料" @@ -8571,33 +8662,33 @@ msgstr "å°‡è¦è¨å®š '%1$s' 的上游為 '%3$s' çš„ '%2$s'\n" msgid "could not read bundle '%s'" msgstr "ç„¡æ³•è®€å– bundle '%s'" -#: transport.c:214 +#: transport.c:220 #, c-format msgid "transport: invalid depth option '%s'" msgstr "傳輸:無效的深度é¸é … '%s'" -#: transport.c:266 +#: transport.c:272 msgid "see protocol.version in 'git help config' for more details" msgstr "檢視 'git help config' ä¸çš„ protocol.version å–得更多訊æ¯" -#: transport.c:267 +#: transport.c:273 msgid "server options require protocol version 2 or later" msgstr "æœå‹™ç«¯é¸é …需è¦ç‰ˆæœ¬ 2 å”定或更高" -#: transport.c:632 +#: transport.c:631 msgid "could not parse transport.color.* config" msgstr "ä¸èƒ½è§£æž transport.color.* è¨å®š" -#: transport.c:705 +#: transport.c:704 msgid "support for protocol v2 not implemented yet" msgstr "å”定 v2 的支æ´å°šæœªå¯¦ç¾" -#: transport.c:839 +#: transport.c:838 #, c-format msgid "unknown value for config '%s': %s" msgstr "è¨å®š '%s' çš„å–值未知:%s" -#: transport.c:905 +#: transport.c:904 #, c-format msgid "transport '%s' not allowed" msgstr "傳輸 '%s' ä¸å…許" @@ -8606,14 +8697,14 @@ msgstr "傳輸 '%s' ä¸å…許" msgid "git-over-rsync is no longer supported" msgstr "ä¸å†æ”¯æ´ git-over-rsync" -#: transport.c:1052 +#: transport.c:1059 #, c-format msgid "" "The following submodule paths contain changes that can\n" "not be found on any remote:\n" msgstr "下列å模組路徑所包å«çš„修改在任何é 端æºä¸éƒ½æ‰¾ä¸åˆ°ï¼š\n" -#: transport.c:1056 +#: transport.c:1063 #, c-format msgid "" "\n" @@ -8640,11 +8731,11 @@ msgstr "" "以推é€è‡³é 端。\n" "\n" -#: transport.c:1064 +#: transport.c:1071 msgid "Aborting." msgstr "æ£åœ¨çµ‚æ¢ã€‚" -#: transport.c:1209 +#: transport.c:1216 msgid "failed to push all needed submodules" msgstr "ä¸èƒ½æŽ¨é€å…¨éƒ¨éœ€è¦çš„å模組" @@ -8909,7 +9000,7 @@ msgstr "" msgid "Updating index flags" msgstr "æ£åœ¨æ›´æ–°ç´¢å¼•æ——標" -#: upload-pack.c:1337 +#: upload-pack.c:1415 msgid "expected flush after fetch arguments" msgstr "在 fetch 引數應為一個 flush 包" @@ -8946,47 +9037,47 @@ msgstr "無效的 '..' 路徑片段" msgid "Fetching objects" msgstr "æ£åœ¨æŠ“å–物件" -#: worktree.c:262 builtin/am.c:2098 +#: worktree.c:248 builtin/am.c:2098 #, c-format msgid "failed to read '%s'" msgstr "è®€å– '%s' 失敗" -#: worktree.c:309 +#: worktree.c:295 #, c-format msgid "'%s' at main working tree is not the repository directory" msgstr "在主工作å€çš„ '%s' ä¸æ˜¯ç‰ˆæœ¬åº«ç›®éŒ„" -#: worktree.c:320 +#: worktree.c:306 #, c-format msgid "'%s' file does not contain absolute path to the working tree location" msgstr "檔案 '%s' ä¸åŒ…å«å·¥ä½œå€çš„絕å°è·¯å¾‘" -#: worktree.c:332 +#: worktree.c:318 #, c-format msgid "'%s' does not exist" msgstr "'%s' ä¸å˜åœ¨" -#: worktree.c:338 +#: worktree.c:324 #, c-format msgid "'%s' is not a .git file, error code %d" msgstr "'%s' ä¸æ˜¯ä¸€å€‹ .git 檔案,錯誤碼 %d" -#: worktree.c:347 +#: worktree.c:333 #, c-format msgid "'%s' does not point back to '%s'" msgstr "'%s' 沒有指回到 '%s'" -#: wrapper.c:186 wrapper.c:356 +#: wrapper.c:194 wrapper.c:364 #, c-format msgid "could not open '%s' for reading and writing" msgstr "無法開啟 '%s' 進行讀寫" -#: wrapper.c:387 wrapper.c:588 +#: wrapper.c:395 wrapper.c:596 #, c-format msgid "unable to access '%s'" msgstr "ä¸èƒ½å˜å– '%s'" -#: wrapper.c:596 +#: wrapper.c:604 msgid "unable to get current working directory" msgstr "ä¸èƒ½å–å¾—ç›®å‰å·¥ä½œç›®éŒ„" @@ -9394,39 +9485,44 @@ msgstr "您在執行二分尋找動作。" msgid " (use \"git bisect reset\" to get back to the original branch)" msgstr " (使用 \"git bisect reset\" 檢出原有分支)" -#: wt-status.c:1692 +#: wt-status.c:1494 +#, c-format +msgid "You are in a sparse checkout with %d%% of tracked files present." +msgstr "您處於稀ç–ç°½å‡ºç‹€æ…‹ï¼ŒåŒ…å« %d%% 的追蹤檔案。" + +#: wt-status.c:1733 msgid "On branch " msgstr "ä½æ–¼åˆ†æ”¯ " -#: wt-status.c:1699 +#: wt-status.c:1740 msgid "interactive rebase in progress; onto " msgstr "互動å¼é‡å®šåŸºåº•å‹•ä½œæ£åœ¨é€²è¡Œä¸ï¼›è‡³ " -#: wt-status.c:1701 +#: wt-status.c:1742 msgid "rebase in progress; onto " msgstr "é‡å®šåŸºåº•å‹•ä½œæ£åœ¨é€²è¡Œä¸ï¼›è‡³ " -#: wt-status.c:1711 +#: wt-status.c:1752 msgid "Not currently on any branch." msgstr "ç›®å‰ä¸åœ¨ä»»ä½•åˆ†æ”¯ä¸Šã€‚" -#: wt-status.c:1728 +#: wt-status.c:1769 msgid "Initial commit" msgstr "åˆå§‹æ交" -#: wt-status.c:1729 +#: wt-status.c:1770 msgid "No commits yet" msgstr "å°šç„¡æ交" -#: wt-status.c:1743 +#: wt-status.c:1784 msgid "Untracked files" msgstr "未追蹤的檔案" -#: wt-status.c:1745 +#: wt-status.c:1786 msgid "Ignored files" msgstr "忽略的檔案" -#: wt-status.c:1749 +#: wt-status.c:1790 #, c-format msgid "" "It took %.2f seconds to enumerate untracked files. 'status -uno'\n" @@ -9436,97 +9532,97 @@ msgstr "" "耗費了 %.2f 秒以枚舉未追蹤的檔案。'status -uno' 也許能æ高速度,\n" "但您需è¦å°å¿ƒä¸è¦å¿˜äº†æ–°å¢žæ–°æª”案(åƒè¦‹ 'git help status')。" -#: wt-status.c:1755 +#: wt-status.c:1796 #, c-format msgid "Untracked files not listed%s" msgstr "未追蹤的檔案沒有列出%s" # è¯è€…:ä¸æ–‡å—串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼ -#: wt-status.c:1757 +#: wt-status.c:1798 msgid " (use -u option to show untracked files)" msgstr " (使用 -u åƒæ•¸é¡¯ç¤ºæœªè¿½è¹¤çš„檔案)" -#: wt-status.c:1763 +#: wt-status.c:1804 msgid "No changes" msgstr "沒有修改" -#: wt-status.c:1768 +#: wt-status.c:1809 #, 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:1771 +#: wt-status.c:1812 #, c-format msgid "no changes added to commit\n" msgstr "ä¿®æ”¹å°šæœªåŠ å…¥æ交\n" -#: wt-status.c:1774 +#: wt-status.c:1815 #, c-format msgid "" "nothing added to commit but untracked files present (use \"git add\" to " "track)\n" msgstr "æ交為空,但是å˜åœ¨å°šæœªè¿½è¹¤çš„檔案(使用 \"git add\" 建立追蹤)\n" -#: wt-status.c:1777 +#: wt-status.c:1818 #, c-format msgid "nothing added to commit but untracked files present\n" msgstr "æ交為空,但是å˜åœ¨å°šæœªè¿½è¹¤çš„檔案\n" # è¯è€…:ä¸æ–‡å—串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼ -#: wt-status.c:1780 +#: wt-status.c:1821 #, c-format msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" msgstr "無檔案è¦æ交(建立/複製檔案並使用 \"git add\" 建立追蹤)\n" -#: wt-status.c:1783 wt-status.c:1788 +#: wt-status.c:1824 wt-status.c:1829 #, c-format msgid "nothing to commit\n" msgstr "無檔案è¦æ交\n" # è¯è€…:ä¸æ–‡å—串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼ -#: wt-status.c:1786 +#: wt-status.c:1827 #, c-format msgid "nothing to commit (use -u to show untracked files)\n" msgstr "無檔案è¦æ交(使用 -u 顯示未追蹤的檔案)\n" # è¯è€…:ä¸æ–‡å—串拼接,å¯åˆªé™¤å‰å°Žç©ºæ ¼ -#: wt-status.c:1790 +#: wt-status.c:1831 #, c-format msgid "nothing to commit, working tree clean\n" msgstr "沒有è¦æ交的檔案,工作å€ç‚ºä¹¾æ·¨ç‹€æ…‹\n" -#: wt-status.c:1903 +#: wt-status.c:1944 msgid "No commits yet on " msgstr "å°šç„¡æ交在 " -#: wt-status.c:1907 +#: wt-status.c:1948 msgid "HEAD (no branch)" msgstr "HEAD(éžåˆ†æ”¯ï¼‰" -#: wt-status.c:1938 +#: wt-status.c:1979 msgid "different" msgstr "ä¸åŒ" # è¯è€…:請ç¶æŒå¥å°¾ç©ºæ ¼ -#: wt-status.c:1940 wt-status.c:1948 +#: wt-status.c:1981 wt-status.c:1989 msgid "behind " msgstr "è½å¾Œ " -#: wt-status.c:1943 wt-status.c:1946 +#: wt-status.c:1984 wt-status.c:1987 msgid "ahead " msgstr "é ˜å…ˆ " #. TRANSLATORS: the action is e.g. "pull with rebase" -#: wt-status.c:2468 +#: wt-status.c:2509 #, c-format msgid "cannot %s: You have unstaged changes." msgstr "ä¸èƒ½%s:您有未暫å˜çš„變更。" -#: wt-status.c:2474 +#: wt-status.c:2515 msgid "additionally, your index contains uncommitted changes." msgstr "å¦å¤–,您的索引ä¸åŒ…å«æœªæ交的變更。" -#: wt-status.c:2476 +#: wt-status.c:2517 #, c-format msgid "cannot %s: Your index contains uncommitted changes." msgstr "ä¸èƒ½%s:您的索引ä¸åŒ…å«æœªæ交的變更。" @@ -9603,7 +9699,7 @@ msgstr "測試執行" msgid "interactive picking" msgstr "互動å¼æ€é¸" -#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308 +#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308 msgid "select hunks interactively" msgstr "互動å¼æŒ‘é¸è³‡æ–™å€å¡Š" @@ -9728,12 +9824,12 @@ msgstr "é¸é … --ignore-missing åªèƒ½å’Œ --dry-run åŒæ™‚使用" msgid "--chmod param '%s' must be either -x or +x" msgstr "åƒæ•¸ --chmod å–值 '%s' å¿…é ˆæ˜¯ -x 或 +x" -#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351 +#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506 msgid "--pathspec-from-file is incompatible with pathspec arguments" msgstr "--pathspec-from-file 與 <路徑è¦æ ¼> åƒæ•¸ä¸ç›¸å®¹" -#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357 +#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512 msgid "--pathspec-file-nul requires --pathspec-from-file" msgstr "--pathspec-file-nul éœ€è¦ --pathspec-from-file" @@ -9989,7 +10085,7 @@ msgstr "è€çš„åƒæ•¸ —— 無作用" msgid "allow fall back on 3way merging if needed" msgstr "如果必è¦ï¼Œå…許使用三方åˆä½µ" -#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16 +#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16 #: builtin/repack.c:306 builtin/stash.c:816 msgid "be quiet" msgstr "éœé»˜æ¨¡å¼" @@ -10044,7 +10140,7 @@ msgstr "n" #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38 -#: bugreport.c:131 +#: bugreport.c:137 msgid "format" msgstr "æ ¼å¼" @@ -10334,111 +10430,115 @@ msgstr "" "指令 'git bisect terms' çš„åƒæ•¸ %s 無效。\n" "支æ´çš„é¸é …有:--term-good|--term-old å’Œ --term-bad|--term-new。" -#: builtin/bisect--helper.c:478 +#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473 +msgid "'' is not a valid term" +msgstr "'' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„術語" + +#: builtin/bisect--helper.c:483 #, c-format msgid "unrecognized option: '%s'" msgstr "未è˜åˆ¥çš„é¸é …:'%s'" -#: builtin/bisect--helper.c:482 +#: builtin/bisect--helper.c:487 #, c-format msgid "'%s' does not appear to be a valid revision" msgstr "'%s' 看起來ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„版本" -#: builtin/bisect--helper.c:514 +#: builtin/bisect--helper.c:519 msgid "bad HEAD - I need a HEAD" msgstr "壞的 HEAD - 我需è¦ä¸€å€‹ HEAD" -#: builtin/bisect--helper.c:529 +#: builtin/bisect--helper.c:534 #, c-format msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'." msgstr "檢出 '%s' 失敗。嘗試 'git bisect start <有效分支>'。" -#: builtin/bisect--helper.c:550 +#: builtin/bisect--helper.c:555 msgid "won't bisect on cg-seek'ed tree" msgstr "ä¸æœƒåœ¨åšäº† cg-seek 的樹上åšäºŒåˆ†å°‹æ‰¾" -#: builtin/bisect--helper.c:553 +#: builtin/bisect--helper.c:558 msgid "bad HEAD - strange symbolic ref" msgstr "壞的 HEAD - 奇怪的符號引用" -#: builtin/bisect--helper.c:577 +#: builtin/bisect--helper.c:582 #, c-format msgid "invalid ref: '%s'" msgstr "無效的引用:'%s'" -#: builtin/bisect--helper.c:633 +#: builtin/bisect--helper.c:638 msgid "perform 'git bisect next'" msgstr "執行 'git bisect next'" -#: builtin/bisect--helper.c:635 +#: builtin/bisect--helper.c:640 msgid "write the terms to .git/BISECT_TERMS" msgstr "將術語寫入 .git/BISECT_TERMS" -#: builtin/bisect--helper.c:637 +#: builtin/bisect--helper.c:642 msgid "cleanup the bisection state" msgstr "清除二分尋找狀態" -#: builtin/bisect--helper.c:639 +#: builtin/bisect--helper.c:644 msgid "check for expected revs" msgstr "檢查é 期的版本" -#: builtin/bisect--helper.c:641 +#: builtin/bisect--helper.c:646 msgid "reset the bisection state" msgstr "清除二分尋找狀態" -#: builtin/bisect--helper.c:643 +#: builtin/bisect--helper.c:648 msgid "write out the bisection state in BISECT_LOG" msgstr "將二分尋找的狀態寫入 BISECT_LOG" -#: builtin/bisect--helper.c:645 +#: builtin/bisect--helper.c:650 msgid "check and set terms in a bisection state" msgstr "在一個二分尋找狀態ä¸æª¢æŸ¥å’Œè¨å®šè¡“語" -#: builtin/bisect--helper.c:647 +#: builtin/bisect--helper.c:652 msgid "check whether bad or good terms exist" msgstr "檢查壞的或好的術語是å¦å˜åœ¨" -#: builtin/bisect--helper.c:649 +#: builtin/bisect--helper.c:654 msgid "print out the bisect terms" msgstr "列å°äºŒåˆ†å°‹æ‰¾è¡“語" -#: builtin/bisect--helper.c:651 +#: builtin/bisect--helper.c:656 msgid "start the bisect session" msgstr "啟動二分尋找éŽç¨‹" -#: builtin/bisect--helper.c:653 +#: builtin/bisect--helper.c:658 msgid "update BISECT_HEAD instead of checking out the current commit" msgstr "æ›´æ–° BISECT_HEAD 而éžæª¢å‡ºç›®å‰æ交" -#: builtin/bisect--helper.c:655 +#: builtin/bisect--helper.c:660 msgid "no log for BISECT_WRITE" msgstr "BISECT_WRITE 無日誌" -#: builtin/bisect--helper.c:673 +#: builtin/bisect--helper.c:678 msgid "--write-terms requires two arguments" msgstr "--write-terms 需è¦å…©å€‹åƒæ•¸" -#: builtin/bisect--helper.c:677 +#: builtin/bisect--helper.c:682 msgid "--bisect-clean-state requires no arguments" msgstr "--bisect-clean-state ä¸å¸¶åƒæ•¸" -#: builtin/bisect--helper.c:684 +#: builtin/bisect--helper.c:689 msgid "--bisect-reset requires either no argument or a commit" msgstr "--bisect-reset 無需åƒæ•¸æˆ–者需è¦ä¸€å€‹æ交" -#: builtin/bisect--helper.c:688 +#: builtin/bisect--helper.c:693 msgid "--bisect-write requires either 4 or 5 arguments" msgstr "--bisect-write éœ€è¦ 4 或 5 個åƒæ•¸" -#: builtin/bisect--helper.c:694 +#: builtin/bisect--helper.c:699 msgid "--check-and-set-terms requires 3 arguments" msgstr "--check-and-set-terms éœ€è¦ 3 個åƒæ•¸" -#: builtin/bisect--helper.c:700 +#: builtin/bisect--helper.c:705 msgid "--bisect-next-check requires 2 or 3 arguments" msgstr "--bisect-next-check éœ€è¦ 2 或 3 個åƒæ•¸" -#: builtin/bisect--helper.c:706 +#: builtin/bisect--helper.c:711 msgid "--bisect-terms requires 0 or 1 argument" msgstr "--bisect-terms éœ€è¦ 0 或 1 個åƒæ•¸" @@ -11035,19 +11135,19 @@ msgstr "git bundle list-heads <檔案> [<åƒè€ƒå稱>...]" msgid "git bundle unbundle <file> [<refname>...]" msgstr "git bundle unbundle <檔案> [<åƒè€ƒå稱>...]" -#: builtin/bundle.c:66 builtin/pack-objects.c:3376 +#: builtin/bundle.c:66 builtin/pack-objects.c:3448 msgid "do not show progress meter" msgstr "ä¸é¡¯ç¤ºé€²åº¦è¡¨" -#: builtin/bundle.c:68 builtin/pack-objects.c:3378 +#: builtin/bundle.c:68 builtin/pack-objects.c:3450 msgid "show progress meter" msgstr "顯示進度表" -#: builtin/bundle.c:70 builtin/pack-objects.c:3380 +#: builtin/bundle.c:70 builtin/pack-objects.c:3452 msgid "show progress meter during object writing phase" msgstr "在物件寫入階段顯示進度表" -#: builtin/bundle.c:73 builtin/pack-objects.c:3383 +#: builtin/bundle.c:73 builtin/pack-objects.c:3455 msgid "similar to --all-progress when progress meter is shown" msgstr "當進度表顯示時類似於 --all-progress" @@ -11086,12 +11186,15 @@ msgstr "" "p | <é¡žåž‹> | --textconv | --filters) [--path=<路徑>] <物件>" #: builtin/cat-file.c:599 +#| msgid "" +#| "git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | " +#| "--filters]" msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --" -"filters]" +"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-" +"symlinks] [--textconv | --filters]" #: builtin/cat-file.c:620 msgid "only one batch option may be specified" @@ -11125,7 +11228,7 @@ msgstr "å°æ–¼è³‡æ–™ç‰©ä»¶ï¼Œå°å…¶å…§å®¹åšæ–‡å—轉æ›" msgid "for blob objects, run filters on object's content" msgstr "å°æ–¼è³‡æ–™ç‰©ä»¶ï¼Œå°å…¶å…§å®¹åšéŽæ¿¾" -#: builtin/cat-file.c:648 git-submodule.sh:984 +#: builtin/cat-file.c:648 git-submodule.sh:958 msgid "blob" msgstr "blob" @@ -11185,8 +11288,8 @@ msgstr "從標準輸入讀出檔案å" msgid "terminate input and output records by a NUL character" msgstr "輸入和輸出的紀錄使用 NUL å—元終çµ" -#: builtin/check-ignore.c:21 builtin/checkout.c:1488 builtin/gc.c:537 -#: builtin/worktree.c:502 +#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537 +#: builtin/worktree.c:561 msgid "suppress progress reporting" msgstr "ä¸é¡¯ç¤ºé€²åº¦å ±å‘Š" @@ -11278,7 +11381,7 @@ msgstr "將內容寫入暫å˜æª”" #: builtin/checkout-index.c:178 builtin/column.c:31 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909 -#: builtin/worktree.c:675 +#: builtin/worktree.c:754 msgid "string" msgstr "å—串" @@ -11390,11 +11493,11 @@ msgstr "'%s' 或 '%s' ä¸èƒ½å’Œ %s 一起使用" msgid "path '%s' is unmerged" msgstr "路徑 '%s' 未åˆä½µ" -#: builtin/checkout.c:704 +#: builtin/checkout.c:702 msgid "you need to resolve your current index first" msgstr "您需è¦å…ˆè§£æ±ºç›®å‰ç´¢å¼•çš„è¡çª" -#: builtin/checkout.c:758 +#: builtin/checkout.c:756 #, c-format msgid "" "cannot continue with staged changes in the following files:\n" @@ -11403,51 +11506,51 @@ msgstr "" "ä¸èƒ½ç¹¼çºŒï¼Œä¸‹åˆ—檔案有暫å˜çš„修改:\n" "%s" -#: builtin/checkout.c:861 +#: builtin/checkout.c:859 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "ä¸èƒ½å° '%s' 執行 reflog 動作:%s\n" -#: builtin/checkout.c:903 +#: builtin/checkout.c:901 msgid "HEAD is now at" msgstr "HEAD ç›®å‰ä½æ–¼" -#: builtin/checkout.c:907 builtin/clone.c:720 +#: builtin/checkout.c:905 builtin/clone.c:720 msgid "unable to update HEAD" msgstr "ä¸èƒ½æ›´æ–° HEAD" -#: builtin/checkout.c:911 +#: builtin/checkout.c:909 #, c-format msgid "Reset branch '%s'\n" msgstr "é‡è¨åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:914 +#: builtin/checkout.c:912 #, c-format msgid "Already on '%s'\n" msgstr "已經ä½æ–¼ '%s'\n" -#: builtin/checkout.c:918 +#: builtin/checkout.c:916 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "切æ›ä¸¦é‡è¨åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:920 builtin/checkout.c:1344 +#: builtin/checkout.c:918 builtin/checkout.c:1342 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "切æ›åˆ°ä¸€å€‹æ–°åˆ†æ”¯ '%s'\n" -#: builtin/checkout.c:922 +#: builtin/checkout.c:920 #, c-format msgid "Switched to branch '%s'\n" msgstr "切æ›åˆ°åˆ†æ”¯ '%s'\n" # è¯è€…:請ç¶æŒå‰å°Žç©ºæ ¼ -#: builtin/checkout.c:973 +#: builtin/checkout.c:971 #, c-format msgid " ... and %d more.\n" msgstr " ... åŠå…¶å®ƒ %d 個。\n" -#: builtin/checkout.c:979 +#: builtin/checkout.c:977 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -11464,7 +11567,7 @@ msgstr[0] "" "\n" "%s\n" -#: builtin/checkout.c:998 +#: builtin/checkout.c:996 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -11485,19 +11588,19 @@ msgstr[0] "" " git branch <新分支å> %s\n" "\n" -#: builtin/checkout.c:1033 +#: builtin/checkout.c:1031 msgid "internal error in revision walk" msgstr "在版本éæ·æ™‚é‡åˆ°å…§éƒ¨éŒ¯èª¤" -#: builtin/checkout.c:1037 +#: builtin/checkout.c:1035 msgid "Previous HEAD position was" msgstr "之å‰çš„ HEAD ä½ç½®æ˜¯" -#: builtin/checkout.c:1077 builtin/checkout.c:1339 +#: builtin/checkout.c:1075 builtin/checkout.c:1337 msgid "You are on a branch yet to be born" msgstr "您ä½æ–¼ä¸€å€‹å°šæœªåˆå§‹åŒ–的分支" -#: builtin/checkout.c:1152 +#: builtin/checkout.c:1150 #, c-format msgid "" "'%s' could be both a local file and a tracking branch.\n" @@ -11506,7 +11609,7 @@ msgstr "" "'%s' æ—¢å¯ä»¥æ˜¯ä¸€å€‹æœ¬æ©Ÿæª”案,也å¯ä»¥æ˜¯ä¸€å€‹è¿½è¹¤åˆ†æ”¯ã€‚\n" "請使用 --(和å¯é¸çš„ --no-guess)來消除æ§ç¾©" -#: builtin/checkout.c:1159 +#: builtin/checkout.c:1157 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" @@ -11525,51 +11628,51 @@ msgstr "" "如果您總是喜æ¡ä½¿ç”¨æ¨¡ç³Šçš„ç°¡çŸåˆ†æ”¯å <name>,而ä¸å–œæ¡å¦‚ 'origin' çš„é 端\n" "版本庫å,å¯ä»¥åœ¨è¨å®šä¸è¨å®š checkout.defaultRemote=origin。" -#: builtin/checkout.c:1169 +#: builtin/checkout.c:1167 #, c-format msgid "'%s' matched multiple (%d) remote tracking branches" msgstr "'%s' 符åˆå¤šå€‹ (%d) é 端追蹤分支" -#: builtin/checkout.c:1235 +#: builtin/checkout.c:1233 msgid "only one reference expected" msgstr "é 期åªæœ‰ä¸€å€‹å¼•ç”¨" -#: builtin/checkout.c:1252 +#: builtin/checkout.c:1250 #, c-format msgid "only one reference expected, %d given." msgstr "應åªæœ‰ä¸€å€‹å¼•ç”¨ï¼Œå»æ供了 %d 個。" -#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451 +#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510 #, c-format msgid "invalid reference: %s" msgstr "無效引用:%s" -#: builtin/checkout.c:1311 builtin/checkout.c:1677 +#: builtin/checkout.c:1309 builtin/checkout.c:1675 #, c-format msgid "reference is not a tree: %s" msgstr "引用ä¸æ˜¯ä¸€å€‹æ¨¹ï¼š%s" -#: builtin/checkout.c:1358 +#: builtin/checkout.c:1356 #, c-format msgid "a branch is expected, got tag '%s'" msgstr "期望一個分支,得到標籤 '%s'" -#: builtin/checkout.c:1360 +#: builtin/checkout.c:1358 #, c-format msgid "a branch is expected, got remote branch '%s'" msgstr "期望一個分支,得到é 端分支 '%s'" -#: builtin/checkout.c:1361 builtin/checkout.c:1369 +#: builtin/checkout.c:1359 builtin/checkout.c:1367 #, c-format msgid "a branch is expected, got '%s'" msgstr "期望一個分支,得到 '%s'" -#: builtin/checkout.c:1364 +#: builtin/checkout.c:1362 #, c-format msgid "a branch is expected, got commit '%s'" msgstr "期望一個分支,得到æ交 '%s'" -#: builtin/checkout.c:1380 +#: builtin/checkout.c:1378 msgid "" "cannot switch branch while merging\n" "Consider \"git merge --quit\" or \"git worktree add\"." @@ -11577,7 +11680,7 @@ msgstr "" "ä¸èƒ½åœ¨åˆä½µæ™‚切æ›åˆ†æ”¯\n" "考慮使用 \"git merge --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1384 +#: builtin/checkout.c:1382 msgid "" "cannot switch branch in the middle of an am session\n" "Consider \"git am --quit\" or \"git worktree add\"." @@ -11585,7 +11688,7 @@ msgstr "" "ä¸èƒ½åœ¨ am 工作階段期間切æ›åˆ†æ”¯\n" "考慮使用 \"git am --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1388 +#: builtin/checkout.c:1386 msgid "" "cannot switch branch while rebasing\n" "Consider \"git rebase --quit\" or \"git worktree add\"." @@ -11593,7 +11696,7 @@ msgstr "" "ä¸èƒ½åœ¨é‡å®šåŸºåº•æ™‚切æ›åˆ†æ”¯\n" "考慮使用 \"git rebase --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1392 +#: builtin/checkout.c:1390 msgid "" "cannot switch branch while cherry-picking\n" "Consider \"git cherry-pick --quit\" or \"git worktree add\"." @@ -11601,7 +11704,7 @@ msgstr "" "ä¸èƒ½åœ¨æ€é¸æ™‚切æ›åˆ†æ”¯\n" "考慮使用 \"git cherry-pick --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1396 +#: builtin/checkout.c:1394 msgid "" "cannot switch branch while reverting\n" "Consider \"git revert --quit\" or \"git worktree add\"." @@ -11609,213 +11712,214 @@ msgstr "" "ä¸èƒ½åœ¨é‚„原時切æ›åˆ†æ”¯\n" "考慮使用 \"git revert --quit\" 或 \"git worktree add\"。" -#: builtin/checkout.c:1400 +#: builtin/checkout.c:1398 msgid "you are switching branch while bisecting" msgstr "您在執行二分尋找時切æ›åˆ†æ”¯" -#: builtin/checkout.c:1407 +#: builtin/checkout.c:1405 msgid "paths cannot be used with switching branches" msgstr "路徑ä¸èƒ½å’Œåˆ‡æ›åˆ†æ”¯åŒæ™‚使用" -#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418 +#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' ä¸èƒ½å’Œåˆ‡æ›åˆ†æ”¯åŒæ™‚使用" -#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428 -#: builtin/checkout.c:1433 builtin/checkout.c:1438 +#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426 +#: builtin/checkout.c:1431 builtin/checkout.c:1436 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' ä¸èƒ½å’Œ '%s' åŒæ™‚使用" -#: builtin/checkout.c:1435 +#: builtin/checkout.c:1433 #, c-format msgid "'%s' cannot take <start-point>" msgstr "'%s' ä¸å¸¶ <起始點>" -#: builtin/checkout.c:1443 +#: builtin/checkout.c:1441 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "ä¸èƒ½åˆ‡æ›åˆ†æ”¯åˆ°ä¸€å€‹éžæ交 '%s'" -#: builtin/checkout.c:1450 +#: builtin/checkout.c:1448 msgid "missing branch or commit argument" msgstr "缺少分支或æ交åƒæ•¸" -#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80 -#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288 +#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82 +#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561 #: builtin/send-pack.c:173 msgid "force progress reporting" msgstr "å¼·åˆ¶é¡¯ç¤ºé€²åº¦å ±å‘Š" -#: builtin/checkout.c:1493 +#: builtin/checkout.c:1491 msgid "perform a 3-way merge with the new branch" msgstr "和新的分支執行三方åˆä½µ" -#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322 +#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322 msgid "style" msgstr "é¢¨æ ¼" -#: builtin/checkout.c:1495 +#: builtin/checkout.c:1493 msgid "conflict style (merge or diff3)" msgstr "è¡çªè¼¸å‡ºé¢¨æ ¼ï¼ˆmerge 或 diff3)" -#: builtin/checkout.c:1507 builtin/worktree.c:499 +#: builtin/checkout.c:1505 builtin/worktree.c:558 msgid "detach HEAD at named commit" msgstr "HEAD 從指定的æ交分離" -#: builtin/checkout.c:1508 +#: builtin/checkout.c:1506 msgid "set upstream info for new branch" msgstr "為新的分支è¨å®šä¸Šæ¸¸è¨Šæ¯" -#: builtin/checkout.c:1510 +#: builtin/checkout.c:1508 msgid "force checkout (throw away local modifications)" msgstr "強制檢出(æ¨æ£„本機修改)" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new-branch" msgstr "新分支" -#: builtin/checkout.c:1512 +#: builtin/checkout.c:1510 msgid "new unparented branch" msgstr "新的沒有父æ交的分支" -#: builtin/checkout.c:1514 builtin/merge.c:292 +#: builtin/checkout.c:1512 builtin/merge.c:292 msgid "update ignored files (default)" msgstr "更新忽略的檔案(é è¨ï¼‰" -#: builtin/checkout.c:1517 +#: builtin/checkout.c:1515 msgid "do not check if another worktree is holding the given ref" msgstr "ä¸æª¢æŸ¥æŒ‡å®šçš„引用是å¦è¢«å…¶ä»–工作å€æ‰€å 用" -#: builtin/checkout.c:1530 +#: builtin/checkout.c:1528 msgid "checkout our version for unmerged files" msgstr "å°å°šæœªåˆä½µçš„檔案檢出我們的版本" -#: builtin/checkout.c:1533 +#: builtin/checkout.c:1531 msgid "checkout their version for unmerged files" msgstr "å°å°šæœªåˆä½µçš„檔案檢出他們的版本" -#: builtin/checkout.c:1537 +#: builtin/checkout.c:1535 msgid "do not limit pathspecs to sparse entries only" msgstr "å°è·¯å¾‘ä¸åšç¨€ç–檢出的é™åˆ¶" -#: builtin/checkout.c:1592 +#: builtin/checkout.c:1590 #, c-format msgid "-%c, -%c and --orphan are mutually exclusive" msgstr "-%cã€-%c å’Œ --orphan 是互斥的" -#: builtin/checkout.c:1596 +#: builtin/checkout.c:1594 msgid "-p and --overlay are mutually exclusive" msgstr "-p å’Œ --overlay 互斥" -#: builtin/checkout.c:1633 +#: builtin/checkout.c:1631 msgid "--track needs a branch name" msgstr "--track 需è¦ä¸€å€‹åˆ†æ”¯å" -#: builtin/checkout.c:1638 +#: builtin/checkout.c:1636 #, c-format msgid "missing branch name; try -%c" msgstr "缺少分支å稱,請嘗試 -%c" -#: builtin/checkout.c:1670 +#: builtin/checkout.c:1668 #, c-format msgid "could not resolve %s" msgstr "ç„¡æ³•è§£æž %s" -#: builtin/checkout.c:1686 +#: builtin/checkout.c:1684 msgid "invalid path specification" msgstr "無效的路徑è¦æ ¼" -#: builtin/checkout.c:1693 +#: builtin/checkout.c:1691 #, c-format msgid "'%s' is not a commit and a branch '%s' cannot be created from it" msgstr "'%s' ä¸æ˜¯ä¸€å€‹æ交,ä¸èƒ½åŸºæ–¼å®ƒå»ºç«‹åˆ†æ”¯ '%s'" -#: builtin/checkout.c:1697 +#: builtin/checkout.c:1695 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout:--detach ä¸èƒ½æŽ¥æ”¶è·¯å¾‘åƒæ•¸ '%s'" -#: builtin/checkout.c:1706 +#: builtin/checkout.c:1704 msgid "--pathspec-from-file is incompatible with --detach" msgstr "--pathspec-from-file 與 --detach ä¸ç›¸å®¹" -#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503 +#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503 msgid "--pathspec-from-file is incompatible with --patch" msgstr "--pathspec-from-file 與 --patch ä¸ç›¸å®¹" -#: builtin/checkout.c:1720 +#: builtin/checkout.c:1718 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." msgstr "" "git checkout:在從索引檢出時,--ours/--theirsã€--force å’Œ --merge ä¸ç›¸å®¹ã€‚" -#: builtin/checkout.c:1725 +#: builtin/checkout.c:1723 msgid "you must specify path(s) to restore" msgstr "æ‚¨å¿…é ˆæŒ‡å®šä¸€å€‹è¦å¾©åŽŸçš„路徑" -#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802 -#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170 -#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497 +#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800 +#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170 +#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554 +#: builtin/worktree.c:556 msgid "branch" msgstr "分支" -#: builtin/checkout.c:1752 +#: builtin/checkout.c:1750 msgid "create and checkout a new branch" msgstr "建立並檢出一個新的分支" -#: builtin/checkout.c:1754 +#: builtin/checkout.c:1752 msgid "create/reset and checkout a branch" msgstr "建立/é‡è¨ä¸¦æª¢å‡ºä¸€å€‹åˆ†æ”¯" -#: builtin/checkout.c:1755 +#: builtin/checkout.c:1753 msgid "create reflog for new branch" msgstr "為新的分支建立引用日誌" -#: builtin/checkout.c:1757 +#: builtin/checkout.c:1755 msgid "second guess 'git checkout <no-such-branch>' (default)" msgstr "二次猜測 'git checkout <ç„¡æ¤åˆ†æ”¯>'(é è¨ï¼‰" -#: builtin/checkout.c:1758 +#: builtin/checkout.c:1756 msgid "use overlay mode (default)" msgstr "ä½¿ç”¨ç–ŠåŠ æ¨¡å¼ï¼ˆé è¨ï¼‰" -#: builtin/checkout.c:1803 +#: builtin/checkout.c:1801 msgid "create and switch to a new branch" msgstr "建立並切æ›ä¸€å€‹æ–°åˆ†æ”¯" -#: builtin/checkout.c:1805 +#: builtin/checkout.c:1803 msgid "create/reset and switch to a branch" msgstr "建立/é‡è¨ä¸¦åˆ‡æ›ä¸€å€‹åˆ†æ”¯" -#: builtin/checkout.c:1807 +#: builtin/checkout.c:1805 msgid "second guess 'git switch <no-such-branch>'" msgstr "二次猜測 'git switch <ç„¡æ¤åˆ†æ”¯>'" -#: builtin/checkout.c:1809 +#: builtin/checkout.c:1807 msgid "throw away local modifications" msgstr "æ¨æ£„本機修改" -#: builtin/checkout.c:1843 +#: builtin/checkout.c:1841 msgid "which tree-ish to checkout from" msgstr "è¦æª¢å‡ºå“ªä¸€å€‹æ¨¹" -#: builtin/checkout.c:1845 +#: builtin/checkout.c:1843 msgid "restore the index" msgstr "復原索引" -#: builtin/checkout.c:1847 +#: builtin/checkout.c:1845 msgid "restore the working tree (default)" msgstr "復原工作å€ï¼ˆé è¨ï¼‰" -#: builtin/checkout.c:1849 +#: builtin/checkout.c:1847 msgid "ignore unmerged entries" msgstr "忽略未åˆä½µæ¢ç›®" -#: builtin/checkout.c:1850 +#: builtin/checkout.c:1848 msgid "use overlay mode" msgstr "ä½¿ç”¨ç–ŠåŠ æ¨¡å¼" @@ -11977,24 +12081,24 @@ msgstr "也刪除忽略的檔案" msgid "remove only ignored files" msgstr "åªåˆªé™¤å¿½ç•¥çš„檔案" -#: builtin/clean.c:931 -msgid "-x and -X cannot be used together" -msgstr "-x å’Œ -X ä¸èƒ½åŒæ™‚使用" - -#: builtin/clean.c:935 +#: builtin/clean.c:929 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" msgstr "" "clean.requireForce è¨å®šç‚º true 且未æä¾› -iã€-n 或 -f é¸é …,拒絕執行清ç†å‹•ä½œ" -#: builtin/clean.c:938 +#: builtin/clean.c:932 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" msgstr "" "clean.requireForce é è¨ç‚º true 且未æä¾› -iã€-n 或 -f é¸é …,拒絕執行清ç†å‹•ä½œ" +#: builtin/clean.c:944 +msgid "-x and -X cannot be used together" +msgstr "-x å’Œ -X ä¸èƒ½åŒæ™‚使用" + #: builtin/clone.c:45 msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<é¸é …>] [--] <版本庫> [<路徑>]" @@ -12003,7 +12107,7 @@ msgstr "git clone [<é¸é …>] [--] <版本庫> [<路徑>]" msgid "don't create a checkout" msgstr "ä¸å»ºç«‹ä¸€å€‹æª¢å‡º" -#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536 +#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554 msgid "create a bare repository" msgstr "建立一個純版本庫" @@ -12035,11 +12139,11 @@ msgstr "在複製時åˆå§‹åŒ–å模組" msgid "number of submodules cloned in parallel" msgstr "並發複製的å模組的數é‡" -#: builtin/clone.c:111 builtin/init-db.c:533 +#: builtin/clone.c:111 builtin/init-db.c:551 msgid "template-directory" msgstr "範本目錄" -#: builtin/clone.c:112 builtin/init-db.c:534 +#: builtin/clone.c:112 builtin/init-db.c:552 msgid "directory from which templates will be used" msgstr "範本目錄將被使用" @@ -12053,8 +12157,8 @@ msgstr "åƒè€ƒç‰ˆæœ¬åº«" msgid "use --reference only while cloning" msgstr "僅在複製時åƒè€ƒ --reference 指å‘的本機版本庫" -#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46 -#: builtin/pack-objects.c:3442 builtin/repack.c:329 +#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562 +#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329 msgid "name" msgstr "å稱" @@ -12079,7 +12183,7 @@ msgstr "深度" msgid "create a shallow clone of that depth" msgstr "建立一個指定深度的淺複製" -#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431 +#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503 #: builtin/pull.c:211 msgid "time" msgstr "時間" @@ -12110,11 +12214,11 @@ msgstr "ä¸è¦è¤‡è£½ä»»ä½•æ¨™ç±¤ï¼Œä¸¦ä¸”後續å–得動作也ä¸ä¸‹è¼‰å®ƒå€‘" msgid "any cloned submodules will be shallow" msgstr "å模組將以淺下載模å¼è¤‡è£½" -#: builtin/clone.c:137 builtin/init-db.c:542 +#: builtin/clone.c:137 builtin/init-db.c:560 msgid "gitdir" msgstr "git目錄" -#: builtin/clone.c:138 builtin/init-db.c:543 +#: builtin/clone.c:138 builtin/init-db.c:561 msgid "separate git dir from working tree" msgstr "git目錄和工作å€åˆ†é›¢" @@ -12241,7 +12345,7 @@ msgstr "無法執行 repack 來清ç†" msgid "cannot unlink temporary alternates file" msgstr "無法刪除暫時的 alternates 檔案" -#: builtin/clone.c:971 builtin/receive-pack.c:1972 +#: builtin/clone.c:971 builtin/receive-pack.c:1982 msgid "Too many arguments." msgstr "太多åƒæ•¸ã€‚" @@ -12258,83 +12362,83 @@ msgstr "--bare å’Œ --origin %s é¸é …ä¸ç›¸å®¹ã€‚" msgid "--bare and --separate-git-dir are incompatible." msgstr "--bare å’Œ --separate-git-dir é¸é …ä¸ç›¸å®¹ã€‚" -#: builtin/clone.c:1004 +#: builtin/clone.c:1007 #, c-format msgid "repository '%s' does not exist" msgstr "版本庫 '%s' ä¸å˜åœ¨" -#: builtin/clone.c:1010 builtin/fetch.c:1789 +#: builtin/clone.c:1011 builtin/fetch.c:1794 #, c-format msgid "depth %s is not a positive number" msgstr "深度 %s ä¸æ˜¯ä¸€å€‹æ£æ•¸" -#: builtin/clone.c:1020 +#: builtin/clone.c:1021 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "目標路徑 '%s' 已經å˜åœ¨ï¼Œä¸¦ä¸”ä¸æ˜¯ä¸€å€‹ç©ºç›®éŒ„。" -#: builtin/clone.c:1030 +#: builtin/clone.c:1033 #, c-format msgid "working tree '%s' already exists." msgstr "å·¥ä½œå€ '%s' 已經å˜åœ¨ã€‚" -#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271 -#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327 +#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271 +#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386 #, c-format msgid "could not create leading directories of '%s'" msgstr "ä¸èƒ½ç‚º '%s' 建立先導目錄" -#: builtin/clone.c:1050 +#: builtin/clone.c:1053 #, c-format msgid "could not create work tree dir '%s'" msgstr "ä¸èƒ½å»ºç«‹å·¥ä½œå€ç›®éŒ„ '%s'" -#: builtin/clone.c:1070 +#: builtin/clone.c:1073 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "複製到純版本庫 '%s'...\n" -#: builtin/clone.c:1072 +#: builtin/clone.c:1075 #, c-format msgid "Cloning into '%s'...\n" msgstr "æ£è¤‡è£½åˆ° '%s'...\n" -#: builtin/clone.c:1096 +#: builtin/clone.c:1099 msgid "" "clone --recursive is not compatible with both --reference and --reference-if-" "able" msgstr "clone --recursive å’Œ --reference ä»¥åŠ --reference-if-able ä¸ç›¸å®¹" -#: builtin/clone.c:1160 +#: builtin/clone.c:1164 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth 在本機複製時被忽略,請改用 file:// å”定。" -#: builtin/clone.c:1162 +#: builtin/clone.c:1166 msgid "--shallow-since is ignored in local clones; use file:// instead." msgstr "--shallow-since 在本機複製時被忽略,請改用 file:// å”定。" -#: builtin/clone.c:1164 +#: builtin/clone.c:1168 msgid "--shallow-exclude is ignored in local clones; use file:// instead." msgstr "--shallow-exclude 在本機複製時被忽略,請改用 file:// å”定。" -#: builtin/clone.c:1166 +#: builtin/clone.c:1170 msgid "--filter is ignored in local clones; use file:// instead." msgstr "--filter 在本機複製時被忽略,請改用 file:// å”定。" -#: builtin/clone.c:1169 +#: builtin/clone.c:1173 msgid "source repository is shallow, ignoring --local" msgstr "æºç‰ˆæœ¬åº«æ˜¯æ·ºè¤‡è£½ï¼Œå¿½ç•¥ --local" -#: builtin/clone.c:1174 +#: builtin/clone.c:1178 msgid "--local is ignored" msgstr "--local 被忽略" -#: builtin/clone.c:1249 builtin/clone.c:1257 +#: builtin/clone.c:1262 builtin/clone.c:1270 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "é 端分支 %s 在上游 %s 未發ç¾" -#: builtin/clone.c:1260 +#: builtin/clone.c:1273 msgid "You appear to have cloned an empty repository." msgstr "您似乎複製了一個空版本庫。" @@ -12370,14 +12474,14 @@ msgstr "兩列之間的填充空間" msgid "--command must be the first argument" msgstr "--command å¿…é ˆæ˜¯ç¬¬ä¸€å€‹åƒæ•¸" -#: builtin/commit-graph.c:11 builtin/commit-graph.c:19 +#: builtin/commit-graph.c:13 builtin/commit-graph.c:21 msgid "" "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]" msgstr "" "git commit-graph verify [--object-dir <物件目錄>] [--shallow] [--" "[no-]progress]" -#: builtin/commit-graph.c:12 builtin/commit-graph.c:24 +#: builtin/commit-graph.c:14 builtin/commit-graph.c:26 msgid "" "git commit-graph write [--object-dir <objdir>] [--append] [--" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" @@ -12387,79 +12491,88 @@ msgstr "" "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-" "paths] [--[no-]progress] <split options>" -#: builtin/commit-graph.c:60 +#: builtin/commit-graph.c:62 #, c-format msgid "could not find object directory matching %s" msgstr "找ä¸åˆ°ç¬¦åˆ %s 的物件目錄" -#: builtin/commit-graph.c:76 builtin/commit-graph.c:152 -#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678 +#: builtin/commit-graph.c:78 builtin/commit-graph.c:177 +#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678 msgid "dir" msgstr "目錄" -#: builtin/commit-graph.c:77 builtin/commit-graph.c:153 -#: builtin/commit-graph.c:258 +#: builtin/commit-graph.c:79 builtin/commit-graph.c:178 +#: builtin/commit-graph.c:277 msgid "The object directory to store the graph" msgstr "儲å˜åœ–形的物件目錄" -#: builtin/commit-graph.c:79 +#: builtin/commit-graph.c:81 msgid "if the commit-graph is split, only verify the tip file" msgstr "如果æ交圖形被分割,åªé©—è‰é 一個檔案" -#: builtin/commit-graph.c:102 +#: builtin/commit-graph.c:104 #, c-format msgid "Could not open commit-graph '%s'" msgstr "無法開啟æ交圖形 '%s'" -#: builtin/commit-graph.c:136 +#: builtin/commit-graph.c:138 #, c-format msgid "unrecognized --split argument, %s" msgstr "無法è˜åˆ¥çš„ --split åƒæ•¸ï¼Œ%s" -#: builtin/commit-graph.c:155 +#: builtin/commit-graph.c:151 +#, c-format +msgid "unexpected non-hex object ID: %s" +msgstr "éžæœŸæœ›çš„éžåå…進ä½ç‰©ä»¶ ID:%s" + +#: builtin/commit-graph.c:156 +#, c-format +msgid "invalid object: %s" +msgstr "物件無效:%s" + +#: builtin/commit-graph.c:180 msgid "start walk at all refs" msgstr "開始éæ·æ‰€æœ‰å¼•ç”¨" -#: builtin/commit-graph.c:157 +#: builtin/commit-graph.c:182 msgid "scan pack-indexes listed by stdin for commits" msgstr "從標準輸入ä¸çš„包索引檔案列表ä¸æŽƒææ交" -#: builtin/commit-graph.c:159 +#: builtin/commit-graph.c:184 msgid "start walk at commits listed by stdin" msgstr "從標準輸入ä¸çš„æ交開始掃æ" -#: builtin/commit-graph.c:161 +#: builtin/commit-graph.c:186 msgid "include all commits already in the commit-graph file" msgstr "åŒ…å« commit-graph 檔案ä¸å·²æœ‰æ‰€æœ‰æ交" -#: builtin/commit-graph.c:163 +#: builtin/commit-graph.c:188 msgid "enable computation for changed paths" msgstr "啟用已變更路徑的計算" -#: builtin/commit-graph.c:166 +#: builtin/commit-graph.c:191 msgid "allow writing an incremental commit-graph file" msgstr "å…許寫一個增é‡æ交圖形檔案" -#: builtin/commit-graph.c:170 +#: builtin/commit-graph.c:195 msgid "maximum number of commits in a non-base split commit-graph" msgstr "在éžåŸºæœ¬åˆ†å‰²æ交圖形ä¸çš„最大æ交數" -#: builtin/commit-graph.c:172 +#: builtin/commit-graph.c:197 msgid "maximum ratio between two levels of a split commit-graph" msgstr "一個分割æ交圖形的兩個級別之間的最大比率" -#: builtin/commit-graph.c:174 +#: builtin/commit-graph.c:199 msgid "only expire files older than a given date-time" msgstr "åªå°‡èˆŠæ–¼æŒ‡å®šæ—¥æœŸèˆ‡æ™‚間的檔案è¨ç‚ºéŽæœŸ" -#: builtin/commit-graph.c:190 +#: builtin/commit-graph.c:215 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs" msgstr "ä¸èƒ½åŒæ™‚使用 --reachableã€--stdin-commits 或 --stdin-packs" -#: builtin/commit-graph.c:229 -#, c-format -msgid "unexpected non-hex object ID: %s" -msgstr "éžæœŸæœ›çš„éžåå…進ä½ç‰©ä»¶ ID:%s" +#: builtin/commit-graph.c:245 +msgid "Collecting commits from input" +msgstr "æ£åœ¨å¾žè¼¸å…¥æ”¶é›†æ交" #: builtin/commit-tree.c:18 msgid "" @@ -12855,7 +12968,7 @@ msgid "version" msgstr "版本" #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549 -#: builtin/worktree.c:646 +#: builtin/worktree.c:722 msgid "machine-readable output" msgstr "機器å¯è®€çš„輸出" @@ -12868,8 +12981,8 @@ msgid "terminate entries with NUL" msgstr "æ¢ç›®ä»¥ NUL å—å…ƒçµå°¾" #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543 -#: builtin/fast-export.c:1153 builtin/fast-export.c:1156 -#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336 +#: builtin/fast-export.c:1199 builtin/fast-export.c:1202 +#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336 msgid "mode" msgstr "模å¼" @@ -13544,35 +13657,45 @@ msgstr "--dirty 與æ交號ä¸ç›¸å®¹" msgid "--broken is incompatible with commit-ishes" msgstr "--broken 與æ交號ä¸ç›¸å®¹" -#: builtin/diff.c:84 +#: builtin/diff.c:91 #, c-format msgid "'%s': not a regular file or symlink" msgstr "'%s':ä¸æ˜¯ä¸€å€‹æ£è¦æª”案或符號連çµ" -#: builtin/diff.c:235 +#: builtin/diff.c:242 #, c-format msgid "invalid option: %s" msgstr "無效é¸é …:%s" -#: builtin/diff.c:350 +#: builtin/diff.c:359 +#, c-format +msgid "%s...%s: no merge base" +msgstr "%s...%s: ç„¡åˆä½µåŸºåº•" + +#: builtin/diff.c:469 msgid "Not a git repository" msgstr "ä¸æ˜¯ä¸€å€‹ git 版本庫" -#: builtin/diff.c:394 +#: builtin/diff.c:514 #, c-format msgid "invalid object '%s' given." msgstr "æ供了無效物件 '%s'。" -#: builtin/diff.c:403 +#: builtin/diff.c:525 #, c-format msgid "more than two blobs given: '%s'" msgstr "æ供了超éŽå…©å€‹è³‡æ–™ç‰©ä»¶ï¼š'%s'" -#: builtin/diff.c:408 +#: builtin/diff.c:530 #, c-format msgid "unhandled object '%s' given." msgstr "無法處ç†çš„物件 '%s'。" +#: builtin/diff.c:564 +#, c-format +msgid "%s...%s: multiple merge bases, using %s" +msgstr "%s...%s:多個åˆä½µåŸºåº•ï¼Œä½¿ç”¨ %s" + #: builtin/difftool.c:30 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]" msgstr "git difftool [<é¸é …>] [<æ交> [<æ交>]] [--] [<路徑>...]" @@ -13717,82 +13840,103 @@ msgstr "é¸é … `--default' å’Œ `type=ulong` æœŸæœ›ä¸€å€‹ç„¡ç¬¦è™Ÿé•·æ•´åž‹ï¼Œä¸ msgid "git fast-export [rev-list-opts]" msgstr "git fast-export [rev-list-opts]" -#: builtin/fast-export.c:853 +#: builtin/fast-export.c:868 msgid "Error: Cannot export nested tags unless --mark-tags is specified." msgstr "錯誤:除éžæŒ‡å®š --mark-tags,å¦å‰‡ç„¡æ³•åŒ¯å‡ºåµŒå¥—標籤。" -#: builtin/fast-export.c:1152 +#: builtin/fast-export.c:1178 +msgid "--anonymize-map token cannot be empty" +msgstr "--anonymize-map çš„éµä¸èƒ½ç©ºç™½" + +#: builtin/fast-export.c:1198 msgid "show progress after <n> objects" msgstr "在 <n> 個物件之後顯示進度" -#: builtin/fast-export.c:1154 +#: builtin/fast-export.c:1200 msgid "select handling of signed tags" msgstr "é¸æ“‡å¦‚何處ç†ç°½å標籤" -#: builtin/fast-export.c:1157 +#: builtin/fast-export.c:1203 msgid "select handling of tags that tag filtered objects" msgstr "é¸æ“‡ç•¶æ¨™ç±¤æŒ‡å‘被éŽæ¿¾ç‰©ä»¶æ™‚該標籤的處ç†æ–¹å¼" -#: builtin/fast-export.c:1160 +#: builtin/fast-export.c:1206 msgid "select handling of commit messages in an alternate encoding" msgstr "é¸æ“‡ä½¿ç”¨å‚™ç”¨ç·¨ç¢¼è™•ç†æ交說明" -#: builtin/fast-export.c:1163 +#: builtin/fast-export.c:1209 msgid "Dump marks to this file" msgstr "把標記儲å˜åˆ°é€™å€‹æª”案" -#: builtin/fast-export.c:1165 +#: builtin/fast-export.c:1211 msgid "Import marks from this file" msgstr "從這個檔案匯入標記" -#: builtin/fast-export.c:1169 +#: builtin/fast-export.c:1215 msgid "Import marks from this file if it exists" msgstr "從該檔案匯入標記(如果å˜åœ¨çš„話)" -#: builtin/fast-export.c:1171 +#: builtin/fast-export.c:1217 msgid "Fake a tagger when tags lack one" msgstr "當標籤缺少標記者欄ä½æ™‚,å‡è£æ供一個" -#: builtin/fast-export.c:1173 +#: builtin/fast-export.c:1219 msgid "Output full tree for each commit" msgstr "æ¯æ¬¡æ交都輸出整個樹" -#: builtin/fast-export.c:1175 +#: builtin/fast-export.c:1221 msgid "Use the done feature to terminate the stream" msgstr "使用 done 功能來終æ¢æµ" -#: builtin/fast-export.c:1176 +#: builtin/fast-export.c:1222 msgid "Skip output of blob data" msgstr "è·³éŽè³‡æ–™ç‰©ä»¶çš„輸出" -#: builtin/fast-export.c:1177 builtin/log.c:1724 +#: builtin/fast-export.c:1223 builtin/log.c:1724 msgid "refspec" msgstr "åƒç…§è¦æ ¼" -#: builtin/fast-export.c:1178 +#: builtin/fast-export.c:1224 msgid "Apply refspec to exported refs" msgstr "å°åŒ¯å‡ºçš„引用應用引用è¦æ ¼" -#: builtin/fast-export.c:1179 +#: builtin/fast-export.c:1225 msgid "anonymize output" msgstr "匿å輸出" -#: builtin/fast-export.c:1181 +#: builtin/fast-export.c:1226 +msgid "from:to" +msgstr "from:to" + +#: builtin/fast-export.c:1227 +msgid "convert <from> to <to> in anonymized output" +msgstr "在匿å輸出ä¸å°‡ <from> 轉æ›ç‚º <to>" + +#: builtin/fast-export.c:1230 msgid "Reference parents which are not in fast-export stream by object id" msgstr "引用父物件 ID ä¸åœ¨ fast-export æµä¸" -#: builtin/fast-export.c:1183 +#: builtin/fast-export.c:1232 msgid "Show original object ids of blobs/commits" msgstr "顯示資料物件/æ交的原始物件 ID" -#: builtin/fast-export.c:1185 +#: builtin/fast-export.c:1234 msgid "Label tags with mark ids" msgstr "å°å¸¶æœ‰æ¨™è¨˜ ID 的標籤åšæ¨™è¨˜" -#: builtin/fast-export.c:1220 +#: builtin/fast-export.c:1257 +msgid "--anonymize-map without --anonymize does not make sense" +msgstr "缺少 --anonymize çš„ --anonymize-map 沒有æ„義" + +#: builtin/fast-export.c:1272 msgid "Cannot pass both --import-marks and --import-marks-if-exists" msgstr "ä¸èƒ½åŒæ™‚傳éžåƒæ•¸ --import-marks å’Œ --import-marks-if-exists" +#: builtin/fetch-pack.c:245 +#, c-format +msgid "Lockfile created but not reported: %s" +msgstr "å·²å»ºç«‹éŽ–å®šæª”æ¡ˆï¼Œä½†å°šæœªå›žå ±ï¼š%s" + #: builtin/fetch.c:35 msgid "git fetch [<options>] [<repository> [<refspec>...]]" msgstr "git fetch [<é¸é …>] [<版本庫> [<引用è¦æ ¼>...]]" @@ -14113,40 +14257,40 @@ msgstr "未指定é 端版本庫。請é€éŽä¸€å€‹ URL 或é 端版本庫å指å msgid "You need to specify a tag name." msgstr "您需è¦æŒ‡å®šä¸€å€‹æ¨™ç±¤å稱。" -#: builtin/fetch.c:1773 +#: builtin/fetch.c:1778 msgid "Negative depth in --deepen is not supported" msgstr "--deepen ä¸æ”¯æ´è² 數深度" -#: builtin/fetch.c:1775 +#: builtin/fetch.c:1780 msgid "--deepen and --depth are mutually exclusive" msgstr "--deepen å’Œ --depth 是互斥的" -#: builtin/fetch.c:1780 +#: builtin/fetch.c:1785 msgid "--depth and --unshallow cannot be used together" msgstr "--depth å’Œ --unshallow ä¸èƒ½åŒæ™‚使用" -#: builtin/fetch.c:1782 +#: builtin/fetch.c:1787 msgid "--unshallow on a complete repository does not make sense" msgstr "å°æ–¼ä¸€å€‹å®Œæ•´çš„版本庫,åƒæ•¸ --unshallow 沒有æ„義" -#: builtin/fetch.c:1798 +#: builtin/fetch.c:1800 msgid "fetch --all does not take a repository argument" msgstr "fetch --all ä¸èƒ½å¸¶ä¸€å€‹ç‰ˆæœ¬åº«åƒæ•¸" -#: builtin/fetch.c:1800 +#: builtin/fetch.c:1802 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all 帶引用è¦æ ¼æ²’有任何æ„義" -#: builtin/fetch.c:1809 +#: builtin/fetch.c:1811 #, c-format msgid "No such remote or remote group: %s" msgstr "沒有這樣的é 端或é 端組:%s" -#: builtin/fetch.c:1816 +#: builtin/fetch.c:1818 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "å–得組並指定引用è¦æ ¼æ²’有æ„義" -#: builtin/fetch.c:1834 +#: builtin/fetch.c:1836 msgid "" "--filter can only be used with the remote configured in extensions." "partialclone" @@ -14592,8 +14736,8 @@ msgstr "為 %2$s è¨å®šçš„執行緒數 (%1$d) 無效" #. variable for tweaking threads, currently #. grep.threads #. -#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730 -#: builtin/pack-objects.c:2855 +#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727 +#: builtin/pack-objects.c:2904 #, c-format msgid "no threads support, ignoring %s" msgstr "沒有執行緒支æ´ï¼Œå¿½ç•¥ %s" @@ -14823,11 +14967,11 @@ msgstr "--untracked ä¸æ”¯æ´èˆ‡ --recurse-submodules 一起使用" msgid "invalid option combination, ignoring --threads" msgstr "無效的é¸é …組åˆï¼Œå¿½ç•¥ --threads" -#: builtin/grep.c:1084 builtin/pack-objects.c:3548 +#: builtin/grep.c:1084 builtin/pack-objects.c:3623 msgid "no threads support, ignoring --threads" msgstr "沒有執行緒支æ´ï¼Œå¿½ç•¥ --threads" -#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852 +#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901 #, c-format msgid "invalid number of threads specified (%d)" msgstr "指定的執行緒數無效(%d)" @@ -15027,7 +15171,7 @@ msgstr "輸入上的讀錯誤" msgid "used more bytes than were available" msgstr "用掉了超éŽå¯ç”¨çš„ä½å…ƒçµ„" -#: builtin/index-pack.c:288 builtin/pack-objects.c:607 +#: builtin/index-pack.c:288 builtin/pack-objects.c:618 msgid "pack too large for current definition of off_t" msgstr "包太大超éŽäº†ç›®å‰ off_t 的定義" @@ -15097,8 +15241,8 @@ msgstr "解壓縮嚴é‡çš„ä¸ä¸€è‡´" msgid "SHA1 COLLISION FOUND WITH %s !" msgstr "ç™¼ç¾ %s å‡ºç¾ SHA1 è¡çªï¼" -#: builtin/index-pack.c:738 builtin/pack-objects.c:159 -#: builtin/pack-objects.c:219 builtin/pack-objects.c:314 +#: builtin/index-pack.c:738 builtin/pack-objects.c:170 +#: builtin/pack-objects.c:230 builtin/pack-objects.c:325 #, c-format msgid "unable to read %s" msgstr "ä¸èƒ½è®€ %s" @@ -15159,7 +15303,7 @@ msgstr "parse_pack_objects() ä¸é‡åˆ°ä¸å¯ç†å–»çš„å•é¡Œ" msgid "Resolving deltas" msgstr "è™•ç† delta ä¸" -#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616 +#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665 #, c-format msgid "unable to create thread: %s" msgstr "ä¸èƒ½å»ºç«‹åŸ·è¡Œç·’:%s" @@ -15222,56 +15366,65 @@ msgstr "無法儲å˜åŒ…檔案" msgid "cannot store index file" msgstr "無法儲å˜ç´¢å¼•æª”案" -#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863 +#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912 #, c-format msgid "bad pack.indexversion=%<PRIu32>" msgstr "壞的 pack.indexversion=%<PRIu32>" -#: builtin/index-pack.c:1596 +#: builtin/index-pack.c:1592 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "無法開啟ç¾å˜åŒ…檔案 '%s'" -#: builtin/index-pack.c:1598 +#: builtin/index-pack.c:1594 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "無法為 %s 開啟包索引檔案" -#: builtin/index-pack.c:1646 +#: builtin/index-pack.c:1642 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "éž delta:%d 個物件" -#: builtin/index-pack.c:1653 +#: builtin/index-pack.c:1649 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "éˆé•· = %d: %lu 物件" -#: builtin/index-pack.c:1692 +#: builtin/index-pack.c:1689 msgid "Cannot come back to cwd" msgstr "無法返回目å‰å·¥ä½œç›®éŒ„" -#: builtin/index-pack.c:1741 builtin/index-pack.c:1744 -#: builtin/index-pack.c:1760 builtin/index-pack.c:1764 +#: builtin/index-pack.c:1738 builtin/index-pack.c:1741 +#: builtin/index-pack.c:1757 builtin/index-pack.c:1761 #, c-format msgid "bad %s" msgstr "錯誤é¸é … %s" -#: builtin/index-pack.c:1780 +#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621 +#, c-format +msgid "unknown hash algorithm '%s'" +msgstr "未知的「%sã€é›œæ¹Šç®—法" + +#: builtin/index-pack.c:1782 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin ä¸èƒ½å’Œ --stdin åŒæ™‚使用" -#: builtin/index-pack.c:1782 +#: builtin/index-pack.c:1784 msgid "--stdin requires a git repository" msgstr "--stdin 需è¦ä¸€å€‹ git 版本庫" -#: builtin/index-pack.c:1788 +#: builtin/index-pack.c:1786 +msgid "--object-format cannot be used with --stdin" +msgstr "--object-format ä¸èƒ½å’Œ --stdin åŒæ™‚使用" + +#: builtin/index-pack.c:1792 msgid "--verify with no packfile name given" msgstr "--verify 沒有æä¾› packfile å稱åƒæ•¸" -#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582 +#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582 msgid "fsck error in pack objects" msgstr "åœ¨æ‰“åŒ…ç‰©ä»¶ä¸ fsck 檢查發生錯誤" @@ -15315,51 +15468,56 @@ msgstr "沒有在 %s ä¸æ‰¾åˆ°ç¯„本" msgid "not copying templates from '%s': %s" msgstr "沒有從 '%s' 複製範本:%s" -#: builtin/init-db.c:356 +#: builtin/init-db.c:276 +#, c-format +msgid "invalid initial branch name: '%s'" +msgstr "無效的åˆå§‹åˆ†æ”¯å稱:'%s'" + +#: builtin/init-db.c:368 #, c-format msgid "unable to handle file type %d" msgstr "ä¸èƒ½è™•ç† %d 類型的檔案" -#: builtin/init-db.c:359 +#: builtin/init-db.c:371 #, c-format msgid "unable to move %s to %s" msgstr "ä¸èƒ½ç§»å‹• %s 至 %s" -#: builtin/init-db.c:374 +#: builtin/init-db.c:386 msgid "attempt to reinitialize repository with different hash" msgstr "嘗試以ä¸åŒçš„雜湊值é‡æ–°åˆå§‹åŒ–版本庫" -#: builtin/init-db.c:380 builtin/init-db.c:601 -#, c-format -msgid "unknown hash algorithm '%s'" -msgstr "未知的「%sã€é›œæ¹Šç®—法" - -#: builtin/init-db.c:397 builtin/init-db.c:400 +#: builtin/init-db.c:410 builtin/init-db.c:413 #, c-format msgid "%s already exists" msgstr "%s 已經å˜åœ¨" -#: builtin/init-db.c:458 +#: builtin/init-db.c:444 +#, c-format +msgid "re-init: ignored --initial-branch=%s" +msgstr "re-init: 忽略 --initial-branch=%s" + +#: builtin/init-db.c:475 #, c-format msgid "Reinitialized existing shared Git repository in %s%s\n" msgstr "é‡æ–°åˆå§‹åŒ–å·²å˜åœ¨çš„共享 Git 版本庫於 %s%s\n" -#: builtin/init-db.c:459 +#: builtin/init-db.c:476 #, c-format msgid "Reinitialized existing Git repository in %s%s\n" msgstr "é‡æ–°åˆå§‹åŒ–å·²å˜åœ¨çš„ Git 版本庫於 %s%s\n" -#: builtin/init-db.c:463 +#: builtin/init-db.c:480 #, c-format msgid "Initialized empty shared Git repository in %s%s\n" msgstr "å·²åˆå§‹åŒ–空的共享 Git 版本庫於 %s%s\n" -#: builtin/init-db.c:464 +#: builtin/init-db.c:481 #, c-format msgid "Initialized empty Git repository in %s%s\n" msgstr "å·²åˆå§‹åŒ–空的 Git 版本庫於 %s%s\n" -#: builtin/init-db.c:513 +#: builtin/init-db.c:530 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -15367,40 +15525,44 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<範本目錄>] [--shared[=<權é™>]] " "[<目錄>]" -#: builtin/init-db.c:538 +#: builtin/init-db.c:556 msgid "permissions" msgstr "權é™" -#: builtin/init-db.c:539 +#: builtin/init-db.c:557 msgid "specify that the git repository is to be shared amongst several users" msgstr "指定 git 版本庫是多個使用者之間共享的" -#: builtin/init-db.c:544 +#: builtin/init-db.c:563 +msgid "override the name of the initial branch" +msgstr "覆蓋åˆå§‹åˆ†æ”¯çš„å稱" + +#: builtin/init-db.c:564 msgid "hash" msgstr "雜湊" -#: builtin/init-db.c:545 +#: builtin/init-db.c:565 builtin/show-index.c:22 msgid "specify the hash algorithm to use" msgstr "指定è¦ä½¿ç”¨çš„雜湊算法" -#: builtin/init-db.c:578 builtin/init-db.c:583 +#: builtin/init-db.c:598 builtin/init-db.c:603 #, c-format msgid "cannot mkdir %s" msgstr "ä¸èƒ½å»ºç«‹ç›®éŒ„ %s" -#: builtin/init-db.c:587 +#: builtin/init-db.c:607 #, c-format msgid "cannot chdir to %s" msgstr "ä¸èƒ½åˆ‡æ›ç›®éŒ„到 %s" -#: builtin/init-db.c:614 +#: builtin/init-db.c:634 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" "dir=<directory>)" msgstr "ä¸å…許 %s(或 --work-tree=<目錄>)而沒有指定 %s(或 --git-dir=<目錄>)" -#: builtin/init-db.c:642 +#: builtin/init-db.c:662 #, c-format msgid "Cannot access work tree '%s'" msgstr "ä¸èƒ½å˜å–å·¥ä½œå€ '%s'" @@ -17119,7 +17281,7 @@ msgstr "嘗試刪除ä¸å˜åœ¨çš„註解ä¸æ˜¯ä¸€å€‹éŒ¯èª¤" msgid "read object names from the standard input" msgstr "從標準輸入讀å–物件å稱" -#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164 +#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220 msgid "do not remove, show only" msgstr "ä¸åˆªé™¤ï¼Œåªé¡¯ç¤º" @@ -17150,101 +17312,116 @@ msgid "" "git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]" msgstr "git pack-objects [<é¸é …>...] <å‰ç¶´å稱> [< <引用列表> | < <物件列表>]" -#: builtin/pack-objects.c:431 +#: builtin/pack-objects.c:442 #, c-format msgid "bad packed object CRC for %s" msgstr "%s 錯的包物件 CRC" -#: builtin/pack-objects.c:442 +#: builtin/pack-objects.c:453 #, c-format msgid "corrupt packed object for %s" msgstr "%s æ壞的包物件" -#: builtin/pack-objects.c:573 +#: builtin/pack-objects.c:584 #, c-format msgid "recursive delta detected for object %s" msgstr "發ç¾ç‰©ä»¶ %s éžè¿´ delta" -#: builtin/pack-objects.c:784 +#: builtin/pack-objects.c:795 #, c-format msgid "ordered %u objects, expected %<PRIu32>" msgstr "排åºäº† %u 個物件,é 期 %<PRIu32> 個" -#: builtin/pack-objects.c:973 +#: builtin/pack-objects.c:1003 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit" msgstr "åœç”¨ bitmap å¯«å…¥ï¼Œå› ç‚º pack.packSizeLimit è¨å®šä½¿å¾—包被切分為多個" -#: builtin/pack-objects.c:986 +#: builtin/pack-objects.c:1016 msgid "Writing objects" msgstr "寫入物件ä¸" -#: builtin/pack-objects.c:1047 builtin/update-index.c:90 +#: builtin/pack-objects.c:1077 builtin/update-index.c:90 #, c-format msgid "failed to stat %s" msgstr "å° %s å‘¼å« stat 失敗" -#: builtin/pack-objects.c:1100 +#: builtin/pack-objects.c:1130 #, c-format msgid "wrote %<PRIu32> objects while expecting %<PRIu32>" msgstr "寫入 %<PRIu32> 個物件而é 期 %<PRIu32> 個" -#: builtin/pack-objects.c:1298 +#: builtin/pack-objects.c:1347 msgid "disabling bitmap writing, as some objects are not being packed" msgstr "åœç”¨ bitmap å¯«å…¥ï¼Œå› ç‚ºä¸€äº›ç‰©ä»¶å°‡ä¸æœƒè¢«æ‰“包" -#: builtin/pack-objects.c:1725 +#: builtin/pack-objects.c:1774 #, c-format msgid "delta base offset overflow in pack for %s" msgstr "%s å£“ç¸®ä¸ delta 基準ä½ç§»è¶Šç•Œ" -#: builtin/pack-objects.c:1734 +#: builtin/pack-objects.c:1783 #, c-format msgid "delta base offset out of bound for %s" msgstr "%s çš„ delta 基準ä½ç§»è¶Šç•Œ" -#: builtin/pack-objects.c:2005 +#: builtin/pack-objects.c:2054 msgid "Counting objects" msgstr "物件計數ä¸" -#: builtin/pack-objects.c:2150 +#: builtin/pack-objects.c:2199 #, c-format msgid "unable to parse object header of %s" msgstr "無法解æžç‰©ä»¶ %s 標é 訊æ¯" -#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236 -#: builtin/pack-objects.c:2246 +#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285 +#: builtin/pack-objects.c:2295 #, c-format msgid "object %s cannot be read" msgstr "物件 %s 無法讀å–" -#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250 +#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299 #, c-format msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)" msgstr "物件 %s ä¸ä¸€è‡´çš„物件長度(%<PRIuMAX> vs %<PRIuMAX>)" -#: builtin/pack-objects.c:2260 +#: builtin/pack-objects.c:2309 msgid "suboptimal pack - out of memory" msgstr "次優(suboptimal)打包 - 記憶體ä¸è¶³" -#: builtin/pack-objects.c:2575 +#: builtin/pack-objects.c:2624 #, c-format msgid "Delta compression using up to %d threads" msgstr "使用 %d 個執行緒進行壓縮" -#: builtin/pack-objects.c:2714 +#: builtin/pack-objects.c:2763 #, c-format msgid "unable to pack objects reachable from tag %s" msgstr "無法為標籤 %s 壓縮物件" -#: builtin/pack-objects.c:2802 +#: builtin/pack-objects.c:2851 msgid "Compressing objects" msgstr "壓縮物件ä¸" -#: builtin/pack-objects.c:2808 +#: builtin/pack-objects.c:2857 msgid "inconsistency with delta count" msgstr "ä¸ä¸€è‡´çš„差異計數" -#: builtin/pack-objects.c:2889 +#: builtin/pack-objects.c:2929 +#, c-format +msgid "" +"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-" +"hash> <uri>' (got '%s')" +msgstr "" +"uploadpack.blobpackfileuri çš„å€¼æ ¼å¼å¿…é ˆç‚º '<object-hash> <pack-hash> " +"<uri>' (收到 '%s')" + +#: builtin/pack-objects.c:2932 +#, c-format +msgid "" +"object already configured in another uploadpack.blobpackfileuri (got '%s')" +msgstr "物件已經在其他 uploadpack.blobpackfileuri è¨å®šéŽ (收到 '%s')" + +#: builtin/pack-objects.c:2961 #, c-format msgid "" "expected edge object ID, got garbage:\n" @@ -17253,7 +17430,7 @@ msgstr "" "é 期邊界物件(edge object)ID,å»å¾—到垃圾資料:\n" " %s" -#: builtin/pack-objects.c:2895 +#: builtin/pack-objects.c:2967 #, c-format msgid "" "expected object ID, got garbage:\n" @@ -17262,226 +17439,234 @@ msgstr "" "é 期物件 ID,å»å¾—到垃圾資料:\n" " %s" -#: builtin/pack-objects.c:2993 +#: builtin/pack-objects.c:3065 msgid "invalid value for --missing" msgstr "é¸é … --missing 的值無效" -#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160 +#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232 msgid "cannot open pack index" msgstr "無法開啟包檔案索引" -#: builtin/pack-objects.c:3083 +#: builtin/pack-objects.c:3155 #, c-format msgid "loose object at %s could not be examined" msgstr "無法檢查 %s 處的鬆散物件" -#: builtin/pack-objects.c:3168 +#: builtin/pack-objects.c:3240 msgid "unable to force loose object" msgstr "無法強制鬆散物件" -#: builtin/pack-objects.c:3261 +#: builtin/pack-objects.c:3333 #, c-format msgid "not a rev '%s'" msgstr "ä¸æ˜¯ä¸€å€‹ç‰ˆæœ¬ '%s'" -#: builtin/pack-objects.c:3264 +#: builtin/pack-objects.c:3336 #, c-format msgid "bad revision '%s'" msgstr "壞的版本 '%s'" -#: builtin/pack-objects.c:3289 +#: builtin/pack-objects.c:3361 msgid "unable to add recent objects" msgstr "無法新增最近的物件" -#: builtin/pack-objects.c:3342 +#: builtin/pack-objects.c:3414 #, c-format msgid "unsupported index version %s" msgstr "ä¸æ”¯æ´çš„索引版本 %s" -#: builtin/pack-objects.c:3346 +#: builtin/pack-objects.c:3418 #, c-format msgid "bad index version '%s'" msgstr "壞的索引版本 '%s'" -#: builtin/pack-objects.c:3384 +#: builtin/pack-objects.c:3456 msgid "<version>[,<offset>]" msgstr "<版本>[,<ä½ç§»>]" -#: builtin/pack-objects.c:3385 +#: builtin/pack-objects.c:3457 msgid "write the pack index file in the specified idx format version" msgstr "用指定的 idx æ ¼å¼ç‰ˆæœ¬ä¾†å¯«åŒ…索引檔案" -#: builtin/pack-objects.c:3388 +#: builtin/pack-objects.c:3460 msgid "maximum size of each output pack file" msgstr "æ¯å€‹è¼¸å‡ºåŒ…的最大尺寸" -#: builtin/pack-objects.c:3390 +#: builtin/pack-objects.c:3462 msgid "ignore borrowed objects from alternate object store" msgstr "忽略從備用物件儲å˜è£¡å€Ÿç”¨ç‰©ä»¶" -#: builtin/pack-objects.c:3392 +#: builtin/pack-objects.c:3464 msgid "ignore packed objects" msgstr "忽略包物件" -#: builtin/pack-objects.c:3394 +#: builtin/pack-objects.c:3466 msgid "limit pack window by objects" msgstr "é™åˆ¶æ‰“包視窗的物件數" -#: builtin/pack-objects.c:3396 +#: builtin/pack-objects.c:3468 msgid "limit pack window by memory in addition to object limit" msgstr "除物件數é‡é™åˆ¶å¤–è¨å®šæ‰“包視窗的記憶體é™åˆ¶" -#: builtin/pack-objects.c:3398 +#: builtin/pack-objects.c:3470 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "打包å…許的 delta éˆçš„最大長度" -#: builtin/pack-objects.c:3400 +#: builtin/pack-objects.c:3472 msgid "reuse existing deltas" msgstr "é‡ç”¨å·²å˜åœ¨çš„ deltas" -#: builtin/pack-objects.c:3402 +#: builtin/pack-objects.c:3474 msgid "reuse existing objects" msgstr "é‡ç”¨å·²å˜åœ¨çš„物件" -#: builtin/pack-objects.c:3404 +#: builtin/pack-objects.c:3476 msgid "use OFS_DELTA objects" msgstr "使用 OFS_DELTA 物件" -#: builtin/pack-objects.c:3406 +#: builtin/pack-objects.c:3478 msgid "use threads when searching for best delta matches" msgstr "使用執行緒查詢最佳 delta 符åˆ" -#: builtin/pack-objects.c:3408 +#: builtin/pack-objects.c:3480 msgid "do not create an empty pack output" msgstr "ä¸å»ºç«‹ç©ºçš„包輸出" -#: builtin/pack-objects.c:3410 +#: builtin/pack-objects.c:3482 msgid "read revision arguments from standard input" msgstr "從標準輸入讀å–版本號åƒæ•¸" -#: builtin/pack-objects.c:3412 +#: builtin/pack-objects.c:3484 msgid "limit the objects to those that are not yet packed" msgstr "é™åˆ¶é‚£äº›å°šæœªæ‰“包的物件" -#: builtin/pack-objects.c:3415 +#: builtin/pack-objects.c:3487 msgid "include objects reachable from any reference" msgstr "包括å¯ä»¥å¾žä»»ä½•å¼•ç”¨å˜å–到的物件" -#: builtin/pack-objects.c:3418 +#: builtin/pack-objects.c:3490 msgid "include objects referred by reflog entries" msgstr "包括被引用日誌引用到的物件" -#: builtin/pack-objects.c:3421 +#: builtin/pack-objects.c:3493 msgid "include objects referred to by the index" msgstr "包括被索引引用到的物件" -#: builtin/pack-objects.c:3424 +#: builtin/pack-objects.c:3496 msgid "output pack to stdout" msgstr "輸出包到標準輸出" -#: builtin/pack-objects.c:3426 +#: builtin/pack-objects.c:3498 msgid "include tag objects that refer to objects to be packed" msgstr "包括那些引用了待打包物件的標籤物件" -#: builtin/pack-objects.c:3428 +#: builtin/pack-objects.c:3500 msgid "keep unreachable objects" msgstr "ç¶æŒç„¡æ³•å–得的物件" -#: builtin/pack-objects.c:3430 +#: builtin/pack-objects.c:3502 msgid "pack loose unreachable objects" msgstr "打包鬆散的無法å–得物件" -#: builtin/pack-objects.c:3432 +#: builtin/pack-objects.c:3504 msgid "unpack unreachable objects newer than <time>" msgstr "將比æä¾› <時間> 新的無法å˜å–的物件解包" -#: builtin/pack-objects.c:3435 +#: builtin/pack-objects.c:3507 msgid "use the sparse reachability algorithm" msgstr "使用稀ç–å¯ä»¥å–得性演算法" -#: builtin/pack-objects.c:3437 +#: builtin/pack-objects.c:3509 msgid "create thin packs" msgstr "建立精簡包" -#: builtin/pack-objects.c:3439 +#: builtin/pack-objects.c:3511 msgid "create packs suitable for shallow fetches" msgstr "建立é©åˆæ·ºè¤‡è£½ç‰ˆæœ¬åº«å–得的包" -#: builtin/pack-objects.c:3441 +#: builtin/pack-objects.c:3513 msgid "ignore packs that have companion .keep file" msgstr "忽略é…有 .keep 檔案的包" -#: builtin/pack-objects.c:3443 +#: builtin/pack-objects.c:3515 msgid "ignore this pack" msgstr "忽略該 pack" -#: builtin/pack-objects.c:3445 +#: builtin/pack-objects.c:3517 msgid "pack compression level" msgstr "打包壓縮級別" -#: builtin/pack-objects.c:3447 +#: builtin/pack-objects.c:3519 msgid "do not hide commits by grafts" msgstr "顯示被移æ¤éš±è—çš„æ交" -#: builtin/pack-objects.c:3449 +#: builtin/pack-objects.c:3521 msgid "use a bitmap index if available to speed up counting objects" msgstr "使用 bitmap 索引(如果有的話)以æ高物件計數時的速度" -#: builtin/pack-objects.c:3451 +#: builtin/pack-objects.c:3523 msgid "write a bitmap index together with the pack index" msgstr "在建立包索引的åŒæ™‚建立 bitmap 索引" -#: builtin/pack-objects.c:3455 +#: builtin/pack-objects.c:3527 msgid "write a bitmap index if possible" msgstr "如果å¯èƒ½ï¼Œå¯« bitmap 索引" -#: builtin/pack-objects.c:3459 +#: builtin/pack-objects.c:3531 msgid "handling for missing objects" msgstr "處ç†éºå¤±çš„物件" -#: builtin/pack-objects.c:3462 +#: builtin/pack-objects.c:3534 msgid "do not pack objects in promisor packfiles" msgstr "ä¸è¦æ‰“包 promisor packfile ä¸çš„物件" -#: builtin/pack-objects.c:3464 +#: builtin/pack-objects.c:3536 msgid "respect islands during delta compression" msgstr "在增é‡å£“縮時åƒè€ƒè³‡æ–™å³¶" -#: builtin/pack-objects.c:3493 +#: builtin/pack-objects.c:3538 +msgid "protocol" +msgstr "通訊å”定" + +#: builtin/pack-objects.c:3539 +msgid "exclude any configured uploadpack.blobpackfileuri with this protocol" +msgstr "排除任何è¨å®šéŽï¼Œä½¿ç”¨æ¤é€šè¨Šå”定的 uploadpack.blobpackfileuri" + +#: builtin/pack-objects.c:3568 #, c-format msgid "delta chain depth %d is too deep, forcing %d" msgstr "增é‡éˆæ·±åº¦ %d 太深了,強制為 %d" -#: builtin/pack-objects.c:3498 +#: builtin/pack-objects.c:3573 #, c-format msgid "pack.deltaCacheLimit is too high, forcing %d" msgstr "è¨å®š pack.deltaCacheLimit 太高了,強制為 %d" -#: builtin/pack-objects.c:3552 +#: builtin/pack-objects.c:3627 msgid "--max-pack-size cannot be used to build a pack for transfer" msgstr "ä¸èƒ½ä½¿ç”¨ --max-pack-size 來組建傳輸用的包檔案" -#: builtin/pack-objects.c:3554 +#: builtin/pack-objects.c:3629 msgid "minimum pack size limit is 1 MiB" msgstr "最å°çš„包檔案大å°æ˜¯ 1 MiB" -#: builtin/pack-objects.c:3559 +#: builtin/pack-objects.c:3634 msgid "--thin cannot be used to build an indexable pack" msgstr "--thin ä¸èƒ½ç”¨æ–¼å»ºç«‹ä¸€å€‹å¯ç´¢å¼•åŒ…" -#: builtin/pack-objects.c:3562 +#: builtin/pack-objects.c:3637 msgid "--keep-unreachable and --unpack-unreachable are incompatible" msgstr "--keep-unreachable å’Œ --unpack-unreachable ä¸ç›¸å®¹" -#: builtin/pack-objects.c:3568 +#: builtin/pack-objects.c:3643 msgid "cannot use --filter without --stdout" msgstr "ä¸èƒ½åœ¨æ²’有 --stdout 的情æ³ä¸‹ä½¿ç”¨ --filter" -#: builtin/pack-objects.c:3628 +#: builtin/pack-objects.c:3703 msgid "Enumerating objects" msgstr "枚舉物件" -#: builtin/pack-objects.c:3658 +#: builtin/pack-objects.c:3734 #, c-format msgid "" "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-" @@ -18743,7 +18928,7 @@ msgstr "快轉 %s 到 %s。\n" msgid "git receive-pack <git-dir>" msgstr "git receive-pack <版本庫目錄>" -#: builtin/receive-pack.c:843 +#: builtin/receive-pack.c:844 msgid "" "By default, updating the current branch in a non-bare repository\n" "is denied, because it will make the index and work tree inconsistent\n" @@ -18769,7 +18954,7 @@ msgstr "" "è‹¥è¦å°éŽ–æ¤è¨Šæ¯ä¸”ä¿æŒé è¨è¡Œç‚ºï¼Œè¨å®š 'receive.denyCurrentBranch'\n" "è¨å®šè®Šæ•¸ç‚º 'refuse'。" -#: builtin/receive-pack.c:863 +#: builtin/receive-pack.c:864 msgid "" "By default, deleting the current branch is denied, because the next\n" "'git clone' won't result in any file checked out, causing confusion.\n" @@ -18788,11 +18973,11 @@ msgstr "" "\n" "è‹¥è¦å°éŽ–æ¤è¨Šæ¯ï¼Œæ‚¨å¯ä»¥è¨å®šå®ƒç‚º 'refuse'。" -#: builtin/receive-pack.c:1960 +#: builtin/receive-pack.c:1970 msgid "quiet" msgstr "éœé»˜æ¨¡å¼" -#: builtin/receive-pack.c:1974 +#: builtin/receive-pack.c:1984 msgid "You must specify a directory." msgstr "æ‚¨å¿…é ˆæŒ‡å®šä¸€å€‹ç›®éŒ„ã€‚" @@ -20314,6 +20499,14 @@ msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„引用。" msgid "cannot find commit %s (%s)" msgstr "ä¸èƒ½æ‰¾åˆ°æ交 %s(%s)" +#: builtin/show-index.c:21 +msgid "hash-algorithm" +msgstr "雜湊算法" + +#: builtin/show-index.c:31 +msgid "Unknown hash algorithm" +msgstr "未知的雜湊算法" + #: builtin/show-ref.c:12 msgid "" "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --" @@ -20366,50 +20559,54 @@ msgstr "git sparse-checkout (init|list|set|add|reapply|disable) <é¸é …>" msgid "this worktree is not sparse (sparse-checkout file may not exist)" msgstr "這ä¸æ˜¯ç¨€ç–工作å€ï¼ˆsparse-checkout 檔案å¯èƒ½ä¸å˜åœ¨ï¼‰" -#: builtin/sparse-checkout.c:212 +#: builtin/sparse-checkout.c:216 msgid "failed to create directory for sparse-checkout file" msgstr "無法建立稀ç–檢出檔案的目錄" -#: builtin/sparse-checkout.c:253 +#: builtin/sparse-checkout.c:257 +msgid "unable to upgrade repository format to enable worktreeConfig" +msgstr "無法å‡ç´šç‰ˆæœ¬åº«æ ¼å¼ï¼Œä»¥è‡´ç„¡æ³•å•Ÿç”¨ worktreeConfig" + +#: builtin/sparse-checkout.c:259 msgid "failed to set extensions.worktreeConfig setting" msgstr "無法è¨å®š extensions.worktreeConfig è¨å®š" -#: builtin/sparse-checkout.c:270 +#: builtin/sparse-checkout.c:276 msgid "git sparse-checkout init [--cone]" msgstr "git sparse-checkout init [--cone]" -#: builtin/sparse-checkout.c:289 +#: builtin/sparse-checkout.c:295 msgid "initialize the sparse-checkout in cone mode" msgstr "以 cone 模å¼åˆå§‹åŒ–稀ç–檢出" -#: builtin/sparse-checkout.c:326 +#: builtin/sparse-checkout.c:332 #, c-format msgid "failed to open '%s'" msgstr "無法開啟「%sã€" -#: builtin/sparse-checkout.c:383 +#: builtin/sparse-checkout.c:389 #, c-format msgid "could not normalize path %s" msgstr "無法標準化路徑 %s" -#: builtin/sparse-checkout.c:395 +#: builtin/sparse-checkout.c:401 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)" msgstr "git sparse-checkout (set|add) (--stdin | <樣å¼>)" -#: builtin/sparse-checkout.c:420 +#: builtin/sparse-checkout.c:426 #, c-format msgid "unable to unquote C-style string '%s'" msgstr "無法去掉 '%s' C 樣å¼å—串的引號" -#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498 +#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504 msgid "unable to load existing sparse-checkout patterns" msgstr "無法載入ç¾å˜çš„稀ç–檢出樣å¼" -#: builtin/sparse-checkout.c:543 +#: builtin/sparse-checkout.c:549 msgid "read patterns from standard in" msgstr "從標準輸入讀å–樣å¼" -#: builtin/sparse-checkout.c:580 +#: builtin/sparse-checkout.c:586 msgid "error while refreshing working directory" msgstr "é‡æ–°æ•´ç†å·¥ä½œç›®éŒ„時發生錯誤" @@ -21096,12 +21293,40 @@ msgstr "阻æ¢å模組è¨å®š URL 的輸出" msgid "git submodule--helper set-url [--quiet] <path> <newurl>" msgstr "git submodule--helper set-url [--quiet] <路徑> <æ–° URL>" -#: builtin/submodule--helper.c:2323 git.c:436 git.c:683 +#: builtin/submodule--helper.c:2294 +msgid "set the default tracking branch to master" +msgstr "å°‡é è¨çš„追蹤分支è¨ç‚º master" + +#: builtin/submodule--helper.c:2296 +msgid "set the default tracking branch" +msgstr "è¨å®šé è¨è¿½è¹¤åˆ†æ”¯" + +#: builtin/submodule--helper.c:2300 +#| msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]" +msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" + +#: builtin/submodule--helper.c:2301 +#| msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]" +msgid "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "" +"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" + +#: builtin/submodule--helper.c:2308 +msgid "--branch or --default required" +msgstr "éœ€è¦ --branch 或 --default" + +#: builtin/submodule--helper.c:2311 +msgid "--branch and --default are mutually exclusive" +msgstr "--branch 與 --default 互斥" + +#: builtin/submodule--helper.c:2367 git.c:436 git.c:683 #, c-format msgid "%s doesn't support --super-prefix" msgstr "%s ä¸æ”¯æ´ --super-prefix" -#: builtin/submodule--helper.c:2329 +#: builtin/submodule--helper.c:2373 #, c-format msgid "'%s' is not a valid submodule--helper subcommand" msgstr "'%s' ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„ submodule--helper å指令" @@ -21721,193 +21946,187 @@ msgstr "git worktree remove [<é¸é …>] <工作å€>" msgid "git worktree unlock <path>" msgstr "git worktree unlock <路徑>" -#: builtin/worktree.c:60 builtin/worktree.c:894 +#: builtin/worktree.c:60 builtin/worktree.c:972 #, c-format msgid "failed to delete '%s'" msgstr "刪除 '%s' 失敗" -#: builtin/worktree.c:79 -#, c-format -msgid "Removing worktrees/%s: not a valid directory" -msgstr "刪除工作å€/%s:ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„目錄" - #: builtin/worktree.c:85 -#, c-format -msgid "Removing worktrees/%s: gitdir file does not exist" -msgstr "刪除 worktrees/%s:gitdir 檔案ä¸å˜åœ¨" +msgid "not a valid directory" +msgstr "éžæœ‰æ•ˆç›®éŒ„" -#: builtin/worktree.c:90 builtin/worktree.c:99 -#, c-format -msgid "Removing worktrees/%s: unable to read gitdir file (%s)" -msgstr "刪除 worktrees/%sï¼šç„¡æ³•è®€å– gitdir 檔案 (%s)" +#: builtin/worktree.c:91 +msgid "gitdir file does not exist" +msgstr "找ä¸åˆ° gitdir 檔案" -#: builtin/worktree.c:109 +#: builtin/worktree.c:96 builtin/worktree.c:105 #, c-format -msgid "" -"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read " -"%<PRIuMAX>)" -msgstr "刪除工作樹/%s:讀å–éŽçŸï¼ˆæœŸæœ› %<PRIuMAX> ä½å…ƒçµ„ï¼Œè®€å– %<PRIuMAX>)" +msgid "unable to read gitdir file (%s)" +msgstr "ç„¡æ³•è®€å– gitdir 檔案 (%s)" -#: builtin/worktree.c:117 +#: builtin/worktree.c:115 #, c-format -msgid "Removing worktrees/%s: invalid gitdir file" -msgstr "刪除 worktrees/%s:無效的 gitdir 檔案" +msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)" +msgstr "讀å–éŽçŸï¼ˆé 期有 %<PRIuMAX> ä½å…ƒçµ„,åªè®€åˆ° %<PRIuMAX>)" + +#: builtin/worktree.c:123 +msgid "invalid gitdir file" +msgstr "gitdir 檔案無效" -#: builtin/worktree.c:126 +#: builtin/worktree.c:131 +msgid "gitdir file points to non-existent location" +msgstr "gitdir 檔案指å‘çš„ä½ç½®ä¸å˜åœ¨" + +#: builtin/worktree.c:146 #, c-format -msgid "Removing worktrees/%s: gitdir file points to non-existent location" -msgstr "刪除 worktrees/%s:gitdir 檔案的指å‘ä¸å˜åœ¨" +msgid "Removing %s/%s: %s" +msgstr "移除 %s/%s: %s" -#: builtin/worktree.c:165 +#: builtin/worktree.c:221 msgid "report pruned working trees" msgstr "å ±å‘Šæ¸…é™¤çš„å·¥ä½œå€" -#: builtin/worktree.c:167 +#: builtin/worktree.c:223 msgid "expire working trees older than <time>" msgstr "將早於 <時間> 的工作å€éŽæœŸ" -#: builtin/worktree.c:234 +#: builtin/worktree.c:293 #, c-format msgid "'%s' already exists" msgstr "'%s' 已經å˜åœ¨" -#: builtin/worktree.c:244 +#: builtin/worktree.c:302 #, c-format -msgid "unable to re-add worktree '%s'" -msgstr "無法å†æ¬¡æ–°å¢žå·¥ä½œå€ '%s'" +msgid "unusable worktree destination '%s'" +msgstr "無法使用的工作目錄目的地「%sã€" -#: builtin/worktree.c:249 +#: builtin/worktree.c:307 #, c-format msgid "" "'%s' is a missing but locked worktree;\n" -"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" +"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear" msgstr "" -"'%s' 是一個éºå¤±ä½†éŽ–定的工作å€ï¼Œä½¿ç”¨\n" -"'add -f -f' 覆蓋,或 'unlock' å’Œ 'prune' 或 'remove' 清除" +"'%s' 是個éºå¤±ä½†è¢«éŽ–定的工作å€ï¼›\n" +"使用 '%s -f -f' 覆蓋,或 'unlock' å’Œ 'prune' 或 'remove' 清除" -#: builtin/worktree.c:251 +#: builtin/worktree.c:309 #, c-format msgid "" "'%s' is a missing but already registered worktree;\n" -"use 'add -f' to override, or 'prune' or 'remove' to clear" +"use '%s -f' to override, or 'prune' or 'remove' to clear" msgstr "" -"'%s' 是一個éºå¤±ä½†å·²ç¶“註冊的工作å€ï¼Œä½¿ç”¨\n" -"'add -f' 覆蓋,或 'prune' 或 'remove' 清除" +"'%s' 是個éºå¤±ä½†å·²è¨»å†Šçš„工作å€ï¼›\n" +"使用 '%s -f' 覆蓋,或 'prune' 或 'remove' 清除" -#: builtin/worktree.c:301 +#: builtin/worktree.c:360 #, c-format msgid "could not create directory of '%s'" msgstr "ä¸èƒ½å»ºç«‹ç›®éŒ„ '%s'" -#: builtin/worktree.c:435 builtin/worktree.c:441 +#: builtin/worktree.c:494 builtin/worktree.c:500 #, c-format msgid "Preparing worktree (new branch '%s')" msgstr "準備工作å€ï¼ˆæ–°åˆ†æ”¯ '%s')" -#: builtin/worktree.c:437 +#: builtin/worktree.c:496 #, c-format msgid "Preparing worktree (resetting branch '%s'; was at %s)" msgstr "準備工作å€ï¼ˆé‡è¨åˆ†æ”¯ '%s',之å‰ç‚º %s)" -#: builtin/worktree.c:446 +#: builtin/worktree.c:505 #, c-format msgid "Preparing worktree (checking out '%s')" msgstr "準備工作å€ï¼ˆæª¢å‡º '%s')" -#: builtin/worktree.c:452 +#: builtin/worktree.c:511 #, c-format msgid "Preparing worktree (detached HEAD %s)" msgstr "準備工作å€ï¼ˆåˆ†é›¢é–‹é 指標 %s)" -#: builtin/worktree.c:493 +#: builtin/worktree.c:552 msgid "checkout <branch> even if already checked out in other worktree" msgstr "檢出 <分支>,å³ä½¿å·²ç¶“被檢出到其它工作å€" -#: builtin/worktree.c:496 +#: builtin/worktree.c:555 msgid "create a new branch" msgstr "建立一個新分支" -#: builtin/worktree.c:498 +#: builtin/worktree.c:557 msgid "create or reset a branch" msgstr "建立或é‡è¨ä¸€å€‹åˆ†æ”¯" -#: builtin/worktree.c:500 +#: builtin/worktree.c:559 msgid "populate the new working tree" msgstr "生æˆæ–°çš„工作å€" -#: builtin/worktree.c:501 +#: builtin/worktree.c:560 msgid "keep the new working tree locked" msgstr "鎖定新工作å€" -#: builtin/worktree.c:504 +#: builtin/worktree.c:563 msgid "set up tracking mode (see git-branch(1))" msgstr "è¨å®šè¿½è¹¤æ¨¡å¼ï¼ˆåƒè¦‹ git-branch(1))" -#: builtin/worktree.c:507 +#: builtin/worktree.c:566 msgid "try to match the new branch name with a remote-tracking branch" msgstr "嘗試為新分支å符åˆä¸€å€‹é 端追蹤分支" -#: builtin/worktree.c:515 +#: builtin/worktree.c:574 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-bã€-B å’Œ --detach 是互斥的" -#: builtin/worktree.c:576 +#: builtin/worktree.c:635 msgid "--[no-]track can only be used if a new branch is created" msgstr "åªèƒ½åœ¨å»ºç«‹æ–°åˆ†æ”¯æ™‚使用 --[no-]track é¸é …" -#: builtin/worktree.c:676 +#: builtin/worktree.c:755 msgid "reason for locking" msgstr "éŽ–å®šåŽŸå› " -#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795 -#: builtin/worktree.c:922 +#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874 +#: builtin/worktree.c:1000 #, c-format msgid "'%s' is not a working tree" msgstr "'%s' ä¸æ˜¯ä¸€å€‹å·¥ä½œå€" -#: builtin/worktree.c:690 builtin/worktree.c:723 +#: builtin/worktree.c:769 builtin/worktree.c:802 msgid "The main working tree cannot be locked or unlocked" msgstr "主工作å€ç„¡æ³•è¢«åŠ 鎖或解鎖" -#: builtin/worktree.c:695 +#: builtin/worktree.c:774 #, c-format msgid "'%s' is already locked, reason: %s" msgstr "'%s' å·²è¢«éŽ–å®šï¼ŒåŽŸå› ï¼š%s" -#: builtin/worktree.c:697 +#: builtin/worktree.c:776 #, c-format msgid "'%s' is already locked" msgstr "'%s' 已被鎖定" -#: builtin/worktree.c:725 +#: builtin/worktree.c:804 #, c-format msgid "'%s' is not locked" msgstr "'%s' 未被鎖定" -#: builtin/worktree.c:766 +#: builtin/worktree.c:845 msgid "working trees containing submodules cannot be moved or removed" msgstr "ä¸èƒ½ç§»å‹•æˆ–刪除包å«å模組的工作å€" -#: builtin/worktree.c:774 +#: builtin/worktree.c:853 msgid "force move even if worktree is dirty or locked" msgstr "強制移動,å³ä½¿å·¥ä½œå€æ˜¯é«’的或已鎖定" -#: builtin/worktree.c:797 builtin/worktree.c:924 +#: builtin/worktree.c:876 builtin/worktree.c:1002 #, c-format msgid "'%s' is a main working tree" msgstr "'%s' 是一個主工作å€" -#: builtin/worktree.c:802 +#: builtin/worktree.c:881 #, c-format msgid "could not figure out destination name from '%s'" msgstr "無法從 '%s' 算出目標å稱" -#: builtin/worktree.c:808 -#, c-format -msgid "target '%s' already exists" -msgstr "目標 '%s' å·²å˜åœ¨" - -#: builtin/worktree.c:816 +#: builtin/worktree.c:894 #, c-format msgid "" "cannot move a locked working tree, lock reason: %s\n" @@ -21916,7 +22135,7 @@ msgstr "" "無法移動一個鎖定的工作å€ï¼ŒéŽ–å®šåŽŸå› ï¼š%s\n" "使用 'move -f -f' 覆蓋或先解鎖" -#: builtin/worktree.c:818 +#: builtin/worktree.c:896 msgid "" "cannot move a locked working tree;\n" "use 'move -f -f' to override or unlock first" @@ -21924,36 +22143,36 @@ msgstr "" "無法移動一個鎖定的工作å€ï¼Œ\n" "使用 'move -f -f' 覆蓋或先解鎖" -#: builtin/worktree.c:821 +#: builtin/worktree.c:899 #, c-format msgid "validation failed, cannot move working tree: %s" msgstr "é©—è‰å¤±æ•—,無法移動工作å€ï¼š%s" -#: builtin/worktree.c:826 +#: builtin/worktree.c:904 #, c-format msgid "failed to move '%s' to '%s'" msgstr "移動 '%s' 到 '%s' 失敗" -#: builtin/worktree.c:874 +#: builtin/worktree.c:952 #, c-format msgid "failed to run 'git status' on '%s'" msgstr "在 '%s' ä¸åŸ·è¡Œ 'git status' 失敗" -#: builtin/worktree.c:878 +#: builtin/worktree.c:956 #, c-format msgid "'%s' contains modified or untracked files, use --force to delete it" msgstr "'%s' 包å«ä¿®æ”¹æˆ–未追蹤的檔案,使用 --force 刪除" -#: builtin/worktree.c:883 +#: builtin/worktree.c:961 #, c-format msgid "failed to run 'git status' on '%s', code %d" msgstr "在 '%s' ä¸åŸ·è¡Œ 'git status' 失敗,離開碼 %d" -#: builtin/worktree.c:906 +#: builtin/worktree.c:984 msgid "force removal even if worktree is dirty or locked" msgstr "強制刪除,å³ä½¿å·¥ä½œå€æ˜¯é«’的或已鎖定" -#: builtin/worktree.c:929 +#: builtin/worktree.c:1007 #, c-format msgid "" "cannot remove a locked working tree, lock reason: %s\n" @@ -21962,7 +22181,7 @@ msgstr "" "無法刪除一個鎖定的工作å€ï¼ŒéŽ–å®šåŽŸå› ï¼š%s\n" "使用 'remove -f -f' 覆蓋或先解鎖" -#: builtin/worktree.c:931 +#: builtin/worktree.c:1009 msgid "" "cannot remove a locked working tree;\n" "use 'remove -f -f' to override or unlock first" @@ -21970,7 +22189,7 @@ msgstr "" "無法刪除一個鎖定的工作å€ï¼Œ\n" "使用 'remove -f -f' 覆蓋或先解鎖" -#: builtin/worktree.c:934 +#: builtin/worktree.c:1012 #, c-format msgid "validation failed, cannot remove working tree: %s" msgstr "é©—è‰å¤±æ•—,無法刪除工作å€ï¼š%s" @@ -21991,32 +22210,32 @@ msgstr "å°‡ <å‰ç¶´> å目錄內容寫到一個樹狀物件" msgid "only useful for debugging" msgstr "åªå°é™¤éŒ¯æœ‰ç”¨" -#: bugreport.c:14 +#: bugreport.c:15 msgid "git version:\n" msgstr "git 版本:\n" -#: bugreport.c:20 +#: bugreport.c:21 #, c-format msgid "uname() failed with error '%s' (%d)\n" msgstr "uname() 失敗,錯誤:「%sã€(%d)\n" -#: bugreport.c:30 +#: bugreport.c:31 msgid "compiler info: " msgstr "ç·¨è¯å™¨è³‡è¨Šï¼š " -#: bugreport.c:32 +#: bugreport.c:34 msgid "libc info: " msgstr "libc 資訊: " -#: bugreport.c:74 +#: bugreport.c:80 msgid "not run from a git repository - no hooks to show\n" msgstr "ä¸æ˜¯å¾ž git 版本庫執行 - 沒有å¯é¡¯ç¤ºçš„掛鉤\n" -#: bugreport.c:84 +#: bugreport.c:90 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" msgstr "git bugreport [-o|--output-directory <檔案>] [-s|--suffix <æ ¼å¼>]" -#: bugreport.c:91 +#: bugreport.c:97 msgid "" "Thank you for filling out a Git bug report!\n" "Please answer the following questions to help us understand your issue.\n" @@ -22050,66 +22269,76 @@ msgstr "" "請檢閱è‡èŸ²å ±å‘Šä¸‹æ–¹çš„剩餘部分。\n" "您å¯åˆªé™¤ä»»ä½•æ‚¨ä¸æƒ³åˆ†äº«çš„地方。\n" -#: bugreport.c:130 +#: bugreport.c:136 msgid "specify a destination for the bugreport file" msgstr "請指定 bugreport 檔案的目的地" -#: bugreport.c:132 +#: bugreport.c:138 msgid "specify a strftime format suffix for the filename" msgstr "請指定檔案å稱的 strftime æ ¼å¼å¾Œç¶´" -#: bugreport.c:156 +#: bugreport.c:162 #, c-format msgid "could not create leading directories for '%s'" msgstr "無法建立 '%s' çš„å‰ç½®ç›®éŒ„" -#: bugreport.c:163 +#: bugreport.c:169 msgid "System Info" msgstr "系統資訊" -#: bugreport.c:166 +#: bugreport.c:172 msgid "Enabled Hooks" msgstr "啟用的掛鉤" -#: bugreport.c:174 +#: bugreport.c:180 #, c-format msgid "couldn't create a new file at '%s'" msgstr "ä¸è¦åœ¨ã€Œ%sã€å»ºç«‹æ–°æª”案" -#: bugreport.c:186 +#: bugreport.c:184 +#, c-format +msgid "unable to write to %s" +msgstr "無法寫入 %s" + +#: bugreport.c:194 #, c-format msgid "Created new report at '%s'.\n" msgstr "已在「%sã€å»ºç«‹æ–°å ±å‘Šã€‚\n" -#: fast-import.c:3085 +#: fast-import.c:3100 #, c-format msgid "Missing from marks for submodule '%s'" msgstr "「%sã€å模組缺少 from 標記" -#: fast-import.c:3087 +#: fast-import.c:3102 #, c-format msgid "Missing to marks for submodule '%s'" msgstr "「%sã€å模組缺少 to 標記" -#: fast-import.c:3222 +#: fast-import.c:3237 #, c-format msgid "Expected 'mark' command, got %s" msgstr "é 期 'mark' 指令,得到 %s" -#: fast-import.c:3227 +#: fast-import.c:3242 #, c-format msgid "Expected 'to' command, got %s" msgstr "é 期 'to' 指令,得到 %s" -#: fast-import.c:3317 +#: fast-import.c:3334 msgid "Expected format name:filename for submodule rewrite option" msgstr "期望å模組 rewrite é¸é …çš„æ ¼å¼æ˜¯ name:filename" -#: fast-import.c:3371 +#: fast-import.c:3388 #, c-format msgid "feature '%s' forbidden in input without --allow-unsafe-features" msgstr "沒有 --allow-unsafe-features 時,ç¦æ¢åœ¨è¼¸å…¥ä¸ä½¿ç”¨ '%s' 功能" +#: http-fetch.c:111 +#, c-format +msgid "argument to --packfile must be a valid hash (got '%s')" +msgstr "傳入 --packfile çš„åƒæ•¸å¿…é ˆæ˜¯æœ‰æ•ˆçš„é›œæ¹Š (收到 '%s')" + #: credential-cache--daemon.c:223 #, c-format msgid "" @@ -22285,30 +22514,30 @@ msgstr "ä¸æ”¯æ´å§”è¨—æŽ§åˆ¶ï¼Œå› ç‚º cURL < 7.22.0" msgid "Public key pinning not supported with cURL < 7.44.0" msgstr "ä¸æ”¯æ´å…¬é‘°æª”æ¡ˆéŽ–å®šï¼Œå› ç‚º cURL < 7.44.0" -#: http.c:914 +#: http.c:910 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0" msgstr "ä¸æ”¯æ´ CURLSSLOPT_NO_REVOKEï¼Œå› ç‚º cURL < 7.44.0" -#: http.c:993 +#: http.c:989 msgid "Protocol restrictions not supported with cURL < 7.19.4" msgstr "ä¸æ”¯æ´å”定é™åˆ¶ï¼Œå› 為 cURL < 7.19.4" -#: http.c:1139 +#: http.c:1132 #, c-format msgid "Unsupported SSL backend '%s'. Supported SSL backends:" msgstr "ä¸æ”¯æ´çš„ SSL 後端 '%s'。支æ´çš„ SSL 後端:" -#: http.c:1146 +#: http.c:1139 #, c-format msgid "Could not set SSL backend to '%s': cURL was built without SSL backends" msgstr "無法è¨å®š SSL 後端為 '%s':cURL: cURL 沒有使用 SSL 後端組建" -#: http.c:1150 +#: http.c:1143 #, c-format msgid "Could not set SSL backend to '%s': already set" msgstr "無法將 SSL 後端è¨å®šç‚º '%s':已經è¨å®š" -#: http.c:2032 +#: http.c:2025 #, c-format msgid "" "unable to update url base from redirection:\n" @@ -22319,111 +22548,134 @@ msgstr "" " 請求:%s\n" " é‡å®šå‘:%s" -#: remote-curl.c:166 +#: remote-curl.c:168 #, c-format msgid "invalid quoting in push-option value: '%s'" msgstr "在 push-option å–值ä¸ç„¡æ•ˆçš„引號:'%s'" -#: remote-curl.c:263 +#: remote-curl.c:295 #, c-format msgid "%sinfo/refs not valid: is this a git repository?" msgstr "%sinfo/refs 無效:這是一個 git 版本庫嗎?" -#: remote-curl.c:364 +#: remote-curl.c:396 msgid "invalid server response; expected service, got flush packet" msgstr "無效的æœå‹™ç«¯å›žæ‡‰ã€‚é 期æœå‹™ï¼Œå¾—到 flush 包" -#: remote-curl.c:395 +#: remote-curl.c:427 #, c-format msgid "invalid server response; got '%s'" msgstr "無效的æœå‹™ç«¯å›žæ‡‰ï¼Œå¾—到 '%s'" -#: remote-curl.c:455 +#: remote-curl.c:487 #, c-format msgid "repository '%s' not found" msgstr "版本庫 '%s' 未找到" -#: remote-curl.c:459 +#: remote-curl.c:491 #, c-format msgid "Authentication failed for '%s'" msgstr "'%s' 身份驗è‰å¤±æ•—" -#: remote-curl.c:463 +#: remote-curl.c:495 #, c-format msgid "unable to access '%s': %s" msgstr "無法å˜å– '%s':%s" -#: remote-curl.c:469 +#: remote-curl.c:501 #, c-format msgid "redirecting to %s" msgstr "é‡å®šå‘到 %s" -#: remote-curl.c:593 +#: remote-curl.c:630 msgid "shouldn't have EOF when not gentle on EOF" msgstr "當沒有è¨å®šæº«å’Œè™•ç†æª”案çµæŸç¬¦ï¼ˆEOF)時,ä¸æ‡‰è©²æœ‰æª”案çµæŸç¬¦" -#: remote-curl.c:673 +#: remote-curl.c:642 +msgid "remote server sent stateless separator" +msgstr "é 端伺æœå™¨å‚³é€äº†ç„¡ç‹€æ…‹çš„分隔符號" + +#: remote-curl.c:712 msgid "unable to rewind rpc post data - try increasing http.postBuffer" msgstr "無法還原 rpc post 資料 - å˜—è©¦å¢žåŠ http.postBuffer" -#: remote-curl.c:733 +#: remote-curl.c:742 +#, c-format +msgid "remote-curl: bad line length character: %.4s" +msgstr "remote-curl: 錯誤的行長度å—串:%.4s" + +#: remote-curl.c:744 +msgid "remote-curl: unexpected response end packet" +msgstr "remote-curl: éžé 期的回應çµæŸå°åŒ…" + +#: remote-curl.c:820 #, c-format msgid "RPC failed; %s" msgstr "RPC 失敗。%s" -#: remote-curl.c:773 +#: remote-curl.c:860 msgid "cannot handle pushes this big" msgstr "ä¸èƒ½è™•ç†é€™éº¼å¤§çš„推é€" -#: remote-curl.c:888 +#: remote-curl.c:975 #, c-format msgid "cannot deflate request; zlib deflate error %d" msgstr "ä¸èƒ½å£“縮請求,zlib 壓縮錯誤 %d" -#: remote-curl.c:892 +#: remote-curl.c:979 #, c-format msgid "cannot deflate request; zlib end error %d" msgstr "ä¸èƒ½å£“縮請求,zlib çµæŸéŒ¯èª¤ %d" -#: remote-curl.c:1023 +#: remote-curl.c:1029 +#, c-format +msgid "%d bytes of length header were received" +msgstr "收到了 %d ä½å…ƒçµ„長度的標é " + +#: remote-curl.c:1031 +#, c-format +msgid "%d bytes of body are still expected" +msgstr "é 期ä»è¦æœ‰ %d ä½å…ƒçµ„的本文 (body)" + +#: remote-curl.c:1120 msgid "dumb http transport does not support shallow capabilities" msgstr "å•ž http 傳輸ä¸æ”¯æ´ shalllow 能力" -#: remote-curl.c:1038 +#: remote-curl.c:1135 msgid "fetch failed." msgstr "å–得失敗。" -#: remote-curl.c:1086 +#: remote-curl.c:1183 msgid "cannot fetch by sha1 over smart http" msgstr "無法é€éŽæ™ºæ…§ HTTP å–å¾— sha1" -#: remote-curl.c:1130 remote-curl.c:1136 +#: remote-curl.c:1227 remote-curl.c:1233 #, c-format msgid "protocol error: expected sha/ref, got '%s'" msgstr "å”定錯誤:期望 sha/ref,å»å¾—到 '%s'" -#: remote-curl.c:1148 remote-curl.c:1263 +#: remote-curl.c:1245 remote-curl.c:1360 #, c-format msgid "http transport does not support %s" msgstr "http 傳輸å”定ä¸æ”¯æ´ %s" -#: remote-curl.c:1184 +#: remote-curl.c:1281 msgid "git-http-push failed" msgstr "git-http-push 失敗" -#: remote-curl.c:1369 +#: remote-curl.c:1466 msgid "remote-curl: usage: git remote-curl <remote> [<url>]" msgstr "remote-curl:用法:git remote-curl <é 端> [<url>]" -#: remote-curl.c:1401 +#: remote-curl.c:1498 msgid "remote-curl: error reading command stream from git" msgstr "remote-curl:錯誤讀å–來自 git 的指令æµ" -#: remote-curl.c:1408 +#: remote-curl.c:1505 msgid "remote-curl: fetch attempted without a local repo" msgstr "remote-curl:嘗試沒有本機版本庫下å–å¾—" -#: remote-curl.c:1448 +#: remote-curl.c:1546 #, c-format msgid "remote-curl: unknown command '%s' from git" msgstr "remote-curl:未知的來自 git 的指令 '%s'" @@ -23431,29 +23683,29 @@ msgstr "å模組 '$displaypath':'$command $sha1'" msgid "Failed to recurse into submodule path '$displaypath'" msgstr "無法éžè¿´é€²å模組路徑 '$displaypath'" -#: git-submodule.sh:878 +#: git-submodule.sh:852 msgid "The --cached option cannot be used with the --files option" msgstr "é¸é … --cached ä¸èƒ½å’Œé¸é … --files åŒæ™‚使用" -#: git-submodule.sh:930 +#: git-submodule.sh:904 #, sh-format msgid "unexpected mode $mod_dst" msgstr "æ„å¤–çš„æ¨¡å¼ $mod_dst" # è¯è€…:請ç¶æŒå‰å°Žç©ºæ ¼ -#: git-submodule.sh:950 +#: git-submodule.sh:924 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_src" # è¯è€…:請ç¶æŒå‰å°Žç©ºæ ¼ -#: git-submodule.sh:953 +#: git-submodule.sh:927 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_dst" # è¯è€…:請ç¶æŒå‰å°Žç©ºæ ¼ -#: git-submodule.sh:956 +#: git-submodule.sh:930 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr " è¦å‘Šï¼š$display_name 未包å«æ交 $sha1_src å’Œ $sha1_dst" @@ -23849,44 +24101,44 @@ msgid "touched %d path\n" msgid_plural "touched %d paths\n" msgstr[0] "建立了 %d 個路徑\n" -#: git-add--interactive.perl:1053 +#: git-add--interactive.perl:1055 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for staging." msgstr "如果修補檔能乾淨地套用,編輯塊將立å³æ¨™è¨˜ç‚ºæš«å˜ã€‚" -#: git-add--interactive.perl:1056 +#: git-add--interactive.perl:1058 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for stashing." msgstr "如果修補檔能乾淨地套用,編輯塊將立å³æ¨™è¨˜ç‚ºå„²è—。" -#: git-add--interactive.perl:1059 +#: git-add--interactive.perl:1061 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for unstaging." msgstr "如果修補檔能乾淨地套用,編輯塊將立å³æ¨™è¨˜ç‚ºæœªæš«å˜ã€‚" -#: git-add--interactive.perl:1062 git-add--interactive.perl:1071 -#: git-add--interactive.perl:1077 +#: git-add--interactive.perl:1064 git-add--interactive.perl:1073 +#: git-add--interactive.perl:1079 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for applying." msgstr "如果修補檔能乾淨地套用,編輯塊將立å³æ¨™è¨˜ç‚ºæ‡‰ç”¨ã€‚" -#: git-add--interactive.perl:1065 git-add--interactive.perl:1068 -#: git-add--interactive.perl:1074 +#: git-add--interactive.perl:1067 git-add--interactive.perl:1070 +#: git-add--interactive.perl:1076 msgid "" "If the patch applies cleanly, the edited hunk will immediately be\n" "marked for discarding." msgstr "如果修補檔能乾淨地套用,編輯塊將立å³æ¨™è¨˜ç‚ºæ¨æ£„。" -#: git-add--interactive.perl:1111 +#: git-add--interactive.perl:1113 #, perl-format msgid "failed to open hunk edit file for writing: %s" msgstr "為寫入開啟å€å¡Šç·¨è¼¯æª”案失敗:%s" -#: git-add--interactive.perl:1118 +#: git-add--interactive.perl:1120 #, perl-format msgid "" "---\n" @@ -23899,12 +24151,12 @@ msgstr "" "è¦åˆªé™¤ '%s' 開始的行,刪除它們。\n" "以 %s 開始的行將被刪除。\n" -#: git-add--interactive.perl:1140 +#: git-add--interactive.perl:1142 #, perl-format msgid "failed to open hunk edit file for reading: %s" msgstr "無法讀å–å€å¡Šç·¨è¼¯æª”案:%s" -#: git-add--interactive.perl:1248 +#: git-add--interactive.perl:1250 msgid "" "y - stage this hunk\n" "n - do not stage this hunk\n" @@ -23918,7 +24170,7 @@ msgstr "" "a - æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1254 +#: git-add--interactive.perl:1256 msgid "" "y - stash this hunk\n" "n - do not stash this hunk\n" @@ -23932,7 +24184,7 @@ msgstr "" "a - 儲è—æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸å„²è—æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1260 +#: git-add--interactive.perl:1262 msgid "" "y - unstage this hunk\n" "n - do not unstage this hunk\n" @@ -23946,7 +24198,7 @@ msgstr "" "a - ä¸æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦ä¸æš«å˜æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1266 +#: git-add--interactive.perl:1268 msgid "" "y - apply this hunk to index\n" "n - do not apply this hunk to index\n" @@ -23960,7 +24212,7 @@ msgstr "" "a - 套用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦å¥—用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1272 git-add--interactive.perl:1290 +#: git-add--interactive.perl:1274 git-add--interactive.perl:1292 msgid "" "y - discard this hunk from worktree\n" "n - do not discard this hunk from worktree\n" @@ -23974,7 +24226,7 @@ msgstr "" "a - æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1278 +#: git-add--interactive.perl:1280 msgid "" "y - discard this hunk from index and worktree\n" "n - do not discard this hunk from index and worktree\n" @@ -23988,7 +24240,7 @@ msgstr "" "a - æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦æ¨æ£„æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1284 +#: git-add--interactive.perl:1286 msgid "" "y - apply this hunk to index and worktree\n" "n - do not apply this hunk to index and worktree\n" @@ -24002,7 +24254,7 @@ msgstr "" "a - 套用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦å¥—用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1296 +#: git-add--interactive.perl:1298 msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -24016,7 +24268,7 @@ msgstr "" "a - 套用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š\n" "d - ä¸è¦å¥—用æ¤å€å¡Šå’Œæœ¬æª”案ä¸å¾Œé¢çš„全部å€å¡Š" -#: git-add--interactive.perl:1311 +#: git-add--interactive.perl:1313 msgid "" "g - select a hunk to go to\n" "/ - search for a hunk matching the given regex\n" @@ -24038,83 +24290,88 @@ msgstr "" "e - 手動編輯目å‰å€å¡Š\n" "? - 顯示說明\n" -#: git-add--interactive.perl:1342 +#: git-add--interactive.perl:1344 msgid "The selected hunks do not apply to the index!\n" msgstr "é¸ä¸çš„å€å¡Šä¸èƒ½å¥—用到索引ï¼\n" -#: git-add--interactive.perl:1357 +#: git-add--interactive.perl:1359 #, perl-format msgid "ignoring unmerged: %s\n" msgstr "忽略未套用的:%s\n" -#: git-add--interactive.perl:1468 +#: git-add--interactive.perl:1478 #, perl-format msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " msgstr "將模å¼è®Šæ›´å¥—ç”¨åˆ°å·¥ä½œå€ [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1469 +#: git-add--interactive.perl:1479 #, perl-format msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " -msgstr "å°‡åˆªé™¤å‹•ä½œå¥—ç”¨åˆ°å·¥ä½œå€ [y,n,q,a,d%s,?]? " +msgstr "å°‡åˆªé™¤è®Šæ›´å¥—ç”¨åˆ°å·¥ä½œå€ [y,n,q,a,d%s,?]? " + +#: git-add--interactive.perl:1480 +#, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "å°‡æ–°å¢žè®Šæ›´å¥—ç”¨åˆ°å·¥ä½œå€ [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1470 +#: git-add--interactive.perl:1481 #, perl-format msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " msgstr "å°‡æ¤å€å¡Šå¥—ç”¨åˆ°å·¥ä½œå€ [y,n,q,a,d%s,?]? " -#: git-add--interactive.perl:1570 +#: git-add--interactive.perl:1587 msgid "No other hunks to goto\n" msgstr "沒有其它å¯ä¾›è·³è½‰çš„å€å¡Š\n" -#: git-add--interactive.perl:1588 +#: git-add--interactive.perl:1605 #, perl-format msgid "Invalid number: '%s'\n" msgstr "無效數å—:'%s'\n" -#: git-add--interactive.perl:1593 +#: git-add--interactive.perl:1610 #, perl-format msgid "Sorry, only %d hunk available.\n" msgid_plural "Sorry, only %d hunks available.\n" msgstr[0] "å°ä¸èµ·ï¼Œåªæœ‰ %d 個å¯ç”¨å€å¡Šã€‚\n" -#: git-add--interactive.perl:1619 +#: git-add--interactive.perl:1636 msgid "No other hunks to search\n" msgstr "沒有其它å¯ä¾›å°‹æ‰¾çš„å€å¡Š\n" -#: git-add--interactive.perl:1636 +#: git-add--interactive.perl:1653 #, perl-format msgid "Malformed search regexp %s: %s\n" msgstr "錯誤的æ£è¦è¡¨ç¤ºå¼ %s:%s\n" -#: git-add--interactive.perl:1646 +#: git-add--interactive.perl:1663 msgid "No hunk matches the given pattern\n" msgstr "沒有和æ供模å¼ç›¸ç¬¦åˆçš„å€å¡Š\n" -#: git-add--interactive.perl:1658 git-add--interactive.perl:1680 +#: git-add--interactive.perl:1675 git-add--interactive.perl:1697 msgid "No previous hunk\n" msgstr "沒有å‰ä¸€å€‹å€å¡Š\n" -#: git-add--interactive.perl:1667 git-add--interactive.perl:1686 +#: git-add--interactive.perl:1684 git-add--interactive.perl:1703 msgid "No next hunk\n" msgstr "沒有下一個å€å¡Š\n" -#: git-add--interactive.perl:1692 +#: git-add--interactive.perl:1709 msgid "Sorry, cannot split this hunk\n" msgstr "å°ä¸èµ·ï¼Œä¸èƒ½åˆ†å‰²é€™å€‹å€å¡Š\n" -#: git-add--interactive.perl:1698 +#: git-add--interactive.perl:1715 #, perl-format msgid "Split into %d hunk.\n" msgid_plural "Split into %d hunks.\n" msgstr[0] "分割為 %d 塊。\n" -#: git-add--interactive.perl:1708 +#: git-add--interactive.perl:1725 msgid "Sorry, cannot edit this hunk\n" msgstr "å°ä¸èµ·ï¼Œä¸èƒ½ç·¨è¼¯é€™å€‹å€å¡Š\n" #. TRANSLATORS: please do not translate the command names #. 'status', 'update', 'revert', etc. -#: git-add--interactive.perl:1773 +#: git-add--interactive.perl:1790 msgid "" "status - show paths with changes\n" "update - add working tree state to the staged set of changes\n" @@ -24131,19 +24388,19 @@ msgstr "" "diff - 顯示 HEAD 和索引間差異\n" "add untracked - 新增未追蹤檔案的內容至暫å˜åˆ—表\n" -#: git-add--interactive.perl:1790 git-add--interactive.perl:1795 -#: git-add--interactive.perl:1798 git-add--interactive.perl:1805 -#: git-add--interactive.perl:1808 git-add--interactive.perl:1815 -#: git-add--interactive.perl:1819 git-add--interactive.perl:1825 +#: git-add--interactive.perl:1807 git-add--interactive.perl:1812 +#: git-add--interactive.perl:1815 git-add--interactive.perl:1822 +#: git-add--interactive.perl:1825 git-add--interactive.perl:1832 +#: git-add--interactive.perl:1836 git-add--interactive.perl:1842 msgid "missing --" msgstr "缺少 --" -#: git-add--interactive.perl:1821 +#: git-add--interactive.perl:1838 #, perl-format msgid "unknown --patch mode: %s" msgstr "未知的 --patch 模å¼ï¼š%s" -#: git-add--interactive.perl:1827 git-add--interactive.perl:1833 +#: git-add--interactive.perl:1844 git-add--interactive.perl:1850 #, perl-format msgid "invalid argument %s, expecting --" msgstr "無效的åƒæ•¸ %s,期望是 --" @@ -24446,61 +24703,90 @@ msgstr "(mbox) 新增 cc:%s 自行 '%s'\n" msgid "(mbox) Adding to: %s from line '%s'\n" msgstr "(mbox) 新增 to:%s 自行 '%s'\n" -#: git-send-email.perl:1718 +#: git-send-email.perl:1722 #, perl-format msgid "(non-mbox) Adding cc: %s from line '%s'\n" msgstr "(non-mbox) 新增 cc:%s 自行 '%s'\n" -#: git-send-email.perl:1753 +#: git-send-email.perl:1757 #, perl-format msgid "(body) Adding cc: %s from line '%s'\n" msgstr "(body) 新增 cc: %s 自行 '%s'\n" -#: git-send-email.perl:1864 +#: git-send-email.perl:1868 #, perl-format msgid "(%s) Could not execute '%s'" msgstr "(%s) ä¸èƒ½åŸ·è¡Œ '%s'" -#: git-send-email.perl:1871 +#: git-send-email.perl:1875 #, perl-format msgid "(%s) Adding %s: %s from: '%s'\n" msgstr "(%s) 新增 %s: %s 自:'%s'\n" -#: git-send-email.perl:1875 +#: git-send-email.perl:1879 #, perl-format msgid "(%s) failed to close pipe to '%s'" msgstr "(%s) 無法關閉管é“至 '%s'" -#: git-send-email.perl:1905 +#: git-send-email.perl:1909 msgid "cannot send message as 7bit" msgstr "ä¸èƒ½ä»¥ 7bit å½¢å¼å‚³é€è¨Šæ¯" -#: git-send-email.perl:1913 +#: git-send-email.perl:1917 msgid "invalid transfer encoding" msgstr "無效的傳é€ç·¨ç¢¼" -#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016 +#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020 #, perl-format msgid "unable to open %s: %s\n" msgstr "ä¸èƒ½é–‹å•Ÿ %s:%s\n" -#: git-send-email.perl:1957 +#: git-send-email.perl:1961 #, perl-format msgid "%s: patch contains a line longer than 998 characters" msgstr "%s:修補檔包å«ä¸€å€‹è¶…éŽ 998 å—元的行" -#: git-send-email.perl:1974 +#: git-send-email.perl:1978 #, perl-format msgid "Skipping %s with backup suffix '%s'.\n" msgstr "ç•¥éŽ %s å«å‚™ä»½å¾Œç¶´ '%s'。\n" #. TRANSLATORS: please keep "[y|N]" as is. -#: git-send-email.perl:1978 +#: git-send-email.perl:1982 #, perl-format msgid "Do you really want to send %s? [y|N]: " msgstr "您真的è¦å‚³é€ %s?[y|N]:" #, c-format +#~ msgid "Finding commits for commit graph from %d ref" +#~ msgid_plural "Finding commits for commit graph from %d refs" +#~ msgstr[0] "æ£åœ¨å¾ž %d 個引用ä¸å°‹æ‰¾æ交圖的æ交" + +#, c-format +#~ msgid "invalid commit object id: %s" +#~ msgstr "無效的æ交物件 ID:%s" + +#, c-format +#~ msgid "Removing worktrees/%s: not a valid directory" +#~ msgstr "刪除工作å€/%s:ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„目錄" + +#, c-format +#~ msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +#~ msgstr "刪除 worktrees/%sï¼šç„¡æ³•è®€å– gitdir 檔案 (%s)" + +#, c-format +#~ msgid "Removing worktrees/%s: invalid gitdir file" +#~ msgstr "刪除 worktrees/%s:無效的 gitdir 檔案" + +#, c-format +#~ msgid "unable to re-add worktree '%s'" +#~ msgstr "無法å†æ¬¡æ–°å¢žå·¥ä½œå€ '%s'" + +#, c-format +#~ msgid "target '%s' already exists" +#~ msgstr "目標 '%s' å·²å˜åœ¨" + +#, c-format #~ msgid "" #~ "Cannot update sparse checkout: the following entries are not up to date:\n" #~ "%s" diff --git a/protocol.c b/protocol.c index d390391eba..d1dd3424bb 100644 --- a/protocol.c +++ b/protocol.c @@ -17,6 +17,7 @@ static enum protocol_version parse_protocol_version(const char *value) enum protocol_version get_protocol_version_config(void) { const char *value; + int val; const char *git_test_k = "GIT_TEST_PROTOCOL_VERSION"; const char *git_test_v; @@ -30,6 +31,9 @@ enum protocol_version get_protocol_version_config(void) return version; } + if (!git_config_get_bool("feature.experimental", &val) && val) + return protocol_v2; + git_test_v = getenv(git_test_k); if (git_test_v && *git_test_v) { enum protocol_version env = parse_protocol_version(git_test_v); diff --git a/ref-filter.c b/ref-filter.c index bf7b70299b..8447cb09be 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -1579,7 +1579,7 @@ static void lazy_init_worktree_map(void) if (ref_to_worktree_map.worktrees) return; - ref_to_worktree_map.worktrees = get_worktrees(0); + ref_to_worktree_map.worktrees = get_worktrees(); hashmap_init(&(ref_to_worktree_map.map), ref_to_worktree_map_cmpfnc, NULL, 0); populate_worktree_map(&(ref_to_worktree_map.map), ref_to_worktree_map.worktrees); } @@ -9,6 +9,7 @@ #include "iterator.h" #include "refs.h" #include "refs/refs-internal.h" +#include "run-command.h" #include "object-store.h" #include "object.h" #include "tag.h" @@ -16,6 +17,7 @@ #include "worktree.h" #include "argv-array.h" #include "repository.h" +#include "sigchain.h" /* * List of all available backends @@ -339,7 +341,7 @@ enum peel_status peel_object(const struct object_id *name, struct object_id *oid if (o->type == OBJ_NONE) { int type = oid_object_info(the_repository, name, NULL); - if (type < 0 || !object_as_type(the_repository, o, type, 0)) + if (type < 0 || !object_as_type(o, type, 0)) return PEEL_INVALID; } @@ -560,6 +562,36 @@ void expand_ref_prefix(struct argv_array *prefixes, const char *prefix) argv_array_pushf(prefixes, *p, len, prefix); } +char *repo_default_branch_name(struct repository *r) +{ + const char *config_key = "init.defaultbranch"; + const char *config_display_key = "init.defaultBranch"; + char *ret = NULL, *full_ref; + + if (repo_config_get_string(r, config_key, &ret) < 0) + die(_("could not retrieve `%s`"), config_display_key); + + if (!ret) + ret = xstrdup("master"); + + full_ref = xstrfmt("refs/heads/%s", ret); + if (check_refname_format(full_ref, 0)) + die(_("invalid branch name: %s = %s"), config_display_key, ret); + free(full_ref); + + return ret; +} + +const char *git_default_branch_name(void) +{ + static char *ret; + + if (!ret) + ret = repo_default_branch_name(the_repository); + + return ret; +} + /* * *string and *len will only be substituted, and *string returned (for * later free()ing) if the string passed in is a magic short-hand form @@ -1986,10 +2018,65 @@ int ref_update_reject_duplicates(struct string_list *refnames, return 0; } +static const char hook_not_found; +static const char *hook; + +static int run_transaction_hook(struct ref_transaction *transaction, + const char *state) +{ + struct child_process proc = CHILD_PROCESS_INIT; + struct strbuf buf = STRBUF_INIT; + int ret = 0, i; + + if (hook == &hook_not_found) + return ret; + if (!hook) + hook = find_hook("reference-transaction"); + if (!hook) { + hook = &hook_not_found; + return ret; + } + + argv_array_pushl(&proc.args, hook, state, NULL); + proc.in = -1; + proc.stdout_to_stderr = 1; + proc.trace2_hook_name = "reference-transaction"; + + ret = start_command(&proc); + if (ret) + return ret; + + sigchain_push(SIGPIPE, SIG_IGN); + + for (i = 0; i < transaction->nr; i++) { + struct ref_update *update = transaction->updates[i]; + + strbuf_reset(&buf); + strbuf_addf(&buf, "%s %s %s\n", + oid_to_hex(&update->old_oid), + oid_to_hex(&update->new_oid), + update->refname); + + if (write_in_full(proc.in, buf.buf, buf.len) < 0) { + if (errno != EPIPE) + ret = -1; + break; + } + } + + close(proc.in); + sigchain_pop(SIGPIPE); + strbuf_release(&buf); + + ret |= finish_command(&proc); + return ret; +} + int ref_transaction_prepare(struct ref_transaction *transaction, struct strbuf *err) { struct ref_store *refs = transaction->ref_store; + int ret; switch (transaction->state) { case REF_TRANSACTION_OPEN: @@ -2012,7 +2099,17 @@ int ref_transaction_prepare(struct ref_transaction *transaction, return -1; } - return refs->be->transaction_prepare(refs, transaction, err); + ret = refs->be->transaction_prepare(refs, transaction, err); + if (ret) + return ret; + + ret = run_transaction_hook(transaction, "prepared"); + if (ret) { + ref_transaction_abort(transaction, err); + die(_("ref updates aborted by hook")); + } + + return 0; } int ref_transaction_abort(struct ref_transaction *transaction, @@ -2036,6 +2133,8 @@ int ref_transaction_abort(struct ref_transaction *transaction, break; } + run_transaction_hook(transaction, "aborted"); + ref_transaction_free(transaction); return ret; } @@ -2064,7 +2163,10 @@ int ref_transaction_commit(struct ref_transaction *transaction, break; } - return refs->be->transaction_finish(refs, transaction, err); + ret = refs->be->transaction_finish(refs, transaction, err); + if (!ret) + run_transaction_hook(transaction, "committed"); + return ret; } int refs_verify_refname_available(struct ref_store *refs, @@ -155,6 +155,15 @@ int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); /* + * Retrieves the default branch name for newly-initialized repositories. + * + * The return value of `repo_default_branch_name()` is an allocated string. The + * return value of `git_default_branch_name()` is a singleton. + */ +const char *git_default_branch_name(void); +char *repo_default_branch_name(struct repository *r); + +/* * A ref_transaction represents a collection of reference updates that * should succeed or fail together. * @@ -432,19 +441,35 @@ int delete_refs(const char *msg, struct string_list *refnames, int refs_delete_reflog(struct ref_store *refs, const char *refname); int delete_reflog(const char *refname); -/* iterate over reflog entries */ +/* + * Callback to process a reflog entry found by the iteration functions (see + * below) + */ typedef int each_reflog_ent_fn( struct object_id *old_oid, struct object_id *new_oid, const char *committer, timestamp_t timestamp, int tz, const char *msg, void *cb_data); +/* Iterate over reflog entries in the log for `refname`. */ + +/* oldest entry first */ int refs_for_each_reflog_ent(struct ref_store *refs, const char *refname, each_reflog_ent_fn fn, void *cb_data); + +/* youngest entry first */ int refs_for_each_reflog_ent_reverse(struct ref_store *refs, const char *refname, each_reflog_ent_fn fn, void *cb_data); + +/* + * Iterate over reflog entries in the log for `refname` in the main ref store. + */ + +/* oldest entry first */ int for_each_reflog_ent(const char *refname, each_reflog_ent_fn fn, void *cb_data); + +/* youngest entry first */ int for_each_reflog_ent_reverse(const char *refname, each_reflog_ent_fn fn, void *cb_data); /* diff --git a/refs/refs-internal.h b/refs/refs-internal.h index ff2436c0fb..4271362d26 100644 --- a/refs/refs-internal.h +++ b/refs/refs-internal.h @@ -347,9 +347,13 @@ int is_empty_ref_iterator(struct ref_iterator *ref_iterator); /* * Return an iterator that goes over each reference in `refs` for * which the refname begins with prefix. If trim is non-zero, then - * trim that many characters off the beginning of each refname. flags - * can be DO_FOR_EACH_INCLUDE_BROKEN to include broken references in - * the iteration. The output is ordered by refname. + * trim that many characters off the beginning of each refname. + * The output is ordered by refname. The following flags are supported: + * + * DO_FOR_EACH_INCLUDE_BROKEN: include broken references in + * the iteration. + * + * DO_FOR_EACH_PER_WORKTREE_ONLY: only produce REF_TYPE_PER_WORKTREE refs. */ struct ref_iterator *refs_ref_iterator_begin( struct ref_store *refs, @@ -438,6 +442,14 @@ void base_ref_iterator_free(struct ref_iterator *iter); /* Virtual function declarations for ref_iterators: */ +/* + * backend-specific implementation of ref_iterator_advance. For symrefs, the + * function should set REF_ISSYMREF, and it should also dereference the symref + * to provide the OID referent. If DO_FOR_EACH_INCLUDE_BROKEN is set, symrefs + * with non-existent referents and refs pointing to non-existent object names + * should also be returned. If DO_FOR_EACH_PER_WORKTREE_ONLY, only + * REF_TYPE_PER_WORKTREE refs should be returned. + */ typedef int ref_iterator_advance_fn(struct ref_iterator *ref_iterator); typedef int ref_iterator_peel_fn(struct ref_iterator *ref_iterator, diff --git a/remote-curl.c b/remote-curl.c index 1c9aa3d0ab..5cbc6e5002 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -41,7 +41,9 @@ struct options { deepen_relative : 1, from_promisor : 1, no_dependents : 1, - atomic : 1; + atomic : 1, + object_format : 1; + const struct git_hash_algo *hash_algo; }; static struct options options; static struct string_list cas_options = STRING_LIST_INIT_DUP; @@ -190,6 +192,16 @@ static int set_option(const char *name, const char *value) } else if (!strcmp(name, "filter")) { options.filter = xstrdup(value); return 0; + } else if (!strcmp(name, "object-format")) { + int algo; + options.object_format = 1; + if (strcmp(value, "true")) { + algo = hash_algo_by_name(value); + if (algo == GIT_HASH_UNKNOWN) + die("unknown object format '%s'", value); + options.hash_algo = &hash_algos[algo]; + } + return 0; } else { return 1 /* unsupported */; } @@ -231,6 +243,7 @@ static struct ref *parse_git_refs(struct discovery *heads, int for_push) case protocol_v0: get_remote_heads(&reader, &list, for_push ? REF_NORMAL : 0, NULL, &heads->shallow); + options.hash_algo = reader.hash_algo; break; case protocol_unknown_version: BUG("unknown protocol version"); @@ -239,6 +252,19 @@ static struct ref *parse_git_refs(struct discovery *heads, int for_push) return list; } +static const struct git_hash_algo *detect_hash_algo(struct discovery *heads) +{ + const char *p = memchr(heads->buf, '\t', heads->len); + int algo; + if (!p) + return the_hash_algo; + + algo = hash_algo_by_length((p - heads->buf) / 2); + if (algo == GIT_HASH_UNKNOWN) + return NULL; + return &hash_algos[algo]; +} + static struct ref *parse_info_refs(struct discovery *heads) { char *data, *start, *mid; @@ -249,6 +275,12 @@ static struct ref *parse_info_refs(struct discovery *heads) struct ref *ref = NULL; struct ref *last_ref = NULL; + options.hash_algo = detect_hash_algo(heads); + if (!options.hash_algo) + die("%sinfo/refs not valid: could not determine hash algorithm; " + "is this a git repository?", + transport_anonymize_url(url.buf)); + data = heads->buf; start = NULL; mid = data; @@ -259,13 +291,13 @@ static struct ref *parse_info_refs(struct discovery *heads) if (data[i] == '\t') mid = &data[i]; if (data[i] == '\n') { - if (mid - start != the_hash_algo->hexsz) + if (mid - start != options.hash_algo->hexsz) die(_("%sinfo/refs not valid: is this a git repository?"), transport_anonymize_url(url.buf)); data[i] = 0; ref_name = mid + 1; ref = alloc_ref(ref_name); - get_oid_hex(start, &ref->old_oid); + get_oid_hex_algop(start, &ref->old_oid, options.hash_algo); if (!refs) refs = ref; if (last_ref) @@ -509,11 +541,16 @@ static struct ref *get_refs(int for_push) static void output_refs(struct ref *refs) { struct ref *posn; + if (options.object_format && options.hash_algo) { + printf(":object-format %s\n", options.hash_algo->name); + } for (posn = refs; posn; posn = posn->next) { if (posn->symref) printf("@%s %s\n", posn->symref, posn->name); else - printf("%s %s\n", oid_to_hex(&posn->old_oid), posn->name); + printf("%s %s\n", hash_to_hex_algop(posn->old_oid.hash, + options.hash_algo), + posn->name); } printf("\n"); fflush(stdout); @@ -601,6 +638,8 @@ static int rpc_read_from_out(struct rpc_state *rpc, int options, case PACKET_READ_FLUSH: memcpy(buf - 4, "0000", 4); break; + case PACKET_READ_RESPONSE_END: + die(_("remote server sent stateless separator")); } } @@ -643,7 +682,7 @@ static size_t rpc_out(void *ptr, size_t eltsize, return 0; } /* - * If avail is non-zerp, the line length for the flush still + * If avail is non-zero, the line length for the flush still * hasn't been fully sent. Proceed with sending the line * length. */ @@ -679,9 +718,55 @@ static curlioerr rpc_ioctl(CURL *handle, int cmd, void *clientp) } #endif +struct check_pktline_state { + char len_buf[4]; + int len_filled; + int remaining; +}; + +static void check_pktline(struct check_pktline_state *state, const char *ptr, size_t size) +{ + while (size) { + if (!state->remaining) { + int digits_remaining = 4 - state->len_filled; + if (digits_remaining > size) + digits_remaining = size; + memcpy(&state->len_buf[state->len_filled], ptr, digits_remaining); + state->len_filled += digits_remaining; + ptr += digits_remaining; + size -= digits_remaining; + + if (state->len_filled == 4) { + state->remaining = packet_length(state->len_buf); + if (state->remaining < 0) { + die(_("remote-curl: bad line length character: %.4s"), state->len_buf); + } else if (state->remaining == 2) { + die(_("remote-curl: unexpected response end packet")); + } else if (state->remaining < 4) { + state->remaining = 0; + } else { + state->remaining -= 4; + } + state->len_filled = 0; + } + } + + if (state->remaining) { + int remaining = state->remaining; + if (remaining > size) + remaining = size; + ptr += remaining; + size -= remaining; + state->remaining -= remaining; + } + } +} + struct rpc_in_data { struct rpc_state *rpc; struct active_request_slot *slot; + int check_pktline; + struct check_pktline_state pktline_state; }; /* @@ -702,6 +787,8 @@ static size_t rpc_in(char *ptr, size_t eltsize, return size; if (size) data->rpc->any_written = 1; + if (data->check_pktline) + check_pktline(&data->pktline_state, ptr, size); write_or_die(data->rpc->in, ptr, size); return size; } @@ -778,7 +865,7 @@ static curl_off_t xcurl_off_t(size_t len) * If flush_received is true, do not attempt to read any more; just use what's * in rpc->buf. */ -static int post_rpc(struct rpc_state *rpc, int flush_received) +static int post_rpc(struct rpc_state *rpc, int stateless_connect, int flush_received) { struct active_request_slot *slot; struct curl_slist *headers = http_copy_default_headers(); @@ -920,6 +1007,8 @@ retry: curl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, rpc_in); rpc_in_data.rpc = rpc; rpc_in_data.slot = slot; + rpc_in_data.check_pktline = stateless_connect; + memset(&rpc_in_data.pktline_state, 0, sizeof(rpc_in_data.pktline_state)); curl_easy_setopt(slot->curl, CURLOPT_FILE, &rpc_in_data); curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0); @@ -936,6 +1025,14 @@ retry: if (!rpc->any_written) err = -1; + if (rpc_in_data.pktline_state.len_filled) + err = error(_("%d bytes of length header were received"), rpc_in_data.pktline_state.len_filled); + if (rpc_in_data.pktline_state.remaining) + err = error(_("%d bytes of body are still expected"), rpc_in_data.pktline_state.remaining); + + if (stateless_connect) + packet_response_end(rpc->in); + curl_slist_free_all(headers); free(gzip_body); return err; @@ -985,7 +1082,7 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads, break; rpc->pos = 0; rpc->len = n; - err |= post_rpc(rpc, 0); + err |= post_rpc(rpc, 0, 0); } close(client.in); @@ -1276,7 +1373,7 @@ static void parse_push(struct strbuf *buf) if (ret) exit(128); /* error already reported */ - free_specs: +free_specs: argv_array_clear(&specs); } @@ -1342,7 +1439,7 @@ static int stateless_connect(const char *service_name) BUG("The entire rpc->buf should be larger than LARGE_PACKET_MAX"); if (status == PACKET_READ_EOF) break; - if (post_rpc(&rpc, status == PACKET_READ_FLUSH)) + if (post_rpc(&rpc, 1, status == PACKET_READ_FLUSH)) /* We would have an err here */ break; /* Reset the buffer for next request */ @@ -1439,6 +1536,7 @@ int cmd_main(int argc, const char **argv) printf("option\n"); printf("push\n"); printf("check-connectivity\n"); + printf("object-format\n"); printf("\n"); fflush(stdout); } else if (skip_prefix(buf.buf, "stateless-connect ", &arg)) { diff --git a/remote-testsvn.c b/remote-testsvn.c index 3af708c5b6..cde39b94fb 100644 --- a/remote-testsvn.c +++ b/remote-testsvn.c @@ -13,7 +13,7 @@ static const char *url; static int dump_from_file; static const char *private_ref; -static const char *remote_ref = "refs/heads/master"; +static char *remote_ref; static const char *marksfilename, *notes_ref; struct rev_note { unsigned int rev_nr; }; @@ -286,7 +286,7 @@ int cmd_main(int argc, const char **argv) private_ref_sb = STRBUF_INIT, marksfilename_sb = STRBUF_INIT, notes_ref_sb = STRBUF_INIT; static struct remote *remote; - const char *url_in; + const char *url_in, *remote_ref_short; setup_git_directory(); if (argc < 2 || argc > 3) { @@ -294,6 +294,9 @@ int cmd_main(int argc, const char **argv) return 1; } + remote_ref_short = git_default_branch_name(); + remote_ref = xstrfmt("refs/heads/%s", remote_ref_short); + remote = remote_get(argv[1]); url_in = (argc == 3) ? argv[2] : remote->url[0]; @@ -306,7 +309,8 @@ int cmd_main(int argc, const char **argv) url = url_sb.buf; } - strbuf_addf(&private_ref_sb, "refs/svn/%s/master", remote->name); + strbuf_addf(&private_ref_sb, "refs/svn/%s/%s", + remote->name, remote_ref_short); private_ref = private_ref_sb.buf; strbuf_addf(¬es_ref_sb, "refs/notes/%s/revs", remote->name); @@ -276,7 +276,7 @@ static void read_branches_file(struct remote *remote) /* * The branches file would have URL and optionally - * #branch specified. The "master" (or specified) branch is + * #branch specified. The default (or specified) branch is * fetched and stored in the local branch matching the * remote name. */ @@ -284,7 +284,7 @@ static void read_branches_file(struct remote *remote) if (frag) *(frag++) = '\0'; else - frag = "master"; + frag = (char *)git_default_branch_name(); add_url_alias(remote, strbuf_detach(&buf, NULL)); strbuf_addf(&buf, "refs/heads/%s:refs/heads/%s", @@ -2097,8 +2097,16 @@ struct ref *guess_remote_head(const struct ref *head, if (head->symref) return copy_ref(find_ref_by_name(refs, head->symref)); - /* If refs/heads/master could be right, it is. */ + /* If a remote branch exists with the default branch name, let's use it. */ if (!all) { + char *ref = xstrfmt("refs/heads/%s", git_default_branch_name()); + + r = find_ref_by_name(refs, ref); + free(ref); + if (r && oideq(&r->old_oid, &head->old_oid)) + return copy_ref(r); + + /* Fall back to the hard-coded historical default */ r = find_ref_by_name(refs, "refs/heads/master"); if (r && oideq(&r->old_oid, &head->old_oid)) return copy_ref(r); @@ -179,7 +179,8 @@ struct ref **get_remote_heads(struct packet_reader *reader, struct ref **get_remote_refs(int fd_out, struct packet_reader *reader, struct ref **list, int for_push, const struct argv_array *ref_prefixes, - const struct string_list *server_options); + const struct string_list *server_options, + int stateless_rpc); int resolve_remote_symref(struct ref *ref, struct ref *list); diff --git a/repo-settings.c b/repo-settings.c index dc6817daa9..0918408b34 100644 --- a/repo-settings.c +++ b/repo-settings.c @@ -51,14 +51,14 @@ void prepare_repo_settings(struct repository *r) UPDATE_DEFAULT_BOOL(r->settings.index_version, 4); UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE); } + if (!repo_config_get_bool(r, "fetch.writecommitgraph", &value)) r->settings.fetch_write_commit_graph = value; - if (!repo_config_get_bool(r, "feature.experimental", &value) && value) { - UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING); - UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 1); - } UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 0); + if (!repo_config_get_bool(r, "feature.experimental", &value) && value) + UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING); + /* Hack for test programs like test-dump-untracked-cache */ if (ignore_untracked_cache_config) r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP; diff --git a/repository.h b/repository.h index 6534fbb7b3..3c1f7d54bd 100644 --- a/repository.h +++ b/repository.h @@ -196,4 +196,10 @@ void repo_update_index_if_able(struct repository *, struct lock_file *); void prepare_repo_settings(struct repository *r); +/* + * Return 1 if upgrade repository format to target_version succeeded, + * 0 if no upgrade is necessary, and -1 when upgrade is not possible. + */ +int upgrade_repository_format(int target_version); + #endif /* REPOSITORY_H */ diff --git a/revision.c b/revision.c index 60cca8c0b9..6aa7f4f567 100644 --- a/revision.c +++ b/revision.c @@ -39,6 +39,8 @@ static const char *term_good; implement_shared_commit_slab(revision_sources, char *); +static inline int want_ancestry(const struct rev_info *revs); + void show_object_with_name(FILE *out, struct object *obj, const char *name) { const char *p; @@ -687,6 +689,9 @@ static void prepare_to_use_bloom_filter(struct rev_info *revs) if (!revs->bloom_filter_settings) return; + if (!revs->pruning.pathspec.nr) + return; + pi = &revs->pruning.pathspec.items[0]; last_index = pi->len - 1; @@ -720,7 +725,7 @@ static int check_maybe_different_in_bloom_filter(struct rev_info *revs, if (!revs->repo->objects->commit_graph) return -1; - if (commit->generation == GENERATION_NUMBER_INFINITY) + if (commit_graph_generation(commit) == GENERATION_NUMBER_INFINITY) return -1; filter = get_bloom_filter(revs->repo, commit, 0); @@ -1405,7 +1410,8 @@ static int limit_list(struct rev_info *revs) continue; break; } - if (revs->min_age != -1 && (commit->date > revs->min_age)) + if (revs->min_age != -1 && (commit->date > revs->min_age) && + !revs->line_level_traverse) continue; date = commit->date; p = &commit_list_insert(commit, p)->next; @@ -1604,7 +1610,7 @@ static void add_other_reflogs_to_pending(struct all_refs_cb *cb) { struct worktree **worktrees, **p; - worktrees = get_worktrees(0); + worktrees = get_worktrees(); for (p = worktrees; *p; p++) { struct worktree *wt = *p; @@ -1692,7 +1698,7 @@ void add_index_objects_to_pending(struct rev_info *revs, unsigned int flags) if (revs->single_worktree) return; - worktrees = get_worktrees(0); + worktrees = get_worktrees(); for (p = worktrees; *p; p++) { struct worktree *wt = *p; struct index_state istate = { NULL }; @@ -2810,6 +2816,12 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s if (revs->diffopt.objfind) revs->simplify_history = 0; + if (revs->line_level_traverse) { + if (want_ancestry(revs)) + revs->limited = 1; + revs->topo_order = 1; + } + if (revs->topo_order && !generation_numbers_enabled(the_repository)) revs->limited = 1; @@ -2829,11 +2841,6 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s revs->diffopt.abbrev = revs->abbrev; - if (revs->line_level_traverse) { - revs->limited = 1; - revs->topo_order = 1; - } - diff_setup_done(&revs->diffopt); grep_commit_pattern_type(GREP_PATTERN_TYPE_UNSPECIFIED, @@ -3314,7 +3321,7 @@ static void explore_to_depth(struct rev_info *revs, struct topo_walk_info *info = revs->topo_walk_info; struct commit *c; while ((c = prio_queue_peek(&info->explore_queue)) && - c->generation >= gen_cutoff) + commit_graph_generation(c) >= gen_cutoff) explore_walk_step(revs); } @@ -3330,7 +3337,7 @@ static void indegree_walk_step(struct rev_info *revs) if (parse_commit_gently(c, 1) < 0) return; - explore_to_depth(revs, c->generation); + explore_to_depth(revs, commit_graph_generation(c)); for (p = c->parents; p; p = p->next) { struct commit *parent = p->item; @@ -3354,7 +3361,7 @@ static void compute_indegrees_to_depth(struct rev_info *revs, struct topo_walk_info *info = revs->topo_walk_info; struct commit *c; while ((c = prio_queue_peek(&info->indegree_queue)) && - c->generation >= gen_cutoff) + commit_graph_generation(c) >= gen_cutoff) indegree_walk_step(revs); } @@ -3407,6 +3414,7 @@ static void init_topo_walk(struct rev_info *revs) info->min_generation = GENERATION_NUMBER_INFINITY; for (list = revs->commits; list; list = list->next) { struct commit *c = list->item; + uint32_t generation; if (parse_commit_gently(c, 1)) continue; @@ -3414,8 +3422,9 @@ static void init_topo_walk(struct rev_info *revs) test_flag_and_insert(&info->explore_queue, c, TOPO_WALK_EXPLORED); test_flag_and_insert(&info->indegree_queue, c, TOPO_WALK_INDEGREE); - if (c->generation < info->min_generation) - info->min_generation = c->generation; + generation = commit_graph_generation(c); + if (generation < info->min_generation) + info->min_generation = generation; *(indegree_slab_at(&info->indegree, c)) = 1; @@ -3466,6 +3475,7 @@ static void expand_topo_walk(struct rev_info *revs, struct commit *commit) for (p = commit->parents; p; p = p->next) { struct commit *parent = p->item; int *pi; + uint32_t generation; if (parent->object.flags & UNINTERESTING) continue; @@ -3473,8 +3483,9 @@ static void expand_topo_walk(struct rev_info *revs, struct commit *commit) if (parse_commit_gently(parent, 1) < 0) continue; - if (parent->generation < info->min_generation) { - info->min_generation = parent->generation; + generation = commit_graph_generation(parent); + if (generation < info->min_generation) { + info->min_generation = generation; compute_indegrees_to_depth(revs, info->min_generation); } @@ -3521,7 +3532,7 @@ int prepare_revision_walk(struct rev_info *revs) FOR_EACH_OBJECT_PROMISOR_ONLY); } - if (revs->pruning.pathspec.nr == 1 && !revs->reflog_info) + if (!revs->reflog_info) prepare_to_use_bloom_filter(revs); if (revs->no_walk != REVISION_WALK_NO_WALK_UNSORTED) commit_list_sort_by_date(&revs->commits); @@ -3534,7 +3545,14 @@ int prepare_revision_walk(struct rev_info *revs) sort_in_topological_order(&revs->commits, revs->sort_order); } else if (revs->topo_order) init_topo_walk(revs); - if (revs->line_level_traverse) + if (revs->line_level_traverse && want_ancestry(revs)) + /* + * At the moment we can only do line-level log with parent + * rewriting by performing this expensive pre-filtering step. + * If parent rewriting is not requested, then we rather + * perform the line-level log filtering during the regular + * history traversal. + */ line_log_filter(revs); if (revs->simplify_merges) simplify_merges(revs); @@ -3745,6 +3763,22 @@ enum commit_action get_commit_action(struct rev_info *revs, struct commit *commi return commit_ignore; if (commit->object.flags & UNINTERESTING) return commit_ignore; + if (revs->line_level_traverse && !want_ancestry(revs)) { + /* + * In case of line-level log with parent rewriting + * prepare_revision_walk() already took care of all line-level + * log filtering, and there is nothing left to do here. + * + * If parent rewriting was not requested, then this is the + * place to perform the line-level log filtering. Notably, + * this check, though expensive, must come before the other, + * cheaper filtering conditions, because the tracked line + * ranges must be adjusted even when the commit will end up + * being ignored based on other conditions. + */ + if (!line_log_process_ranges_arbitrary_commit(revs, commit)) + return commit_ignore; + } if (revs->min_age != -1 && comparison_date(revs, commit) > revs->min_age) return commit_ignore; diff --git a/revision.h b/revision.h index 93491b79d4..f412ae85eb 100644 --- a/revision.h +++ b/revision.h @@ -37,6 +37,10 @@ /* WARNING: This is also used as REACHABLE in commit-graph.c. */ #define PULL_MERGE (1u<<15) + +#define TOPO_WALK_EXPLORED (1u<<23) +#define TOPO_WALK_INDEGREE (1u<<24) + /* * Indicates object was reached by traversal. i.e. not given by user on * command-line or stdin. @@ -48,9 +52,6 @@ #define TRACK_LINEAR (1u<<26) #define ALL_REV_FLAGS (((1u<<11)-1) | NOT_USER_GIVEN | TRACK_LINEAR | PULL_MERGE) -#define TOPO_WALK_EXPLORED (1u<<27) -#define TOPO_WALK_INDEGREE (1u<<28) - #define DECORATE_SHORT_REFS 1 #define DECORATE_FULL_REFS 2 diff --git a/send-pack.c b/send-pack.c index 0abee22283..d671ab5d05 100644 --- a/send-pack.c +++ b/send-pack.c @@ -363,6 +363,7 @@ int send_pack(struct send_pack_args *args, int atomic_supported = 0; int use_push_options = 0; int push_options_supported = 0; + int object_format_supported = 0; unsigned cmds_sent = 0; int ret; struct async demux; @@ -389,6 +390,9 @@ int send_pack(struct send_pack_args *args, if (server_supports("push-options")) push_options_supported = 1; + if (!server_supports_hash(the_hash_algo->name, &object_format_supported)) + die(_("the receiving end does not support this repository's hash algorithm")); + if (args->push_cert != SEND_PACK_PUSH_CERT_NEVER) { int len; push_cert_nonce = server_feature_value("push-cert", &len); @@ -406,7 +410,7 @@ int send_pack(struct send_pack_args *args, if (!remote_refs) { fprintf(stderr, "No refs in common and none specified; doing nothing.\n" - "Perhaps you should specify a branch such as 'master'.\n"); + "Perhaps you should specify a branch.\n"); return 0; } if (args->atomic && !atomic_supported) @@ -429,6 +433,8 @@ int send_pack(struct send_pack_args *args, strbuf_addstr(&cap_buf, " atomic"); if (use_push_options) strbuf_addstr(&cap_buf, " push-options"); + if (object_format_supported) + strbuf_addf(&cap_buf, " object-format=%s", the_hash_algo->name); if (agent_supported) strbuf_addf(&cap_buf, " agent=%s", git_user_agent_sanitized()); @@ -22,6 +22,14 @@ static int agent_advertise(struct repository *r, return 1; } +static int object_format_advertise(struct repository *r, + struct strbuf *value) +{ + if (value) + strbuf_addstr(value, r->hash_algo->name); + return 1; +} + struct protocol_capability { /* * The name of the capability. The server uses this name when @@ -57,6 +65,7 @@ static struct protocol_capability capabilities[] = { { "ls-refs", always_advertise, ls_refs }, { "fetch", upload_pack_advertise, upload_pack_v2 }, { "server-option", always_advertise, NULL }, + { "object-format", object_format_advertise, NULL }, }; static void advertise_capabilities(void) @@ -153,6 +162,22 @@ int has_capability(const struct argv_array *keys, const char *capability, return 0; } +static void check_algorithm(struct repository *r, struct argv_array *keys) +{ + int client = GIT_HASH_SHA1, server = hash_algo_by_ptr(r->hash_algo); + const char *algo_name; + + if (has_capability(keys, "object-format", &algo_name)) { + client = hash_algo_by_name(algo_name); + if (client == GIT_HASH_UNKNOWN) + die("unknown object format '%s'", algo_name); + } + + if (client != server) + die("mismatched object format: server %s; client %s\n", + r->hash_algo->name, hash_algos[client].name); +} + enum request_state { PROCESS_REQUEST_KEYS, PROCESS_REQUEST_DONE, @@ -217,12 +242,16 @@ static int process_request(void) state = PROCESS_REQUEST_DONE; break; + case PACKET_READ_RESPONSE_END: + BUG("unexpected stateless separator packet"); } } if (!command) die("no command requested"); + check_algorithm(the_repository, &keys); + command->command(the_repository, &keys, &reader); argv_array_clear(&keys); @@ -455,6 +455,7 @@ static int check_repo_format(const char *var, const char *value, void *vdata) if (strcmp(var, "core.repositoryformatversion") == 0) data->version = git_config_int(var, value); else if (skip_prefix(var, "extensions.", &ext)) { + data->has_extensions = 1; /* * record any known extensions here; otherwise, * we fall through to recording it as unknown, and @@ -506,9 +507,15 @@ static int check_repository_format_gently(const char *gitdir, struct repository_ die("%s", err.buf); } - repository_format_precious_objects = candidate->precious_objects; - set_repository_format_partial_clone(candidate->partial_clone); - repository_format_worktree_config = candidate->worktree_config; + if (candidate->version >= 1) { + repository_format_precious_objects = candidate->precious_objects; + set_repository_format_partial_clone(candidate->partial_clone); + repository_format_worktree_config = candidate->worktree_config; + } else { + repository_format_precious_objects = 0; + set_repository_format_partial_clone(NULL); + repository_format_worktree_config = 0; + } string_list_clear(&candidate->unknown_extensions, 0); if (repository_format_worktree_config) { @@ -538,6 +545,34 @@ static int check_repository_format_gently(const char *gitdir, struct repository_ return 0; } +int upgrade_repository_format(int target_version) +{ + struct strbuf sb = STRBUF_INIT; + struct strbuf err = STRBUF_INIT; + struct strbuf repo_version = STRBUF_INIT; + struct repository_format repo_fmt = REPOSITORY_FORMAT_INIT; + + strbuf_git_common_path(&sb, the_repository, "config"); + read_repository_format(&repo_fmt, sb.buf); + strbuf_release(&sb); + + if (repo_fmt.version >= target_version) + return 0; + + if (verify_repository_format(&repo_fmt, &err) < 0 || + (!repo_fmt.version && repo_fmt.has_extensions)) { + warning("unable to upgrade repository format from %d to %d: %s", + repo_fmt.version, target_version, err.buf); + strbuf_release(&err); + return -1; + } + + strbuf_addf(&repo_version, "%d", target_version); + git_config_set("core.repositoryformatversion", repo_version.buf); + strbuf_release(&repo_version); + return 1; +} + static void init_repository_format(struct repository_format *format) { const struct repository_format fresh = REPOSITORY_FORMAT_INIT; @@ -1273,6 +1308,7 @@ void check_repository_format(struct repository_format *fmt) fmt = &repo_fmt; check_repository_format_gently(get_git_dir(), fmt, NULL); startup_info->have_repository = 1; + repo_set_hash_algo(the_repository, fmt->hash_algo); clear_repository_format(&repo_fmt); } @@ -556,11 +556,6 @@ ssize_t strbuf_write(struct strbuf *sb, FILE *f) return sb->len ? fwrite(sb->buf, 1, sb->len, f) : 0; } -ssize_t strbuf_write_fd(struct strbuf *sb, int fd) -{ - return sb->len ? write(fd, sb->buf, sb->len) : 0; -} - #define STRBUF_MAXLINK (2*PATH_MAX) int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) @@ -473,7 +473,6 @@ int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint); * NUL bytes. */ ssize_t strbuf_write(struct strbuf *sb, FILE *stream); -ssize_t strbuf_write_fd(struct strbuf *sb, int fd); /** * Read a line from a FILE *, overwriting the existing contents of @@ -1,7 +1,7 @@ -Core GIT Tests +Core Git Tests ============== -This directory holds many test scripts for core GIT tools. The +This directory holds many test scripts for core Git tools. The first part of this short document describes how to run the tests and read their output. @@ -1117,21 +1117,21 @@ Tips for Writing Tests As with any programming projects, existing programs are the best source of the information. However, do _not_ emulate t0000-basic.sh when writing your tests. The test is special in -that it tries to validate the very core of GIT. For example, it +that it tries to validate the very core of Git. For example, it knows that there will be 256 subdirectories under .git/objects/, and it knows that the object ID of an empty tree is a certain 40-byte string. This is deliberately done so in t0000-basic.sh because the things the very basic core test tries to achieve is -to serve as a basis for people who are changing the GIT internal +to serve as a basis for people who are changing the Git internals drastically. For these people, after making certain changes, not seeing failures from the basic test _is_ a failure. And -such drastic changes to the core GIT that even changes these +such drastic changes to the core Git that even changes these otherwise supposedly stable object IDs should be accompanied by an update to t0000-basic.sh. However, other tests that simply rely on basic parts of the core -GIT working properly should not have that level of intimate -knowledge of the core GIT internals. If all the test scripts +Git working properly should not have that level of intimate +knowledge of the core Git internals. If all the test scripts hardcoded the object IDs like t0000-basic.sh does, that defeats the purpose of t0000-basic.sh, which is to isolate that level of validation in one place. Your test also ends up needing diff --git a/t/helper/test-oid-array.c b/t/helper/test-oid-array.c index ce9fd5f091..b16cd0b11b 100644 --- a/t/helper/test-oid-array.c +++ b/t/helper/test-oid-array.c @@ -12,6 +12,9 @@ int cmd__oid_array(int argc, const char **argv) { struct oid_array array = OID_ARRAY_INIT; struct strbuf line = STRBUF_INIT; + int nongit_ok; + + setup_git_directory_gently(&nongit_ok); while (strbuf_getline(&line, stdin) != EOF) { const char *arg; diff --git a/t/helper/test-pkt-line.c b/t/helper/test-pkt-line.c index 12ca698e17..69152958e5 100644 --- a/t/helper/test-pkt-line.c +++ b/t/helper/test-pkt-line.c @@ -46,6 +46,9 @@ static void unpack(void) case PACKET_READ_DELIM: printf("0001\n"); break; + case PACKET_READ_RESPONSE_END: + printf("0002\n"); + break; } } } @@ -75,6 +78,7 @@ static void unpack_sideband(void) case PACKET_READ_FLUSH: return; case PACKET_READ_DELIM: + case PACKET_READ_RESPONSE_END: break; } } diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c index a0272178b7..14a3655442 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -67,7 +67,7 @@ int cmd__reach(int ac, const char **av) die("failed to load commit for input %s resulting in oid %s\n", buf.buf, oid_to_hex(&oid)); - c = object_as_type(r, peeled, OBJ_COMMIT, 0); + c = object_as_type(peeled, OBJ_COMMIT, 0); if (!c) die("failed to load commit for input %s resulting in oid %s\n", @@ -108,7 +108,7 @@ int cmd__reach(int ac, const char **av) else if (!strcmp(av[1], "in_merge_bases")) printf("%s(A,B):%d\n", av[1], in_merge_bases(A, B)); else if (!strcmp(av[1], "is_descendant_of")) - printf("%s(A,X):%d\n", av[1], is_descendant_of(A, X)); + printf("%s(A,X):%d\n", av[1], repo_is_descendant_of(r, A, X)); else if (!strcmp(av[1], "get_merge_bases_many")) { struct commit_list *list = get_merge_bases_many(A, X_nr, X_array); printf("%s(A,X):\n", av[1]); diff --git a/t/helper/test-ref-store.c b/t/helper/test-ref-store.c index 799fc00aa1..759e69dc54 100644 --- a/t/helper/test-ref-store.c +++ b/t/helper/test-ref-store.c @@ -37,7 +37,7 @@ static const char **get_store(const char **argv, struct ref_store **refs) *refs = get_submodule_ref_store(gitdir); } else if (skip_prefix(argv[0], "worktree:", &gitdir)) { - struct worktree **p, **worktrees = get_worktrees(0); + struct worktree **p, **worktrees = get_worktrees(); for (p = worktrees; *p; p++) { struct worktree *wt = *p; diff --git a/t/helper/test-regex.c b/t/helper/test-regex.c index 10284cc56f..d6f28ca8d1 100644 --- a/t/helper/test-regex.c +++ b/t/helper/test-regex.c @@ -1,5 +1,4 @@ #include "test-tool.h" -#include "git-compat-util.h" #include "gettext.h" struct reg_flag { @@ -8,12 +7,13 @@ struct reg_flag { }; static struct reg_flag reg_flags[] = { - { "EXTENDED", REG_EXTENDED }, - { "NEWLINE", REG_NEWLINE }, - { "ICASE", REG_ICASE }, - { "NOTBOL", REG_NOTBOL }, + { "EXTENDED", REG_EXTENDED }, + { "NEWLINE", REG_NEWLINE }, + { "ICASE", REG_ICASE }, + { "NOTBOL", REG_NOTBOL }, + { "NOTEOL", REG_NOTEOL }, #ifdef REG_STARTEND - { "STARTEND", REG_STARTEND }, + { "STARTEND", REG_STARTEND }, #endif { NULL, 0 } }; @@ -41,36 +41,74 @@ int cmd__regex(int argc, const char **argv) { const char *pat; const char *str; - int flags = 0; + int ret, silent = 0, flags = 0; regex_t r; regmatch_t m[1]; - - if (argc == 2 && !strcmp(argv[1], "--bug")) - return test_regex_bug(); - else if (argc < 3) - usage("test-tool regex --bug\n" - "test-tool regex <pattern> <string> [<options>]"); + char errbuf[64]; argv++; - pat = *argv++; - str = *argv++; - while (*argv) { - struct reg_flag *rf; - for (rf = reg_flags; rf->name; rf++) - if (!strcmp(*argv, rf->name)) { - flags |= rf->flag; - break; - } - if (!rf->name) - die("do not recognize %s", *argv); + argc--; + + if (!argc) + goto usage; + + if (!strcmp(*argv, "--bug")) { + if (argc == 1) + return test_regex_bug(); + else + goto usage; + } + if (!strcmp(*argv, "--silent")) { + silent = 1; argv++; + argc--; + } + if (!argc) + goto usage; + + pat = *argv++; + if (argc == 1) + str = NULL; + else { + str = *argv++; + while (*argv) { + struct reg_flag *rf; + for (rf = reg_flags; rf->name; rf++) + if (!strcmp(*argv, rf->name)) { + flags |= rf->flag; + break; + } + if (!rf->name) + die("do not recognize flag %s", *argv); + argv++; + } } git_setup_gettext(); - if (regcomp(&r, pat, flags)) - die("failed regcomp() for pattern '%s'", pat); - if (regexec(&r, str, 1, m, 0)) - return 1; + ret = regcomp(&r, pat, flags); + if (ret) { + if (silent) + return ret; + + regerror(ret, &r, errbuf, sizeof(errbuf)); + die("failed regcomp() for pattern '%s' (%s)", pat, errbuf); + } + if (!str) + return 0; + + ret = regexec(&r, str, 1, m, 0); + if (ret) { + if (silent || ret == REG_NOMATCH) + return ret; + + regerror(ret, &r, errbuf, sizeof(errbuf)); + die("failed regexec() for subject '%s' (%s)", str, errbuf); + } return 0; +usage: + usage("\ttest-tool regex --bug\n" + "\ttest-tool regex [--silent] <pattern>\n" + "\ttest-tool regex [--silent] <pattern> <string> [<options>]"); + return -1; } diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh index 7d248e6588..547eb3c31a 100644 --- a/t/lib-git-svn.sh +++ b/t/lib-git-svn.sh @@ -78,21 +78,24 @@ maybe_start_httpd () { } convert_to_rev_db () { - perl -w -- - "$@" <<\EOF + perl -w -- - "$(test_oid rawsz)" "$@" <<\EOF use strict; +my $oidlen = shift; @ARGV == 2 or die "usage: convert_to_rev_db <input> <output>"; +my $record_size = $oidlen + 4; +my $hexlen = $oidlen * 2; open my $wr, '+>', $ARGV[1] or die "$!: couldn't open: $ARGV[1]"; open my $rd, '<', $ARGV[0] or die "$!: couldn't open: $ARGV[0]"; my $size = (stat($rd))[7]; -($size % 24) == 0 or die "Inconsistent size: $size"; -while (sysread($rd, my $buf, 24) == 24) { - my ($r, $c) = unpack('NH40', $buf); - my $offset = $r * 41; +($size % $record_size) == 0 or die "Inconsistent size: $size"; +while (sysread($rd, my $buf, $record_size) == $record_size) { + my ($r, $c) = unpack("NH$hexlen", $buf); + my $offset = $r * ($hexlen + 1); seek $wr, 0, 2 or die $!; my $pos = tell $wr; if ($pos < $offset) { - for (1 .. (($offset - $pos) / 41)) { - print $wr (('0' x 40),"\n") or die $!; + for (1 .. (($offset - $pos) / ($hexlen + 1))) { + print $wr (('0' x $hexlen),"\n") or die $!; } } seek $wr, $offset, 0 or die $!; diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index 1449ee95e9..d2edfa4c50 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -129,6 +129,8 @@ install_script () { prepare_httpd() { mkdir -p "$HTTPD_DOCUMENT_ROOT_PATH" cp "$TEST_PATH"/passwd "$HTTPD_ROOT_PATH" + install_script incomplete-length-upload-pack-v2-http.sh + install_script incomplete-body-upload-pack-v2-http.sh install_script broken-smart-http.sh install_script error-smart-http.sh install_script error.sh diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf index 994e5290d6..afa91e38b0 100644 --- a/t/lib-httpd/apache.conf +++ b/t/lib-httpd/apache.conf @@ -117,6 +117,8 @@ Alias /auth/dumb/ www/auth/dumb/ SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} SetEnv GIT_HTTP_EXPORT_ALL </LocationMatch> +ScriptAlias /smart/incomplete_length/git-upload-pack incomplete-length-upload-pack-v2-http.sh/ +ScriptAlias /smart/incomplete_body/git-upload-pack incomplete-body-upload-pack-v2-http.sh/ ScriptAliasMatch /error_git_upload_pack/(.*)/git-upload-pack error.sh/ ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1 ScriptAlias /broken_smart/ broken-smart-http.sh/ @@ -126,6 +128,12 @@ ScriptAliasMatch /one_time_perl/(.*) apply-one-time-perl.sh/$1 <Directory ${GIT_EXEC_PATH}> Options FollowSymlinks </Directory> +<Files incomplete-length-upload-pack-v2-http.sh> + Options ExecCGI +</Files> +<Files incomplete-body-upload-pack-v2-http.sh> + Options ExecCGI +</Files> <Files broken-smart-http.sh> Options ExecCGI </Files> diff --git a/t/lib-httpd/incomplete-body-upload-pack-v2-http.sh b/t/lib-httpd/incomplete-body-upload-pack-v2-http.sh new file mode 100644 index 0000000000..90e73ef8d5 --- /dev/null +++ b/t/lib-httpd/incomplete-body-upload-pack-v2-http.sh @@ -0,0 +1,3 @@ +printf "Content-Type: text/%s\n" "application/x-git-upload-pack-result" +echo +printf "%s%s" "0079" "45" diff --git a/t/lib-httpd/incomplete-length-upload-pack-v2-http.sh b/t/lib-httpd/incomplete-length-upload-pack-v2-http.sh new file mode 100644 index 0000000000..dce552e348 --- /dev/null +++ b/t/lib-httpd/incomplete-length-upload-pack-v2-http.sh @@ -0,0 +1,3 @@ +printf "Content-Type: text/%s\n" "application/x-git-upload-pack-result" +echo +printf "%s" "00" diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index 64fc6487dd..07c822c8ff 100644 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -183,7 +183,7 @@ test_git_directory_is_unchanged () { ) } -test_git_directory_exists() { +test_git_directory_exists () { test -e ".git/modules/$1" && if test -f sub1/.git then @@ -303,13 +303,17 @@ test_submodule_content () { # update" is run. And even then that command doesn't delete the work tree of # a removed submodule. # +# The first argument of the callback function will be the name of the submodule. +# # Removing a submodule containing a .git directory must fail even when forced -# to protect the history! +# to protect the history! If we are testing this case, the second argument of +# the callback function will be 'test_must_fail', else it will be the empty +# string. # -# Internal function; use test_submodule_switch() or -# test_submodule_forced_switch() instead. -test_submodule_switch_common() { +# Internal function; use test_submodule_switch_func(), test_submodule_switch(), +# or test_submodule_forced_switch() instead. +test_submodule_switch_common () { command="$1" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear creates empty dir ... @@ -443,7 +447,7 @@ test_submodule_switch_common() { ( cd submodule_update && git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - test_must_fail $command replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -456,7 +460,7 @@ test_submodule_switch_common() { cd submodule_update && git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && replace_gitfile_with_git_dir sub1 && - test_must_fail $command replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -470,7 +474,7 @@ test_submodule_switch_common() { ( cd submodule_update && git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - test_must_fail $command replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -484,7 +488,7 @@ test_submodule_switch_common() { cd submodule_update && git branch -t replace_sub1_with_file origin/replace_sub1_with_file && replace_gitfile_with_git_dir sub1 && - test_must_fail $command replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -559,15 +563,28 @@ test_submodule_switch_common() { # conditions, set the appropriate KNOWN_FAILURE_* variable used in the tests # below to 1. # -# Use as follows: +# The first argument of the callback function will be the name of the submodule. +# +# Removing a submodule containing a .git directory must fail even when forced +# to protect the history! If we are testing this case, the second argument of +# the callback function will be 'test_must_fail', else it will be the empty +# string. +# +# The following example uses `git some-command` as an example command to be +# tested. It updates the worktree and index to match a target, but not any +# submodule directories. # # my_func () { -# target=$1 -# # Do something here that updates the worktree and index to match target, -# # but not any submodule directories. +# ...prepare for `git some-command` to be run... +# $2 git some-command "$1" && +# if test -n "$2" +# then +# return +# fi && +# ...check the state after git some-command is run... # } -# test_submodule_switch "my_func" -test_submodule_switch () { +# test_submodule_switch_func "my_func" +test_submodule_switch_func () { command="$1" test_submodule_switch_common "$command" @@ -580,17 +597,33 @@ test_submodule_switch () { cd submodule_update && git branch -t add_sub1 origin/add_sub1 && >sub1 && - test_must_fail $command add_sub1 && + $command add_sub1 test_must_fail && test_superproject_content origin/no_submodule && test_must_be_empty sub1 ) ' } +# Ensures that the that the arg either contains "test_must_fail" or is empty. +may_only_be_test_must_fail () { + test -z "$1" || test "$1" = test_must_fail || die +} + +git_test_func () { + may_only_be_test_must_fail "$2" && + $2 git $gitcmd "$1" +} + +test_submodule_switch () { + gitcmd="$1" + test_submodule_switch_func "git_test_func" +} + # Same as test_submodule_switch(), except that throwing away local changes in # the superproject is allowed. test_submodule_forced_switch () { - command="$1" + gitcmd="$1" + command="git_test_func" KNOWN_FAILURE_FORCED_SWITCH_TESTS=1 test_submodule_switch_common "$command" @@ -631,8 +664,8 @@ test_submodule_forced_switch () { # Internal function; use test_submodule_switch_recursing_with_args() or # test_submodule_forced_switch_recursing_with_args() instead. -test_submodule_recursing_with_args_common() { - command="$1" +test_submodule_recursing_with_args_common () { + command="$1 --recurse-submodules" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear checks it out ... @@ -840,7 +873,7 @@ test_submodule_recursing_with_args_common() { # test_submodule_switch_recursing_with_args "$GIT_COMMAND" test_submodule_switch_recursing_with_args () { cmd_args="$1" - command="git $cmd_args --recurse-submodules" + command="git $cmd_args" test_submodule_recursing_with_args_common "$command" RESULTDS=success @@ -957,7 +990,7 @@ test_submodule_switch_recursing_with_args () { # away local changes in the superproject is allowed. test_submodule_forced_switch_recursing_with_args () { cmd_args="$1" - command="git $cmd_args --recurse-submodules" + command="git $cmd_args" test_submodule_recursing_with_args_common "$command" RESULT=success diff --git a/t/perf/p1400-update-ref.sh b/t/perf/p1400-update-ref.sh new file mode 100755 index 0000000000..d275a81248 --- /dev/null +++ b/t/perf/p1400-update-ref.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +test_description="Tests performance of update-ref" + +. ./perf-lib.sh + +test_perf_fresh_repo + +test_expect_success "setup" ' + test_commit PRE && + test_commit POST && + printf "create refs/heads/%d PRE\n" $(test_seq 1000) >create && + printf "update refs/heads/%d POST PRE\n" $(test_seq 1000) >update && + printf "delete refs/heads/%d POST\n" $(test_seq 1000) >delete +' + +test_perf "update-ref" ' + for i in $(test_seq 1000) + do + git update-ref refs/heads/branch PRE && + git update-ref refs/heads/branch POST PRE && + git update-ref -d refs/heads/branch + done +' + +test_perf "update-ref --stdin" ' + git update-ref --stdin <create && + git update-ref --stdin <update && + git update-ref --stdin <delete +' + +test_done diff --git a/t/t0001-init.sh b/t/t0001-init.sh index 1edd5aeb8f..6d2467995e 100755 --- a/t/t0001-init.sh +++ b/t/t0001-init.sh @@ -464,4 +464,30 @@ test_expect_success MINGW 'redirect std handles' ' grep "Needed a single revision" output.txt ' +test_expect_success '--initial-branch' ' + git init --initial-branch=hello initial-branch-option && + git -C initial-branch-option symbolic-ref HEAD >actual && + echo refs/heads/hello >expect && + test_cmp expect actual && + + : re-initializing should not change the branch name && + git init --initial-branch=ignore initial-branch-option 2>err && + test_i18ngrep "ignored --initial-branch" err && + git -C initial-branch-option symbolic-ref HEAD >actual && + grep hello actual +' + +test_expect_success 'overridden default initial branch name (config)' ' + test_config_global init.defaultBranch nmb && + git init initial-branch-config && + git -C initial-branch-config symbolic-ref HEAD >actual && + grep nmb actual +' + +test_expect_success 'invalid default branch name' ' + test_config_global init.defaultBranch "with space" && + test_must_fail git init initial-branch-invalid 2>err && + test_i18ngrep "invalid branch name" err +' + test_done diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh index 0aa9908ea1..960ed150cb 100755 --- a/t/t0002-gitfile.sh +++ b/t/t0002-gitfile.sh @@ -62,7 +62,7 @@ test_expect_success 'check commit-tree' ' ' test_expect_success 'check rev-list' ' - echo $SHA >"$REAL/HEAD" && + git update-ref "HEAD" "$SHA" && test "$SHA" = "$(git rev-list HEAD)" ' diff --git a/t/t0410-partial-clone.sh b/t/t0410-partial-clone.sh index a3988bd4b8..463dc3a8be 100755 --- a/t/t0410-partial-clone.sh +++ b/t/t0410-partial-clone.sh @@ -30,6 +30,29 @@ test_expect_success 'extensions.partialclone without filter' ' git -C client fetch origin ' +test_expect_success 'convert shallow clone to partial clone' ' + rm -fr server client && + test_create_repo server && + test_commit -C server my_commit 1 && + test_commit -C server my_commit2 1 && + git clone --depth=1 "file://$(pwd)/server" client && + git -C client fetch --unshallow --filter="blob:none" && + test_cmp_config -C client true remote.origin.promisor && + test_cmp_config -C client blob:none remote.origin.partialclonefilter && + test_cmp_config -C client 1 core.repositoryformatversion +' + +test_expect_success 'convert shallow clone to partial clone must fail with any extension' ' + rm -fr server client && + test_create_repo server && + test_commit -C server my_commit 1 && + test_commit -C server my_commit2 1 && + git clone --depth=1 "file://$(pwd)/server" client && + test_cmp_config -C client 0 core.repositoryformatversion && + git -C client config extensions.partialclone origin && + test_must_fail git -C client fetch --unshallow --filter="blob:none" +' + test_expect_success 'missing reflog object, but promised by a commit, passes fsck' ' rm -rf repo && test_create_repo repo && diff --git a/t/t1013-read-tree-submodule.sh b/t/t1013-read-tree-submodule.sh index 91a6fafcb4..b6df7444c0 100755 --- a/t/t1013-read-tree-submodule.sh +++ b/t/t1013-read-tree-submodule.sh @@ -12,8 +12,8 @@ test_submodule_switch_recursing_with_args "read-tree -u -m" test_submodule_forced_switch_recursing_with_args "read-tree -u --reset" -test_submodule_switch "git read-tree -u -m" +test_submodule_switch "read-tree -u -m" -test_submodule_forced_switch "git read-tree -u --reset" +test_submodule_forced_switch "read-tree -u --reset" test_done diff --git a/t/t1050-large.sh b/t/t1050-large.sh index 184b479a21..6a56d1ca24 100755 --- a/t/t1050-large.sh +++ b/t/t1050-large.sh @@ -12,6 +12,7 @@ file_size () { } test_expect_success setup ' + test_oid_init && # clone does not allow us to pass core.bigfilethreshold to # new repos, so set core.bigfilethreshold globally git config --global core.bigfilethreshold 200k && @@ -64,7 +65,7 @@ test_expect_success 'add a large file or two' ' test $count = 1 && cnt=$(git show-index <"$idx" | wc -l) && test $cnt = 2 && - for l in .git/objects/??/?????????????????????????????????????? + for l in .git/objects/$OIDPATH_REGEX do test_path_is_file "$l" || continue bad=t @@ -177,7 +178,8 @@ test_expect_success 'git-show a large file' ' test_expect_success 'index-pack' ' git clone file://"$(pwd)"/.git foo && - GIT_DIR=non-existent git index-pack --strict --verify foo/.git/objects/pack/*.pack + GIT_DIR=non-existent git index-pack --object-format=$(test_oid algo) \ + --strict --verify foo/.git/objects/pack/*.pack ' test_expect_success 'repack' ' diff --git a/t/t1090-sparse-checkout-scope.sh b/t/t1090-sparse-checkout-scope.sh index 40cc004326..f35a73dd20 100755 --- a/t/t1090-sparse-checkout-scope.sh +++ b/t/t1090-sparse-checkout-scope.sh @@ -63,7 +63,6 @@ test_expect_success 'in partial clone, sparse checkout only fetches needed blobs git -C server commit -m message && test_config -C client core.sparsecheckout 1 && - test_config -C client extensions.partialclone origin && echo "!/*" >client/.git/info/sparse-checkout && echo "/a" >>client/.git/info/sparse-checkout && git -C client fetch --filter=blob:none origin && diff --git a/t/t1091-sparse-checkout-builtin.sh b/t/t1091-sparse-checkout-builtin.sh index 88cdde255c..7cd45fc139 100755 --- a/t/t1091-sparse-checkout-builtin.sh +++ b/t/t1091-sparse-checkout-builtin.sh @@ -100,6 +100,28 @@ test_expect_success 'clone --sparse' ' check_files clone a ' +test_expect_success 'interaction with clone --no-checkout (unborn index)' ' + git clone --no-checkout "file://$(pwd)/repo" clone_no_checkout && + git -C clone_no_checkout sparse-checkout init --cone && + git -C clone_no_checkout sparse-checkout set folder1 && + + git -C clone_no_checkout sparse-checkout list >actual && + cat >expect <<-\EOF && + folder1 + EOF + test_cmp expect actual && + + # nothing checked out, expect "No such file or directory" + ! ls clone_no_checkout/* >actual && + test_must_be_empty actual && + test_path_is_missing clone_no_checkout/.git/index && + + # No branch is checked out until we manually switch to one + git -C clone_no_checkout switch master && + test_path_is_file clone_no_checkout/.git/index && + check_files clone_no_checkout a folder1 +' + test_expect_success 'set enables config' ' git init empty-config && ( diff --git a/t/t1302-repo-version.sh b/t/t1302-repo-version.sh index ce4cff13bb..d60c042ce8 100755 --- a/t/t1302-repo-version.sh +++ b/t/t1302-repo-version.sh @@ -8,6 +8,10 @@ test_description='Test repository version check' . ./test-lib.sh test_expect_success 'setup' ' + test_oid_cache <<-\EOF && + version sha1:0 + version sha256:1 + EOF cat >test.patch <<-\EOF && diff --git a/test.txt b/test.txt new file mode 100644 @@ -23,7 +27,7 @@ test_expect_success 'setup' ' ' test_expect_success 'gitdir selection on normal repos' ' - echo 0 >expect && + echo $(test_oid version) >expect && git config core.repositoryformatversion >actual && git -C test config core.repositoryformatversion >actual2 && test_cmp expect actual && diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index e1197ac818..27171f8261 100755 --- a/t/t1400-update-ref.sh +++ b/t/t1400-update-ref.sh @@ -37,15 +37,15 @@ test_expect_success setup ' test_expect_success "create $m" ' git update-ref $m $A && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' test_expect_success "create $m with oldvalue verification" ' git update-ref $m $B $A && - test $B = $(cat .git/$m) + test $B = $(git show-ref -s --verify $m) ' test_expect_success "fail to delete $m with stale ref" ' test_must_fail git update-ref -d $m $A && - test $B = "$(cat .git/$m)" + test $B = "$(git show-ref -s --verify $m)" ' test_expect_success "delete $m" ' test_when_finished "rm -f .git/$m" && @@ -56,7 +56,7 @@ test_expect_success "delete $m" ' test_expect_success "delete $m without oldvalue verification" ' test_when_finished "rm -f .git/$m" && git update-ref $m $A && - test $A = $(cat .git/$m) && + test $A = $(git show-ref -s --verify $m) && git update-ref -d $m && test_path_is_missing .git/$m ' @@ -69,15 +69,15 @@ test_expect_success "fail to create $n" ' test_expect_success "create $m (by HEAD)" ' git update-ref HEAD $A && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' test_expect_success "create $m (by HEAD) with oldvalue verification" ' git update-ref HEAD $B $A && - test $B = $(cat .git/$m) + test $B = $(git show-ref -s --verify $m) ' test_expect_success "fail to delete $m (by HEAD) with stale ref" ' test_must_fail git update-ref -d HEAD $A && - test $B = $(cat .git/$m) + test $B = $(git show-ref -s --verify $m) ' test_expect_success "delete $m (by HEAD)" ' test_when_finished "rm -f .git/$m" && @@ -178,14 +178,14 @@ test_expect_success '--no-create-reflog overrides core.logAllRefUpdates=always' test_expect_success "create $m (by HEAD)" ' git update-ref HEAD $A && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' test_expect_success 'pack refs' ' git pack-refs --all ' test_expect_success "move $m (by HEAD)" ' git update-ref HEAD $B $A && - test $B = $(cat .git/$m) + test $B = $(git show-ref -s --verify $m) ' test_expect_success "delete $m (by HEAD) should remove both packed and loose $m" ' test_when_finished "rm -f .git/$m" && @@ -255,7 +255,7 @@ test_expect_success '(not) change HEAD with wrong SHA1' ' ' test_expect_success "(not) changed .git/$m" ' test_when_finished "rm -f .git/$m" && - ! test $B = $(cat .git/$m) + ! test $B = $(git show-ref -s --verify $m) ' rm -f .git/logs/refs/heads/master @@ -263,19 +263,19 @@ test_expect_success "create $m (logged by touch)" ' test_config core.logAllRefUpdates false && GIT_COMMITTER_DATE="2005-05-26 23:30" \ git update-ref --create-reflog HEAD $A -m "Initial Creation" && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' test_expect_success "update $m (logged by touch)" ' test_config core.logAllRefUpdates false && GIT_COMMITTER_DATE="2005-05-26 23:31" \ git update-ref HEAD $B $A -m "Switch" && - test $B = $(cat .git/$m) + test $B = $(git show-ref -s --verify $m) ' test_expect_success "set $m (logged by touch)" ' test_config core.logAllRefUpdates false && GIT_COMMITTER_DATE="2005-05-26 23:41" \ git update-ref HEAD $A && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' test_expect_success 'empty directory removal' ' @@ -319,19 +319,19 @@ test_expect_success "create $m (logged by config)" ' test_config core.logAllRefUpdates true && GIT_COMMITTER_DATE="2005-05-26 23:32" \ git update-ref HEAD $A -m "Initial Creation" && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' test_expect_success "update $m (logged by config)" ' test_config core.logAllRefUpdates true && GIT_COMMITTER_DATE="2005-05-26 23:33" \ git update-ref HEAD'" $B $A "'-m "Switch" && - test $B = $(cat .git/$m) + test $B = $(git show-ref -s --verify $m) ' test_expect_success "set $m (logged by config)" ' test_config core.logAllRefUpdates true && GIT_COMMITTER_DATE="2005-05-26 23:43" \ git update-ref HEAD $A && - test $A = $(cat .git/$m) + test $A = $(git show-ref -s --verify $m) ' cat >expect <<EOF diff --git a/t/t1416-ref-transaction-hooks.sh b/t/t1416-ref-transaction-hooks.sh new file mode 100755 index 0000000000..da58d867a5 --- /dev/null +++ b/t/t1416-ref-transaction-hooks.sh @@ -0,0 +1,109 @@ +#!/bin/sh + +test_description='reference transaction hooks' + +. ./test-lib.sh + +test_expect_success setup ' + mkdir -p .git/hooks && + test_commit PRE && + test_commit POST && + POST_OID=$(git rev-parse POST) +' + +test_expect_success 'hook allows updating ref if successful' ' + test_when_finished "rm .git/hooks/reference-transaction" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + echo "$*" >>actual + EOF + cat >expect <<-EOF && + prepared + committed + EOF + git update-ref HEAD POST && + test_cmp expect actual +' + +test_expect_success 'hook aborts updating ref in prepared state' ' + test_when_finished "rm .git/hooks/reference-transaction" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = prepared + then + exit 1 + fi + EOF + test_must_fail git update-ref HEAD POST 2>err && + test_i18ngrep "ref updates aborted by hook" err +' + +test_expect_success 'hook gets all queued updates in prepared state' ' + test_when_finished "rm .git/hooks/reference-transaction actual" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = prepared + then + while read -r line + do + printf "%s\n" "$line" + done >actual + fi + EOF + cat >expect <<-EOF && + $ZERO_OID $POST_OID HEAD + $ZERO_OID $POST_OID refs/heads/master + EOF + git update-ref HEAD POST <<-EOF && + update HEAD $ZERO_OID $POST_OID + update refs/heads/master $ZERO_OID $POST_OID + EOF + test_cmp expect actual +' + +test_expect_success 'hook gets all queued updates in committed state' ' + test_when_finished "rm .git/hooks/reference-transaction actual" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = committed + then + while read -r line + do + printf "%s\n" "$line" + done >actual + fi + EOF + cat >expect <<-EOF && + $ZERO_OID $POST_OID HEAD + $ZERO_OID $POST_OID refs/heads/master + EOF + git update-ref HEAD POST && + test_cmp expect actual +' + +test_expect_success 'hook gets all queued updates in aborted state' ' + test_when_finished "rm .git/hooks/reference-transaction actual" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = aborted + then + while read -r line + do + printf "%s\n" "$line" + done >actual + fi + EOF + cat >expect <<-EOF && + $ZERO_OID $POST_OID HEAD + $ZERO_OID $POST_OID refs/heads/master + EOF + git update-ref --stdin <<-EOF && + start + update HEAD POST $ZERO_OID + update refs/heads/master POST $ZERO_OID + abort + EOF + test_cmp expect actual +' + +test_done diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh index 91a6e34f38..344a2aad82 100755 --- a/t/t1450-fsck.sh +++ b/t/t1450-fsck.sh @@ -257,21 +257,34 @@ test_expect_success 'tree object with duplicate entries' ' test_i18ngrep "error in tree .*contains duplicate file entries" out ' -test_expect_success 'tree object with dublicate names' ' - test_when_finished "remove_object \$blob" && - test_when_finished "remove_object \$tree" && - test_when_finished "remove_object \$badtree" && - blob=$(echo blob | git hash-object -w --stdin) && - printf "100644 blob %s\t%s\n" $blob x.2 >tree && - tree=$(git mktree <tree) && - printf "100644 blob %s\t%s\n" $blob x.1 >badtree && - printf "100644 blob %s\t%s\n" $blob x >>badtree && - printf "040000 tree %s\t%s\n" $tree x >>badtree && - badtree=$(git mktree <badtree) && - test_must_fail git fsck 2>out && - test_i18ngrep "$badtree" out && - test_i18ngrep "error in tree .*contains duplicate file entries" out -' +check_duplicate_names () { + expect=$1 && + shift && + names=$@ && + test_expect_$expect "tree object with duplicate names: $names" ' + test_when_finished "remove_object \$blob" && + test_when_finished "remove_object \$tree" && + test_when_finished "remove_object \$badtree" && + blob=$(echo blob | git hash-object -w --stdin) && + printf "100644 blob %s\t%s\n" $blob x.2 >tree && + tree=$(git mktree <tree) && + for name in $names + do + case "$name" in + */) printf "040000 tree %s\t%s\n" $tree "${name%/}" ;; + *) printf "100644 blob %s\t%s\n" $blob "$name" ;; + esac + done >badtree && + badtree=$(git mktree <badtree) && + test_must_fail git fsck 2>out && + test_i18ngrep "$badtree" out && + test_i18ngrep "error in tree .*contains duplicate file entries" out + ' +} + +check_duplicate_names success x x.1 x/ +check_duplicate_names success x x.1.2 x.1/ x/ +check_duplicate_names success x x.1 x.1.2 x/ test_expect_success 'unparseable tree object' ' test_oid_cache <<-\EOF && diff --git a/t/t1506-rev-parse-diagnosis.sh b/t/t1506-rev-parse-diagnosis.sh index 52edcbdcc3..dbf690b9c1 100755 --- a/t/t1506-rev-parse-diagnosis.sh +++ b/t/t1506-rev-parse-diagnosis.sh @@ -207,7 +207,7 @@ test_expect_success 'arg before dashdash must be a revision (ambiguous)' ' { # we do not want to use rev-parse here, because # we are testing it - cat .git/refs/heads/foobar && + git show-ref -s refs/heads/foobar && printf "%s\n" -- } >expect && git rev-parse foobar -- >actual && diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh index dfc0d96d8a..f213aa8053 100755 --- a/t/t1507-rev-parse-upstream.sh +++ b/t/t1507-rev-parse-upstream.sh @@ -137,7 +137,7 @@ test_expect_success 'merge my-side@{u} records the correct name' ' git branch -t new my-side@{u} && git merge -s ours new@{u} && git show -s --pretty=tformat:%s >actual && - echo "Merge remote-tracking branch ${SQ}origin/side${SQ}" >expect && + echo "Merge remote-tracking branch ${SQ}origin/side${SQ} into master" >expect && test_cmp expect actual ) ' diff --git a/t/t2013-checkout-submodule.sh b/t/t2013-checkout-submodule.sh index 8f86b5f4b2..b2bdd1fcb4 100755 --- a/t/t2013-checkout-submodule.sh +++ b/t/t2013-checkout-submodule.sh @@ -68,8 +68,8 @@ test_submodule_switch_recursing_with_args "checkout" test_submodule_forced_switch_recursing_with_args "checkout -f" -test_submodule_switch "git checkout" +test_submodule_switch "checkout" -test_submodule_forced_switch "git checkout -f" +test_submodule_forced_switch "checkout -f" test_done diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh index 21583154d8..5f761bc616 100755 --- a/t/t2018-checkout-branch.sh +++ b/t/t2018-checkout-branch.sh @@ -260,4 +260,14 @@ test_expect_success 'checkout -b to a new branch preserves mergeable changes des test_cmp expect actual ' +test_expect_success 'checkout -b rejects an invalid start point' ' + test_must_fail git checkout -b branch4 file1 2>err && + test_i18ngrep "is not a commit" err +' + +test_expect_success 'checkout -b rejects an extra path argument' ' + test_must_fail git checkout -b branch5 branch1 file1 2>err && + test_i18ngrep "Cannot update paths and switch to branch" err +' + test_done diff --git a/t/t2027-checkout-track.sh b/t/t2027-checkout-track.sh new file mode 100755 index 0000000000..bcba1bf90c --- /dev/null +++ b/t/t2027-checkout-track.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +test_description='tests for git branch --track' + +. ./test-lib.sh + +test_expect_success 'setup' ' + test_commit one && + test_commit two +' + +test_expect_success 'checkout --track -b creates a new tracking branch' ' + git checkout --track -b branch1 master && + test $(git rev-parse --abbrev-ref HEAD) = branch1 && + test $(git config --get branch.branch1.remote) = . && + test $(git config --get branch.branch1.merge) = refs/heads/master +' + +test_expect_success 'checkout --track -b rejects an extra path argument' ' + test_must_fail git checkout --track -b branch2 master one.t 2>err && + test_i18ngrep "cannot be used with updating paths" err +' + +test_done diff --git a/t/t2060-switch.sh b/t/t2060-switch.sh index f9efa29dfb..2c1b8c0d6d 100755 --- a/t/t2060-switch.sh +++ b/t/t2060-switch.sh @@ -68,6 +68,14 @@ test_expect_success 'new orphan branch from empty' ' test_cmp expected tracked-files ' +test_expect_success 'orphan branch works with --discard-changes' ' + test_when_finished git switch master && + echo foo >foo.txt && + git switch --discard-changes --orphan new-orphan2 && + git ls-files >tracked-files && + test_must_be_empty tracked-files +' + test_expect_success 'switching ignores file of same branch name' ' test_when_finished git switch master && : >first-branch && diff --git a/t/t2203-add-intent.sh b/t/t2203-add-intent.sh index 5bbe8dcce4..cf0175ad6e 100755 --- a/t/t2203-add-intent.sh +++ b/t/t2203-add-intent.sh @@ -232,17 +232,53 @@ test_expect_success 'double rename detection in status' ' ) ' -test_expect_success 'diff-files/diff-cached shows ita as new/not-new files' ' +test_expect_success 'i-t-a files shown as new for "diff", "diff-files"; not-new for "diff --cached"' ' git reset --hard && - echo new >new-ita && - git add -N new-ita && + : >empty && + content="foo" && + echo "$content" >not-empty && + + hash_e=$(git hash-object empty) && + hash_n=$(git hash-object not-empty) && + + cat >expect.diff_p <<-EOF && + diff --git a/empty b/empty + new file mode 100644 + index 0000000..$(git rev-parse --short $hash_e) + diff --git a/not-empty b/not-empty + new file mode 100644 + index 0000000..$(git rev-parse --short $hash_n) + --- /dev/null + +++ b/not-empty + @@ -0,0 +1 @@ + +$content + EOF + cat >expect.diff_s <<-EOF && + create mode 100644 empty + create mode 100644 not-empty + EOF + cat >expect.diff_a <<-EOF && + :000000 100644 0000000 0000000 A$(printf "\t")empty + :000000 100644 0000000 0000000 A$(printf "\t")not-empty + EOF + + git add -N empty not-empty && + + git diff >actual && + test_cmp expect.diff_p actual && + git diff --summary >actual && - echo " create mode 100644 new-ita" >expected && - test_cmp expected actual && - git diff --cached --summary >actual2 && - test_must_be_empty actual2 -' + test_cmp expect.diff_s actual && + + git diff-files -p >actual && + test_cmp expect.diff_p actual && + git diff-files --abbrev >actual && + test_cmp expect.diff_a actual && + + git diff --cached >actual && + test_must_be_empty actual +' test_expect_success '"diff HEAD" includes ita as new files' ' git reset --hard && diff --git a/t/t2401-worktree-prune.sh b/t/t2401-worktree-prune.sh index b7d6d5d45a..a6ce7f590b 100755 --- a/t/t2401-worktree-prune.sh +++ b/t/t2401-worktree-prune.sh @@ -92,4 +92,28 @@ test_expect_success 'not prune proper checkouts' ' test -d .git/worktrees/nop ' +test_expect_success 'prune duplicate (linked/linked)' ' + test_when_finished rm -fr .git/worktrees w1 w2 && + git worktree add --detach w1 && + git worktree add --detach w2 && + sed "s/w2/w1/" .git/worktrees/w2/gitdir >.git/worktrees/w2/gitdir.new && + mv .git/worktrees/w2/gitdir.new .git/worktrees/w2/gitdir && + git worktree prune --verbose >actual && + test_i18ngrep "duplicate entry" actual && + test -d .git/worktrees/w1 && + ! test -d .git/worktrees/w2 +' + +test_expect_success 'prune duplicate (main/linked)' ' + test_when_finished rm -fr repo wt && + test_create_repo repo && + test_commit -C repo x && + git -C repo worktree add --detach ../wt && + rm -fr wt && + mv repo wt && + git -C wt worktree prune --verbose >actual && + test_i18ngrep "duplicate entry" actual && + ! test -d .git/worktrees/wt +' + test_done diff --git a/t/t2403-worktree-move.sh b/t/t2403-worktree-move.sh index 939d18d728..a4e1a178e0 100755 --- a/t/t2403-worktree-move.sh +++ b/t/t2403-worktree-move.sh @@ -112,6 +112,27 @@ test_expect_success 'move locked worktree (force)' ' git worktree move --force --force flump ploof ' +test_expect_success 'refuse to move worktree atop existing path' ' + >bobble && + git worktree add --detach beeble && + test_must_fail git worktree move beeble bobble +' + +test_expect_success 'move atop existing but missing worktree' ' + git worktree add --detach gnoo && + git worktree add --detach pneu && + rm -fr pneu && + test_must_fail git worktree move gnoo pneu && + git worktree move --force gnoo pneu && + + git worktree add --detach nu && + git worktree lock nu && + rm -fr nu && + test_must_fail git worktree move pneu nu && + test_must_fail git worktree --force move pneu nu && + git worktree move --force --force pneu nu +' + test_expect_success 'move a repo with uninitialized submodule' ' git init withsub && ( diff --git a/t/t2404-worktree-config.sh b/t/t2404-worktree-config.sh index 286121d8de..9536d10919 100755 --- a/t/t2404-worktree-config.sh +++ b/t/t2404-worktree-config.sh @@ -23,8 +23,10 @@ test_expect_success 'config --worktree without extension' ' ' test_expect_success 'enable worktreeConfig extension' ' + git config core.repositoryformatversion 1 && git config extensions.worktreeConfig true && - test_cmp_config true extensions.worktreeConfig + test_cmp_config true extensions.worktreeConfig && + test_cmp_config 1 core.repositoryformatversion ' test_expect_success 'config is shared as before' ' diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index 411a70b0ce..b6aa04bbec 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -323,11 +323,11 @@ test_expect_success 'git branch --list -v with --abbrev' ' test_expect_success 'git branch --column' ' COLUMNS=81 git branch --column=column >actual && - cat >expected <<\EOF && + cat >expect <<\EOF && a/b/c bam foo l * master mb o/o q abc bar j/k m/m master2 n o/p r EOF - test_cmp expected actual + test_cmp expect actual ' test_expect_success 'git branch --column with an extremely long branch name' ' @@ -336,7 +336,7 @@ test_expect_success 'git branch --column with an extremely long branch name' ' test_when_finished "git branch -d $long" && git branch $long && COLUMNS=80 git branch --column=column >actual && - cat >expected <<EOF && + cat >expect <<EOF && a/b/c abc bam @@ -355,7 +355,7 @@ test_expect_success 'git branch --column with an extremely long branch name' ' r $long EOF - test_cmp expected actual + test_cmp expect actual ' test_expect_success 'git branch with column.*' ' @@ -364,11 +364,11 @@ test_expect_success 'git branch with column.*' ' COLUMNS=80 git branch >actual && git config --unset column.branch && git config --unset column.ui && - cat >expected <<\EOF && + cat >expect <<\EOF && a/b/c bam foo l * master mb o/o q abc bar j/k m/m master2 n o/p r EOF - test_cmp expected actual + test_cmp expect actual ' test_expect_success 'git branch --column -v should fail' ' @@ -379,7 +379,7 @@ test_expect_success 'git branch -v with column.ui ignored' ' git config column.ui column && COLUMNS=80 git branch -v | cut -c -10 | sed "s/ *$//" >actual && git config --unset column.ui && - cat >expected <<\EOF && + cat >expect <<\EOF && a/b/c abc bam @@ -397,12 +397,12 @@ test_expect_success 'git branch -v with column.ui ignored' ' q r EOF - test_cmp expected actual + test_cmp expect actual ' mv .git/config .git/config-saved -test_expect_success 'git branch -m q q2 without config should succeed' ' +test_expect_success SHA1 'git branch -m q q2 without config should succeed' ' git branch -m q q2 && git branch -m q2 q ' @@ -835,32 +835,42 @@ test_expect_success 'branch from tag w/--track causes failure' ' ' test_expect_success '--set-upstream-to fails on multiple branches' ' - test_must_fail git branch --set-upstream-to master a b c + echo "fatal: too many arguments to set new upstream" >expect && + test_must_fail git branch --set-upstream-to master a b c 2>err && + test_i18ncmp expect err ' test_expect_success '--set-upstream-to fails on detached HEAD' ' git checkout HEAD^{} && - test_must_fail git branch --set-upstream-to master && - git checkout - + test_when_finished git checkout - && + echo "fatal: could not set upstream of HEAD to master when it does not point to any branch." >expect && + test_must_fail git branch --set-upstream-to master 2>err && + test_i18ncmp expect err ' test_expect_success '--set-upstream-to fails on a missing dst branch' ' - test_must_fail git branch --set-upstream-to master does-not-exist + echo "fatal: branch '"'"'does-not-exist'"'"' does not exist" >expect && + test_must_fail git branch --set-upstream-to master does-not-exist 2>err && + test_i18ncmp expect err ' test_expect_success '--set-upstream-to fails on a missing src branch' ' - test_must_fail git branch --set-upstream-to does-not-exist master + test_must_fail git branch --set-upstream-to does-not-exist master 2>err && + test_i18ngrep "the requested upstream branch '"'"'does-not-exist'"'"' does not exist" err ' test_expect_success '--set-upstream-to fails on a non-ref' ' - test_must_fail git branch --set-upstream-to HEAD^{} + echo "fatal: Cannot setup tracking information; starting point '"'"'HEAD^{}'"'"' is not a branch." >expect && + test_must_fail git branch --set-upstream-to HEAD^{} 2>err && + test_i18ncmp expect err ' test_expect_success '--set-upstream-to fails on locked config' ' test_when_finished "rm -f .git/config.lock" && >.git/config.lock && git branch locked && - test_must_fail git branch --set-upstream-to locked + test_must_fail git branch --set-upstream-to locked 2>err && + test_i18ngrep "could not lock config file .git/config: File exists" err ' test_expect_success 'use --set-upstream-to modify HEAD' ' @@ -881,14 +891,17 @@ test_expect_success 'use --set-upstream-to modify a particular branch' ' ' test_expect_success '--unset-upstream should fail if given a non-existent branch' ' - test_must_fail git branch --unset-upstream i-dont-exist + echo "fatal: Branch '"'"'i-dont-exist'"'"' has no upstream information" >expect && + test_must_fail git branch --unset-upstream i-dont-exist 2>err && + test_i18ncmp expect err ' test_expect_success '--unset-upstream should fail if config is locked' ' test_when_finished "rm -f .git/config.lock" && git branch --set-upstream-to locked && >.git/config.lock && - test_must_fail git branch --unset-upstream + test_must_fail git branch --unset-upstream 2>err && + test_i18ngrep "could not lock config file .git/config: File exists" err ' test_expect_success 'test --unset-upstream on HEAD' ' @@ -900,17 +913,23 @@ test_expect_success 'test --unset-upstream on HEAD' ' test_must_fail git config branch.master.remote && test_must_fail git config branch.master.merge && # fail for a branch without upstream set - test_must_fail git branch --unset-upstream + echo "fatal: Branch '"'"'master'"'"' has no upstream information" >expect && + test_must_fail git branch --unset-upstream 2>err && + test_i18ncmp expect err ' test_expect_success '--unset-upstream should fail on multiple branches' ' - test_must_fail git branch --unset-upstream a b c + echo "fatal: too many arguments to unset upstream" >expect && + test_must_fail git branch --unset-upstream a b c 2>err && + test_i18ncmp expect err ' test_expect_success '--unset-upstream should fail on detached HEAD' ' git checkout HEAD^{} && - test_must_fail git branch --unset-upstream && - git checkout - + test_when_finished git checkout - && + echo "fatal: could not unset upstream of HEAD when it does not point to any branch." >expect && + test_must_fail git branch --unset-upstream 2>err && + test_i18ncmp expect err ' test_expect_success 'test --unset-upstream on a particular branch' ' @@ -922,17 +941,17 @@ test_expect_success 'test --unset-upstream on a particular branch' ' ' test_expect_success 'disabled option --set-upstream fails' ' - test_must_fail git branch --set-upstream origin/master + test_must_fail git branch --set-upstream origin/master ' test_expect_success '--set-upstream-to notices an error to set branch as own upstream' ' git branch --set-upstream-to refs/heads/my13 my13 2>actual && - cat >expected <<-\EOF && + cat >expect <<-\EOF && warning: Not setting branch my13 as its own upstream. EOF test_expect_code 1 git config branch.my13.remote && test_expect_code 1 git config branch.my13.merge && - test_i18ncmp expected actual + test_i18ncmp expect actual ' # Keep this test last, as it changes the current branch diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh index a2bba04ba9..0ad3a07bf4 100755 --- a/t/t3426-rebase-submodule.sh +++ b/t/t3426-rebase-submodule.sh @@ -17,10 +17,11 @@ git_rebase () { git status -su >actual && ls -1pR * >>actual && test_cmp expect actual && - git rebase "$1" + may_only_be_test_must_fail "$2" && + $2 git rebase "$1" } -test_submodule_switch "git_rebase" +test_submodule_switch_func "git_rebase" git_rebase_interactive () { git status -su >expect && @@ -35,10 +36,11 @@ git_rebase_interactive () { test_cmp expect actual && set_fake_editor && echo "fake-editor.sh" >.git/info/exclude && - git rebase -i "$1" + may_only_be_test_must_fail "$2" && + $2 git rebase -i "$1" } -test_submodule_switch "git_rebase_interactive" +test_submodule_switch_func "git_rebase_interactive" test_expect_success 'rebase interactive ignores modified submodules' ' test_when_finished "rm -rf super sub" && diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh index a1bc3e2001..b454f400eb 100755 --- a/t/t3430-rebase-merges.sh +++ b/t/t3430-rebase-merges.sh @@ -420,7 +420,7 @@ test_expect_success 'with --autosquash and --exec' ' git commit --fixup B B.t && write_script show.sh <<-\EOF && subject="$(git show -s --format=%s HEAD)" - content="$(git diff HEAD^! | tail -n 1)" + content="$(git diff HEAD^ HEAD | tail -n 1)" echo "$subject: $content" EOF test_tick && diff --git a/t/t3512-cherry-pick-submodule.sh b/t/t3512-cherry-pick-submodule.sh index bd78287841..6ece1d8573 100755 --- a/t/t3512-cherry-pick-submodule.sh +++ b/t/t3512-cherry-pick-submodule.sh @@ -7,7 +7,7 @@ test_description='cherry-pick can handle submodules' KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git cherry-pick" +test_submodule_switch "cherry-pick" test_expect_success 'unrelated submodule/file conflict is ignored' ' test_create_repo sub && diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh index 5e39fcdb66..a759f12cbb 100755 --- a/t/t3513-revert-submodule.sh +++ b/t/t3513-revert-submodule.sh @@ -15,7 +15,12 @@ git_revert () { git status -su >expect && ls -1pR * >>expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && - git checkout "$1" && + may_only_be_test_must_fail "$2" && + $2 git checkout "$1" && + if test -n "$2" + then + return + fi && git revert HEAD && rm -rf * && tar xf "$TRASH_DIRECTORY/tmp.tar" && @@ -26,6 +31,6 @@ git_revert () { } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch "git_revert" +test_submodule_switch_func "git_revert" test_done diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh index b3d8bb7577..49decbac71 100755 --- a/t/t3701-add-interactive.sh +++ b/t/t3701-add-interactive.sh @@ -412,6 +412,25 @@ test_expect_success 'deleting an empty file' ' diff_cmp expected diff ' +test_expect_success 'adding an empty file' ' + git init added && + ( + cd added && + test_commit initial && + >empty && + git add empty && + test_tick && + git commit -m empty && + git tag added-file && + git reset --hard HEAD^ && + test_path_is_missing empty && + + echo y | git checkout -p added-file -- >actual && + test_path_is_file empty && + test_i18ngrep "Apply addition to index and worktree" actual + ) +' + test_expect_success 'split hunk setup' ' git reset --hard && test_write_lines 10 20 30 40 50 60 >test && diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index b93d1d74da..a52e53dd2d 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -8,7 +8,12 @@ test_description='stash can handle submodules' git_stash () { git status -su >expect && ls -1pR * >>expect && - git read-tree -u -m "$1" && + may_only_be_test_must_fail "$2" && + $2 git read-tree -u -m "$1" && + if test -n "$2" + then + return + fi && git stash && git status -su >actual && ls -1pR * >>actual && @@ -19,7 +24,7 @@ git_stash () { KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES=1 KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch "git_stash" +test_submodule_switch_func "git_stash" setup_basic () { test_when_finished "rm -rf main sub" && diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 3f60f7d96c..43267d6024 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -117,12 +117,12 @@ test_expect_success setup ' : <<\EOF ! [initial] Initial - * [master] Merge branch 'side' + * [master] Merge branch 'side' into master ! [rearrange] Rearranged lines in dir/sub ! [side] Side ---- + [rearrange] Rearranged lines in dir/sub - - [master] Merge branch 'side' + - [master] Merge branch 'side' into master * + [side] Side * [master^] Third * [master~2] Second diff --git a/t/t4013/diff.log_--decorate=full_--all b/t/t4013/diff.log_--decorate=full_--all index 3f9b872ece..c56783b985 100644 --- a/t/t4013/diff.log_--decorate=full_--all +++ b/t/t4013/diff.log_--decorate=full_--all @@ -31,7 +31,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a (refs/heads/side) Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--decorate_--all b/t/t4013/diff.log_--decorate_--all index f5e20e1e14..1cbdc038f4 100644 --- a/t/t4013/diff.log_--decorate_--all +++ b/t/t4013/diff.log_--decorate_--all @@ -31,7 +31,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a (side) Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--patch-with-stat_--summary_master_--_dir_ b/t/t4013/diff.log_--patch-with-stat_--summary_master_--_dir_ index a18f1472a9..f5b1b6516b 100644 --- a/t/t4013/diff.log_--patch-with-stat_--summary_master_--_dir_ +++ b/t/t4013/diff.log_--patch-with-stat_--summary_master_--_dir_ @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--patch-with-stat_master b/t/t4013/diff.log_--patch-with-stat_master index ae425c4672..af23803cdc 100644 --- a/t/t4013/diff.log_--patch-with-stat_master +++ b/t/t4013/diff.log_--patch-with-stat_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--patch-with-stat_master_--_dir_ b/t/t4013/diff.log_--patch-with-stat_master_--_dir_ index d5207cadf4..814098fbf8 100644 --- a/t/t4013/diff.log_--patch-with-stat_master_--_dir_ +++ b/t/t4013/diff.log_--patch-with-stat_master_--_dir_ @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--root_--cc_--patch-with-stat_--summary_master b/t/t4013/diff.log_--root_--cc_--patch-with-stat_--summary_master index 0fc1e8cd71..b927fe4a98 100644 --- a/t/t4013/diff.log_--root_--cc_--patch-with-stat_--summary_master +++ b/t/t4013/diff.log_--root_--cc_--patch-with-stat_--summary_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master dir/sub | 2 ++ file0 | 3 +++ diff --git a/t/t4013/diff.log_--root_--patch-with-stat_--summary_master b/t/t4013/diff.log_--root_--patch-with-stat_--summary_master index dffc09dde9..6db3cea329 100644 --- a/t/t4013/diff.log_--root_--patch-with-stat_--summary_master +++ b/t/t4013/diff.log_--root_--patch-with-stat_--summary_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--root_--patch-with-stat_master b/t/t4013/diff.log_--root_--patch-with-stat_master index 55aa98012d..98e9c320c3 100644 --- a/t/t4013/diff.log_--root_--patch-with-stat_master +++ b/t/t4013/diff.log_--root_--patch-with-stat_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--root_-c_--patch-with-stat_--summary_master b/t/t4013/diff.log_--root_-c_--patch-with-stat_--summary_master index 019d85f7de..b61b1117ae 100644 --- a/t/t4013/diff.log_--root_-c_--patch-with-stat_--summary_master +++ b/t/t4013/diff.log_--root_-c_--patch-with-stat_--summary_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master dir/sub | 2 ++ file0 | 3 +++ diff --git a/t/t4013/diff.log_--root_-p_master b/t/t4013/diff.log_--root_-p_master index b42c334439..345bd9e8a9 100644 --- a/t/t4013/diff.log_--root_-p_master +++ b/t/t4013/diff.log_--root_-p_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_--root_master b/t/t4013/diff.log_--root_master index e8f46159da..db56b1fe6b 100644 --- a/t/t4013/diff.log_--root_master +++ b/t/t4013/diff.log_--root_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_-m_-p_--first-parent_master b/t/t4013/diff.log_-m_-p_--first-parent_master index 7a0073f529..bcadb50e26 100644 --- a/t/t4013/diff.log_-m_-p_--first-parent_master +++ b/t/t4013/diff.log_-m_-p_--first-parent_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --git a/dir/sub b/dir/sub index cead32e..992913c 100644 diff --git a/t/t4013/diff.log_-m_-p_master b/t/t4013/diff.log_-m_-p_master index 9ca62a01ed..2acf43a9fb 100644 --- a/t/t4013/diff.log_-m_-p_master +++ b/t/t4013/diff.log_-m_-p_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --git a/dir/sub b/dir/sub index cead32e..992913c 100644 @@ -33,7 +33,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --git a/dir/sub b/dir/sub index 7289e35..992913c 100644 diff --git a/t/t4013/diff.log_-p_--first-parent_master b/t/t4013/diff.log_-p_--first-parent_master index 3fc896d424..c6a5876d80 100644 --- a/t/t4013/diff.log_-p_--first-parent_master +++ b/t/t4013/diff.log_-p_--first-parent_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_-p_master b/t/t4013/diff.log_-p_master index bf1326dc36..1841cded94 100644 --- a/t/t4013/diff.log_-p_master +++ b/t/t4013/diff.log_-p_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.log_master b/t/t4013/diff.log_master index a8f6ce5abd..f8ec445eb3 100644 --- a/t/t4013/diff.log_master +++ b/t/t4013/diff.log_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Author: A U Thor <author@example.com> diff --git a/t/t4013/diff.show_--first-parent_master b/t/t4013/diff.show_--first-parent_master index 3dcbe473a0..94548f4598 100644 --- a/t/t4013/diff.show_--first-parent_master +++ b/t/t4013/diff.show_--first-parent_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --git a/dir/sub b/dir/sub index cead32e..992913c 100644 diff --git a/t/t4013/diff.show_-c_master b/t/t4013/diff.show_-c_master index 81aba8da96..1c46ed64fd 100644 --- a/t/t4013/diff.show_-c_master +++ b/t/t4013/diff.show_-c_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --combined dir/sub index cead32e,7289e35..992913c diff --git a/t/t4013/diff.show_-m_master b/t/t4013/diff.show_-m_master index 4ea2ee453d..7559fc22f8 100644 --- a/t/t4013/diff.show_-m_master +++ b/t/t4013/diff.show_-m_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --git a/dir/sub b/dir/sub index cead32e..992913c 100644 @@ -33,7 +33,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --git a/dir/sub b/dir/sub index 7289e35..992913c 100644 diff --git a/t/t4013/diff.show_master b/t/t4013/diff.show_master index fb08ce0e46..57091c5d90 100644 --- a/t/t4013/diff.show_master +++ b/t/t4013/diff.show_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master diff --cc dir/sub index cead32e,7289e35..992913c diff --git a/t/t4013/diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master b/t/t4013/diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master index 30aae7817b..5f13a71bb5 100644 --- a/t/t4013/diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master +++ b/t/t4013/diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master dir/sub | 2 ++ file0 | 3 +++ diff --git a/t/t4013/diff.whatchanged_--root_-c_--patch-with-stat_--summary_master b/t/t4013/diff.whatchanged_--root_-c_--patch-with-stat_--summary_master index d1d32bd34c..8acb88267b 100644 --- a/t/t4013/diff.whatchanged_--root_-c_--patch-with-stat_--summary_master +++ b/t/t4013/diff.whatchanged_--root_-c_--patch-with-stat_--summary_master @@ -4,7 +4,7 @@ Merge: 9a6d494 c7a2ab9 Author: A U Thor <author@example.com> Date: Mon Jun 26 00:04:00 2006 +0000 - Merge branch 'side' + Merge branch 'side' into master dir/sub | 2 ++ file0 | 3 +++ diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh index db7e733af9..958c2da56e 100755 --- a/t/t4014-format-patch.sh +++ b/t/t4014-format-patch.sh @@ -81,16 +81,16 @@ test_expect_success 'format-patch --ignore-if-in-upstream handles tags' ' ' test_expect_success "format-patch doesn't consider merge commits" ' - git checkout -b slave master && + git checkout -b feature master && echo "Another line" >>file && test_tick && - git commit -am "Slave change #1" && + git commit -am "Feature branch change #1" && echo "Yet another line" >>file && test_tick && - git commit -am "Slave change #2" && + git commit -am "Feature branch change #2" && git checkout -b merger master && test_tick && - git merge --no-ff slave && + git merge --no-ff feature && git format-patch -3 --stdout >patch && grep "^From " patch >from && test_line_count = 3 from @@ -1602,6 +1602,19 @@ test_expect_success 'format patch ignores color.ui' ' test_cmp expect actual ' +test_expect_success 'format patch respects diff.relative' ' + rm -rf subdir && + mkdir subdir && + echo other content >subdir/file2 && + git add subdir/file2 && + git commit -F msg && + test_unconfig diff.relative && + git format-patch --relative=subdir --stdout -1 >expect && + test_config diff.relative true && + git -C subdir format-patch --stdout -1 >actual && + test_cmp expect actual +' + test_expect_success 'cover letter with invalid --cover-from-description and config' ' test_config branch.rebuild-1.description "config subject diff --git a/t/t4045-diff-relative.sh b/t/t4045-diff-relative.sh index 258808708e..7be1de736d 100755 --- a/t/t4045-diff-relative.sh +++ b/t/t4045-diff-relative.sh @@ -8,7 +8,8 @@ test_expect_success 'setup' ' echo content >file1 && mkdir subdir && echo other content >subdir/file2 && - blob=$(git hash-object subdir/file2) && + blob_file1=$(git hash-object file1) && + blob_file2=$(git hash-object subdir/file2) && git add . && git commit -m one ' @@ -18,7 +19,7 @@ check_diff () { shift expect=$1 shift - short_blob=$(git rev-parse --short $blob) + short_blob=$(git rev-parse --short $blob_file2) cat >expected <<-EOF diff --git a/$expect b/$expect new file mode 100644 @@ -70,7 +71,7 @@ check_raw () { expect=$1 shift cat >expected <<-EOF - :000000 100644 $ZERO_OID $blob A $expect + :000000 100644 $ZERO_OID $blob_file2 A $expect EOF test_expect_success "--raw $*" " git -C '$dir' diff --no-abbrev --raw $* HEAD^ >actual && @@ -86,4 +87,79 @@ do check_$type . dir/file2 --relative=sub done +check_diff_relative_option () { + dir=$1 + shift + expect=$1 + shift + relative_opt=$1 + shift + test_expect_success "config diff.relative $relative_opt -p $*" " + short_blob=\$(git rev-parse --short $blob_file2) && + cat >expected <<-EOF && + diff --git a/$expect b/$expect + new file mode 100644 + index 0000000..\$short_blob + --- /dev/null + +++ b/$expect + @@ -0,0 +1 @@ + +other content + EOF + test_config -C $dir diff.relative $relative_opt && + git -C '$dir' diff -p $* HEAD^ >actual && + test_cmp expected actual + " +} + +check_diff_no_relative_option () { + dir=$1 + shift + expect=$1 + shift + relative_opt=$1 + shift + test_expect_success "config diff.relative $relative_opt -p $*" " + short_blob_file1=\$(git rev-parse --short $blob_file1) && + short_blob_file2=\$(git rev-parse --short $blob_file2) && + cat >expected <<-EOF && + diff --git a/file1 b/file1 + new file mode 100644 + index 0000000..\$short_blob_file1 + --- /dev/null + +++ b/file1 + @@ -0,0 +1 @@ + +content + diff --git a/$expect b/$expect + new file mode 100644 + index 0000000..\$short_blob_file2 + --- /dev/null + +++ b/$expect + @@ -0,0 +1 @@ + +other content + EOF + test_config -C $dir diff.relative $relative_opt && + git -C '$dir' diff -p $* HEAD^ >actual && + test_cmp expected actual + " +} + +check_diff_no_relative_option . subdir/file2 false +check_diff_no_relative_option . subdir/file2 true --no-relative +check_diff_no_relative_option . subdir/file2 false --no-relative +check_diff_no_relative_option subdir subdir/file2 false +check_diff_no_relative_option subdir subdir/file2 true --no-relative +check_diff_no_relative_option subdir subdir/file2 false --no-relative + +check_diff_relative_option . file2 false --relative=subdir/ +check_diff_relative_option . file2 false --relative=subdir +check_diff_relative_option . file2 true --relative=subdir/ +check_diff_relative_option . file2 true --relative=subdir +check_diff_relative_option subdir file2 false --relative +check_diff_relative_option subdir file2 true --relative +check_diff_relative_option subdir file2 true +check_diff_relative_option subdir file2 false --no-relative --relative +check_diff_relative_option subdir file2 true --no-relative --relative +check_diff_relative_option . file2 false --no-relative --relative=subdir +check_diff_relative_option . file2 true --no-relative --relative=subdir + test_done diff --git a/t/t4068-diff-symmetric.sh b/t/t4068-diff-symmetric.sh new file mode 100755 index 0000000000..31d17a5af0 --- /dev/null +++ b/t/t4068-diff-symmetric.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +test_description='behavior of diff with symmetric-diff setups' + +. ./test-lib.sh + +# build these situations: +# - normal merge with one merge base (br1...b2r); +# - criss-cross merge ie 2 merge bases (br1...master); +# - disjoint subgraph (orphan branch, br3...master). +# +# B---E <-- master +# / \ / +# A X +# \ / \ +# C---D--G <-- br1 +# \ / +# ---F <-- br2 +# +# H <-- br3 +# +# We put files into a few commits so that we can verify the +# output as well. + +test_expect_success setup ' + git commit --allow-empty -m A && + echo b >b && + git add b && + git commit -m B && + git checkout -b br1 HEAD^ && + echo c >c && + git add c && + git commit -m C && + git tag commit-C && + git merge -m D master && + git tag commit-D && + git checkout master && + git merge -m E commit-C && + git checkout -b br2 commit-C && + echo f >f && + git add f && + git commit -m F && + git checkout br1 && + git merge -m G br2 && + git checkout --orphan br3 && + git commit -m H +' + +test_expect_success 'diff with one merge base' ' + git diff commit-D...br1 >tmp && + tail -n 1 tmp >actual && + echo +f >expect && + test_cmp expect actual +' + +# The output (in tmp) can have +b or +c depending +# on which merge base (commit B or C) is picked. +# It should have one of those two, which comes out +# to seven lines. +test_expect_success 'diff with two merge bases' ' + git diff br1...master >tmp 2>err && + test_line_count = 7 tmp && + test_line_count = 1 err +' + +test_expect_success 'diff with no merge bases' ' + test_must_fail git diff br2...br3 >tmp 2>err && + test_i18ngrep "fatal: br2...br3: no merge base" err +' + +test_expect_success 'diff with too many symmetric differences' ' + test_must_fail git diff br1...master br2...br3 >tmp 2>err && + test_i18ngrep "usage" err +' + +test_expect_success 'diff with symmetric difference and extraneous arg' ' + test_must_fail git diff master br1...master >tmp 2>err && + test_i18ngrep "usage" err +' + +test_expect_success 'diff with two ranges' ' + test_must_fail git diff master br1..master br2..br3 >tmp 2>err && + test_i18ngrep "usage" err +' + +test_expect_success 'diff with ranges and extra arg' ' + test_must_fail git diff master br1..master commit-D >tmp 2>err && + test_i18ngrep "usage" err +' + +test_done diff --git a/t/t4137-apply-submodule.sh b/t/t4137-apply-submodule.sh index a9bd40a6d0..07d5262537 100755 --- a/t/t4137-apply-submodule.sh +++ b/t/t4137-apply-submodule.sh @@ -6,15 +6,19 @@ test_description='git apply handling submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh apply_index () { - git diff --ignore-submodules=dirty "..$1" | git apply --index - + git diff --ignore-submodules=dirty "..$1" >diff && + may_only_be_test_must_fail "$2" && + $2 git apply --index diff } -test_submodule_switch "apply_index" +test_submodule_switch_func "apply_index" apply_3way () { - git diff --ignore-submodules=dirty "..$1" | git apply --3way - + git diff --ignore-submodules=dirty "..$1" >diff && + may_only_be_test_must_fail "$2" && + $2 git apply --3way diff } -test_submodule_switch "apply_3way" +test_submodule_switch_func "apply_3way" test_done diff --git a/t/t4202-log.sh b/t/t4202-log.sh index f1ea7d97f5..fd9af658af 100755 --- a/t/t4202-log.sh +++ b/t/t4202-log.sh @@ -483,7 +483,7 @@ test_expect_success 'set up merge history' ' ' cat > expect <<\EOF -* Merge branch 'side' +* Merge branch 'side' into master |\ | * side-2 | * side-1 @@ -502,7 +502,7 @@ test_expect_success 'log --graph with merge' ' ' cat > expect <<\EOF -| | | * Merge branch 'side' +| | | * Merge branch 'side' into master | | | |\ | | | | * side-2 | | | | * side-1 @@ -521,7 +521,7 @@ test_expect_success 'log --graph --line-prefix="| | | " with merge' ' ' cat > expect.colors <<\EOF -* Merge branch 'side' +* Merge branch 'side' into master <BLUE>|<RESET><CYAN>\<RESET> <BLUE>|<RESET> * side-2 <BLUE>|<RESET> * side-1 @@ -555,7 +555,7 @@ cat > expect <<\EOF |\ Merge: A B | | Author: A U Thor <author@example.com> | | -| | Merge branch 'side' +| | Merge branch 'side' into master | | | * commit tags/side-2 | | Author: A U Thor <author@example.com> @@ -632,11 +632,11 @@ test_expect_success 'set up more tangled history' ' ' cat > expect <<\EOF -* Merge tag 'reach' +* Merge tag 'reach' into master |\ | \ | \ -*-. \ Merge tags 'octopus-a' and 'octopus-b' +*-. \ Merge tags 'octopus-a' and 'octopus-b' into master |\ \ \ * | | | seventh | | * | octopus-b @@ -646,14 +646,14 @@ cat > expect <<\EOF |/ / | * reach |/ -* Merge branch 'tangle' +* Merge branch 'tangle' into master |\ | * Merge branch 'side' (early part) into tangle | |\ | * \ Merge branch 'master' (early part) into tangle | |\ \ | * | | tangle-a -* | | | Merge branch 'side' +* | | | Merge branch 'side' into master |\ \ \ \ | * | | | side-2 | | |_|/ @@ -735,16 +735,16 @@ test_expect_success 'log.decorate configuration' ' test_expect_success 'decorate-refs with glob' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master + Merge-tags-octopus-a-and-octopus-b-into-master seventh octopus-b (octopus-b) octopus-a (octopus-a) reach EOF cat >expect.no-decorate <<-\EOF && - Merge-tag-reach - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master + Merge-tags-octopus-a-and-octopus-b-into-master seventh octopus-b octopus-a @@ -765,8 +765,8 @@ test_expect_success 'decorate-refs with glob' ' test_expect_success 'decorate-refs without globs' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master + Merge-tags-octopus-a-and-octopus-b-into-master seventh octopus-b octopus-a @@ -779,8 +779,8 @@ test_expect_success 'decorate-refs without globs' ' test_expect_success 'multiple decorate-refs' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master + Merge-tags-octopus-a-and-octopus-b-into-master seventh octopus-b (octopus-b) octopus-a (octopus-a) @@ -794,8 +794,8 @@ test_expect_success 'multiple decorate-refs' ' test_expect_success 'decorate-refs-exclude with glob' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach (HEAD -> master) - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master (HEAD -> master) + Merge-tags-octopus-a-and-octopus-b-into-master seventh (tag: seventh) octopus-b (tag: octopus-b) octopus-a (tag: octopus-a) @@ -811,8 +811,8 @@ test_expect_success 'decorate-refs-exclude with glob' ' test_expect_success 'decorate-refs-exclude without globs' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach (HEAD -> master) - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master (HEAD -> master) + Merge-tags-octopus-a-and-octopus-b-into-master seventh (tag: seventh) octopus-b (tag: octopus-b, octopus-b) octopus-a (tag: octopus-a, octopus-a) @@ -828,8 +828,8 @@ test_expect_success 'decorate-refs-exclude without globs' ' test_expect_success 'multiple decorate-refs-exclude' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach (HEAD -> master) - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master (HEAD -> master) + Merge-tags-octopus-a-and-octopus-b-into-master seventh (tag: seventh) octopus-b (tag: octopus-b) octopus-a (tag: octopus-a) @@ -851,8 +851,8 @@ test_expect_success 'multiple decorate-refs-exclude' ' test_expect_success 'decorate-refs and decorate-refs-exclude' ' cat >expect.no-decorate <<-\EOF && - Merge-tag-reach (master) - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master (master) + Merge-tags-octopus-a-and-octopus-b-into-master seventh octopus-b octopus-a @@ -866,8 +866,8 @@ test_expect_success 'decorate-refs and decorate-refs-exclude' ' test_expect_success 'deocrate-refs and log.excludeDecoration' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach (master) - Merge-tags-octopus-a-and-octopus-b + Merge-tag-reach-into-master (master) + Merge-tags-octopus-a-and-octopus-b-into-master seventh octopus-b (octopus-b) octopus-a (octopus-a) @@ -881,10 +881,10 @@ test_expect_success 'deocrate-refs and log.excludeDecoration' ' test_expect_success 'decorate-refs-exclude and simplify-by-decoration' ' cat >expect.decorate <<-\EOF && - Merge-tag-reach (HEAD -> master) + Merge-tag-reach-into-master (HEAD -> master) reach (tag: reach, reach) seventh (tag: seventh) - Merge-branch-tangle + Merge-branch-tangle-into-master Merge-branch-side-early-part-into-tangle (tangle) tangle-a (tag: tangle-a) EOF @@ -1068,7 +1068,7 @@ cat >expect <<\EOF |\ Merge: MERGE_PARENTS | | Author: A U Thor <author@example.com> | | -| | Merge branch 'tangle' +| | Merge branch 'tangle' into master | | | * commit COMMIT_OBJECT_NAME | |\ Merge: MERGE_PARENTS @@ -1102,7 +1102,7 @@ cat >expect <<\EOF |\ \ \ \ Merge: MERGE_PARENTS | | | | | Author: A U Thor <author@example.com> | | | | | -| | | | | Merge branch 'side' +| | | | | Merge branch 'side' into master | | | | | | * | | | commit COMMIT_OBJECT_NAME | | |_|/ Author: A U Thor <author@example.com> @@ -1343,7 +1343,7 @@ cat >expect <<\EOF *** |\ Merge: MERGE_PARENTS *** | | Author: A U Thor <author@example.com> *** | | -*** | | Merge branch 'tangle' +*** | | Merge branch 'tangle' into master *** | | *** | * commit COMMIT_OBJECT_NAME *** | |\ Merge: MERGE_PARENTS @@ -1377,7 +1377,7 @@ cat >expect <<\EOF *** |\ \ \ \ Merge: MERGE_PARENTS *** | | | | | Author: A U Thor <author@example.com> *** | | | | | -*** | | | | | Merge branch 'side' +*** | | | | | Merge branch 'side' into master *** | | | | | *** | * | | | commit COMMIT_OBJECT_NAME *** | | |_|/ Author: A U Thor <author@example.com> @@ -1540,8 +1540,8 @@ cat >expect <<-\EOF * reach | | A reach.t -* Merge branch 'tangle' -* Merge branch 'side' +* Merge branch 'tangle' into master +* Merge branch 'side' into master |\ | * side-2 | @@ -1562,8 +1562,8 @@ cat >expect <<-\EOF * reach | | reach.t -* Merge branch 'tangle' -* Merge branch 'side' +* Merge branch 'tangle' into master +* Merge branch 'side' into master |\ | * side-2 | @@ -1692,7 +1692,7 @@ test_expect_success GPG 'log --graph --show-signature for merged tag with missin GNUPGHOME=. git log --graph --show-signature -n1 plain-nokey >actual && grep "^|\\\ merged tag" actual && grep "^| | gpg: Signature made" actual && - grep "^| | gpg: Can'"'"'t check signature: \(public key not found\|No public key\)" actual + grep -E "^| | gpg: Can'"'"'t check signature: (public key not found|No public key)" actual ' test_expect_success GPG 'log --graph --show-signature for merged tag with bad signature' ' diff --git a/t/t4210-log-i18n.sh b/t/t4210-log-i18n.sh index c3792081e6..d2dfcf164e 100755 --- a/t/t4210-log-i18n.sh +++ b/t/t4210-log-i18n.sh @@ -10,6 +10,13 @@ latin1_e=$(printf '\351') # invalid UTF-8 invalid_e=$(printf '\303\50)') # ")" at end to close opening "(" +have_reg_illseq= +if test_have_prereq GETTEXT_LOCALE && + ! LC_ALL=$is_IS_locale test-tool regex --silent $latin1_e +then + have_reg_illseq=1 +fi + test_expect_success 'create commits in different encodings' ' test_tick && cat >msg <<-EOF && @@ -51,43 +58,77 @@ test_expect_success !MINGW 'log --grep does not find non-reencoded values (utf8) test_must_be_empty actual ' -test_expect_success !MINGW 'log --grep does not find non-reencoded values (latin1)' ' +test_expect_success 'log --grep does not find non-reencoded values (latin1)' ' git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual && test_must_be_empty actual ' +triggers_undefined_behaviour () { + local engine=$1 + + case $engine in + fixed) + if test -n "$have_reg_illseq" && + ! test_have_prereq LIBPCRE2 + then + return 0 + fi + ;; + basic|extended) + if test -n "$have_reg_illseq" + then + return 0 + fi + ;; + esac + return 1 +} + +mismatched_git_log () { + local pattern=$1 + + LC_ALL=$is_IS_locale git log --encoding=ISO-8859-1 --format=%s \ + --grep=$pattern +} + for engine in fixed basic extended perl do prereq= if test $engine = "perl" then - prereq="PCRE" - else - prereq="" + prereq=PCRE fi force_regex= if test $engine != "fixed" then - force_regex=.* + force_regex='.*' fi - test_expect_success !MINGW,!REGEX_ILLSEQ,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" " - cat >expect <<-\EOF && - latin1 - utf8 - EOF - LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$latin1_e\" >actual && - test_cmp expect actual - " - test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" " - LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$utf8_e\" >actual && - test_must_be_empty actual + test_expect_success $prereq "config grep.patternType=$engine" " + git config grep.patternType $engine " - test_expect_success !MINGW,!REGEX_ILLSEQ,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not die on invalid UTF-8 value (latin1 + locale + invalid needle)" " - LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$invalid_e\" >actual && + test_expect_success GETTEXT_LOCALE,$prereq "log --grep does not find non-reencoded values (latin1 + locale)" " + mismatched_git_log '$force_regex$utf8_e' >actual && test_must_be_empty actual " + + if ! triggers_undefined_behaviour $engine + then + test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "log --grep searches in log output encoding (latin1 + locale)" " + cat >expect <<-\EOF && + latin1 + utf8 + EOF + mismatched_git_log '$force_regex$latin1_e' >actual && + test_cmp expect actual + " + + test_expect_success GETTEXT_LOCALE,$prereq "log --grep does not die on invalid UTF-8 value (latin1 + locale + invalid needle)" " + mismatched_git_log '$force_regex$invalid_e' >actual && + test_must_be_empty actual + " + fi done test_done diff --git a/t/t4211-line-log.sh b/t/t4211-line-log.sh index cda58186c2..e186c83250 100755 --- a/t/t4211-line-log.sh +++ b/t/t4211-line-log.sh @@ -215,4 +215,80 @@ test_expect_success 'fancy rename following #2' ' test_cmp expect actual ' +# Create the following linear history, where each commit does what its +# subject line promises: +# +# * 66c6410 Modify func2() in file.c +# * 50834e5 Modify other-file +# * fe5851c Modify func1() in file.c +# * 8c7c7dd Add other-file +# * d5f4417 Add func1() and func2() in file.c +test_expect_success 'setup for checking line-log and parent oids' ' + git checkout --orphan parent-oids && + git reset --hard && + + cat >file.c <<-\EOF && + int func1() + { + return F1; + } + + int func2() + { + return F2; + } + EOF + git add file.c && + test_tick && + first_tick=$test_tick && + git commit -m "Add func1() and func2() in file.c" && + + echo 1 >other-file && + git add other-file && + test_tick && + git commit -m "Add other-file" && + + sed -e "s/F1/F1 + 1/" file.c >tmp && + mv tmp file.c && + git commit -a -m "Modify func1() in file.c" && + + echo 2 >other-file && + git commit -a -m "Modify other-file" && + + sed -e "s/F2/F2 + 2/" file.c >tmp && + mv tmp file.c && + git commit -a -m "Modify func2() in file.c" && + + head_oid=$(git rev-parse --short HEAD) && + prev_oid=$(git rev-parse --short HEAD^) && + root_oid=$(git rev-parse --short HEAD~4) +' + +# Parent oid should be from immediate parent. +test_expect_success 'parent oids without parent rewriting' ' + cat >expect <<-EOF && + $head_oid $prev_oid Modify func2() in file.c + $root_oid Add func1() and func2() in file.c + EOF + git log --format="%h %p %s" --no-patch -L:func2:file.c >actual && + test_cmp expect actual +' + +# Parent oid should be from the most recent ancestor touching func2(), +# i.e. in this case from the root commit. +test_expect_success 'parent oids with parent rewriting' ' + cat >expect <<-EOF && + $head_oid $root_oid Modify func2() in file.c + $root_oid Add func1() and func2() in file.c + EOF + git log --format="%h %p %s" --no-patch -L:func2:file.c --parents >actual && + test_cmp expect actual +' + +test_expect_success 'line-log with --before' ' + echo $root_oid >expect && + git log --format=%h --no-patch -L:func2:file.c --before=$first_tick >actual && + test_cmp expect actual +' + test_done diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index 0ba8194403..a7ba08f728 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -6,17 +6,21 @@ test_description='git am handling submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh am () { - git format-patch --stdout --ignore-submodules=dirty "..$1" | git am - + git format-patch --stdout --ignore-submodules=dirty "..$1" >patch && + may_only_be_test_must_fail "$2" && + $2 git am patch } -test_submodule_switch "am" +test_submodule_switch_func "am" am_3way () { - git format-patch --stdout --ignore-submodules=dirty "..$1" | git am --3way - + git format-patch --stdout --ignore-submodules=dirty "..$1" >patch && + may_only_be_test_must_fail "$2" && + $2 git am --3way patch } KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "am_3way" +test_submodule_switch_func "am_3way" test_expect_success 'setup diff.submodule' ' test_commit one && diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh index 410a09b0dd..746cdb626e 100755 --- a/t/t5300-pack-object.sh +++ b/t/t5300-pack-object.sh @@ -12,7 +12,8 @@ TRASH=$(pwd) test_expect_success \ 'setup' \ - 'rm -f .git/index* && + 'test_oid_init && + rm -f .git/index* && perl -e "print \"a\" x 4096;" > a && perl -e "print \"b\" x 4096;" > b && perl -e "print \"c\" x 4096;" > c && @@ -412,18 +413,18 @@ test_expect_success 'set up pack for non-repo tests' ' ' test_expect_success 'index-pack --stdin complains of non-repo' ' - nongit test_must_fail git index-pack --stdin <foo.pack && + nongit test_must_fail git index-pack --object-format=$(test_oid algo) --stdin <foo.pack && test_path_is_missing non-repo/.git ' test_expect_success 'index-pack <pack> works in non-repo' ' - nongit git index-pack ../foo.pack && + nongit git index-pack --object-format=$(test_oid algo) ../foo.pack && test_path_is_file foo.idx ' test_expect_success 'index-pack --strict <pack> works in non-repo' ' rm -f foo.idx && - nongit git index-pack --strict ../foo.pack && + nongit git index-pack --strict --object-format=$(test_oid algo) ../foo.pack && test_path_is_file foo.idx ' diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh index ad07f2f7fc..8981c9b90e 100755 --- a/t/t5302-pack-index.sh +++ b/t/t5302-pack-index.sh @@ -7,65 +7,65 @@ test_description='pack index with 64-bit offsets and object CRC' . ./test-lib.sh test_expect_success 'setup' ' - test_oid_init && - rawsz=$(test_oid rawsz) && - rm -rf .git && - git init && - git config pack.threads 1 && - i=1 && - while test $i -le 100 - do - iii=$(printf '%03i' $i) - test-tool genrandom "bar" 200 > wide_delta_$iii && - test-tool genrandom "baz $iii" 50 >> wide_delta_$iii && - test-tool genrandom "foo"$i 100 > deep_delta_$iii && - test-tool genrandom "foo"$(expr $i + 1) 100 >> deep_delta_$iii && - test-tool genrandom "foo"$(expr $i + 2) 100 >> deep_delta_$iii && - echo $iii >file_$iii && - test-tool genrandom "$iii" 8192 >>file_$iii && - git update-index --add file_$iii deep_delta_$iii wide_delta_$iii && - i=$(expr $i + 1) || return 1 - done && - { echo 101 && test-tool genrandom 100 8192; } >file_101 && - git update-index --add file_101 && - tree=$(git write-tree) && - commit=$(git commit-tree $tree </dev/null) && { - echo $tree && - git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/" - } >obj-list && - git update-ref HEAD $commit + test_oid_init && + rawsz=$(test_oid rawsz) && + rm -rf .git && + git init && + git config pack.threads 1 && + i=1 && + while test $i -le 100 + do + iii=$(printf '%03i' $i) + test-tool genrandom "bar" 200 > wide_delta_$iii && + test-tool genrandom "baz $iii" 50 >> wide_delta_$iii && + test-tool genrandom "foo"$i 100 > deep_delta_$iii && + test-tool genrandom "foo"$(expr $i + 1) 100 >> deep_delta_$iii && + test-tool genrandom "foo"$(expr $i + 2) 100 >> deep_delta_$iii && + echo $iii >file_$iii && + test-tool genrandom "$iii" 8192 >>file_$iii && + git update-index --add file_$iii deep_delta_$iii wide_delta_$iii && + i=$(expr $i + 1) || return 1 + done && + { echo 101 && test-tool genrandom 100 8192; } >file_101 && + git update-index --add file_101 && + tree=$(git write-tree) && + commit=$(git commit-tree $tree </dev/null) && { + echo $tree && + git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/" + } >obj-list && + git update-ref HEAD $commit ' -test_expect_success \ - 'pack-objects with index version 1' \ - 'pack1=$(git pack-objects --index-version=1 test-1 <obj-list) && - git verify-pack -v "test-1-${pack1}.pack"' +test_expect_success 'pack-objects with index version 1' ' + pack1=$(git pack-objects --index-version=1 test-1 <obj-list) && + git verify-pack -v "test-1-${pack1}.pack" +' -test_expect_success \ - 'pack-objects with index version 2' \ - 'pack2=$(git pack-objects --index-version=2 test-2 <obj-list) && - git verify-pack -v "test-2-${pack2}.pack"' +test_expect_success 'pack-objects with index version 2' ' + pack2=$(git pack-objects --index-version=2 test-2 <obj-list) && + git verify-pack -v "test-2-${pack2}.pack" +' -test_expect_success \ - 'both packs should be identical' \ - 'cmp "test-1-${pack1}.pack" "test-2-${pack2}.pack"' +test_expect_success 'both packs should be identical' ' + cmp "test-1-${pack1}.pack" "test-2-${pack2}.pack" +' -test_expect_success \ - 'index v1 and index v2 should be different' \ - '! cmp "test-1-${pack1}.idx" "test-2-${pack2}.idx"' +test_expect_success 'index v1 and index v2 should be different' ' + ! cmp "test-1-${pack1}.idx" "test-2-${pack2}.idx" +' -test_expect_success \ - 'index-pack with index version 1' \ - 'git index-pack --index-version=1 -o 1.idx "test-1-${pack1}.pack"' +test_expect_success 'index-pack with index version 1' ' + git index-pack --index-version=1 -o 1.idx "test-1-${pack1}.pack" +' -test_expect_success \ - 'index-pack with index version 2' \ - 'git index-pack --index-version=2 -o 2.idx "test-1-${pack1}.pack"' +test_expect_success 'index-pack with index version 2' ' + git index-pack --index-version=2 -o 2.idx "test-1-${pack1}.pack" +' -test_expect_success \ - 'index-pack results should match pack-objects ones' \ - 'cmp "test-1-${pack1}.idx" "1.idx" && - cmp "test-2-${pack2}.idx" "2.idx"' +test_expect_success 'index-pack results should match pack-objects ones' ' + cmp "test-1-${pack1}.idx" "1.idx" && + cmp "test-2-${pack2}.idx" "2.idx" +' test_expect_success 'index-pack --verify on index version 1' ' git index-pack --verify "test-1-${pack1}.pack" @@ -75,13 +75,13 @@ test_expect_success 'index-pack --verify on index version 2' ' git index-pack --verify "test-2-${pack2}.pack" ' -test_expect_success \ - 'pack-objects --index-version=2, is not accepted' \ - 'test_must_fail git pack-objects --index-version=2, test-3 <obj-list' +test_expect_success 'pack-objects --index-version=2, is not accepted' ' + test_must_fail git pack-objects --index-version=2, test-3 <obj-list +' -test_expect_success \ - 'index v2: force some 64-bit offsets with pack-objects' \ - 'pack3=$(git pack-objects --index-version=2,0x40000 test-3 <obj-list)' +test_expect_success 'index v2: force some 64-bit offsets with pack-objects' ' + pack3=$(git pack-objects --index-version=2,0x40000 test-3 <obj-list) +' if msg=$(git verify-pack -v "test-3-${pack3}.pack" 2>&1) || ! (echo "$msg" | grep "pack too large .* off_t") @@ -91,21 +91,21 @@ else say "# skipping tests concerning 64-bit offsets" fi -test_expect_success OFF64_T \ - 'index v2: verify a pack with some 64-bit offsets' \ - 'git verify-pack -v "test-3-${pack3}.pack"' +test_expect_success OFF64_T 'index v2: verify a pack with some 64-bit offsets' ' + git verify-pack -v "test-3-${pack3}.pack" +' -test_expect_success OFF64_T \ - '64-bit offsets: should be different from previous index v2 results' \ - '! cmp "test-2-${pack2}.idx" "test-3-${pack3}.idx"' +test_expect_success OFF64_T '64-bit offsets: should be different from previous index v2 results' ' + ! cmp "test-2-${pack2}.idx" "test-3-${pack3}.idx" +' -test_expect_success OFF64_T \ - 'index v2: force some 64-bit offsets with index-pack' \ - 'git index-pack --index-version=2,0x40000 -o 3.idx "test-1-${pack1}.pack"' +test_expect_success OFF64_T 'index v2: force some 64-bit offsets with index-pack' ' + git index-pack --index-version=2,0x40000 -o 3.idx "test-1-${pack1}.pack" +' -test_expect_success OFF64_T \ - '64-bit offsets: index-pack result should match pack-objects one' \ - 'cmp "test-3-${pack3}.idx" "3.idx"' +test_expect_success OFF64_T '64-bit offsets: index-pack result should match pack-objects one' ' + cmp "test-3-${pack3}.idx" "3.idx" +' test_expect_success OFF64_T 'index-pack --verify on 64-bit offset v2 (cheat)' ' # This cheats by knowing which lower offset should still be encoded @@ -120,135 +120,143 @@ test_expect_success OFF64_T 'index-pack --verify on 64-bit offset v2' ' # returns the object number for given object in given pack index index_obj_nr() { - idx_file=$1 - object_sha1=$2 - nr=0 - git show-index < $idx_file | - while read offs sha1 extra - do - nr=$(($nr + 1)) - test "$sha1" = "$object_sha1" || continue - echo "$(($nr - 1))" - break - done + idx_file=$1 + object_sha1=$2 + nr=0 + git show-index < $idx_file | + while read offs sha1 extra + do + nr=$(($nr + 1)) + test "$sha1" = "$object_sha1" || continue + echo "$(($nr - 1))" + break + done } # returns the pack offset for given object as found in given pack index index_obj_offset() { - idx_file=$1 - object_sha1=$2 - git show-index < $idx_file | grep $object_sha1 | - ( read offs extra && echo "$offs" ) + idx_file=$1 + object_sha1=$2 + git show-index < $idx_file | grep $object_sha1 | + ( read offs extra && echo "$offs" ) } -test_expect_success \ - '[index v1] 1) stream pack to repository' \ - 'git index-pack --index-version=1 --stdin < "test-1-${pack1}.pack" && - git prune-packed && - git count-objects | ( read nr rest && test "$nr" -eq 1 ) && - cmp "test-1-${pack1}.pack" ".git/objects/pack/pack-${pack1}.pack" && - cmp "test-1-${pack1}.idx" ".git/objects/pack/pack-${pack1}.idx"' +test_expect_success '[index v1] 1) stream pack to repository' ' + git index-pack --index-version=1 --stdin < "test-1-${pack1}.pack" && + git prune-packed && + git count-objects | ( read nr rest && test "$nr" -eq 1 ) && + cmp "test-1-${pack1}.pack" ".git/objects/pack/pack-${pack1}.pack" && + cmp "test-1-${pack1}.idx" ".git/objects/pack/pack-${pack1}.idx" +' test_expect_success \ - '[index v1] 2) create a stealth corruption in a delta base reference' \ - '# This test assumes file_101 is a delta smaller than 16 bytes. - # It should be against file_100 but we substitute its base for file_099 - sha1_101=$(git hash-object file_101) && - sha1_099=$(git hash-object file_099) && - offs_101=$(index_obj_offset 1.idx $sha1_101) && - nr_099=$(index_obj_nr 1.idx $sha1_099) && - chmod +w ".git/objects/pack/pack-${pack1}.pack" && - recordsz=$((rawsz + 4)) && - dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \ - if=".git/objects/pack/pack-${pack1}.idx" \ - skip=$((4 + 256 * 4 + $nr_099 * recordsz)) \ - bs=1 count=$rawsz conv=notrunc && - git cat-file blob $sha1_101 > file_101_foo1' + '[index v1] 2) create a stealth corruption in a delta base reference' ' + # This test assumes file_101 is a delta smaller than 16 bytes. + # It should be against file_100 but we substitute its base for file_099 + sha1_101=$(git hash-object file_101) && + sha1_099=$(git hash-object file_099) && + offs_101=$(index_obj_offset 1.idx $sha1_101) && + nr_099=$(index_obj_nr 1.idx $sha1_099) && + chmod +w ".git/objects/pack/pack-${pack1}.pack" && + recordsz=$((rawsz + 4)) && + dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \ + if=".git/objects/pack/pack-${pack1}.idx" \ + skip=$((4 + 256 * 4 + $nr_099 * recordsz)) \ + bs=1 count=$rawsz conv=notrunc && + git cat-file blob $sha1_101 > file_101_foo1 +' test_expect_success \ - '[index v1] 3) corrupted delta happily returned wrong data' \ - 'test -f file_101_foo1 && ! cmp file_101 file_101_foo1' + '[index v1] 3) corrupted delta happily returned wrong data' ' + test -f file_101_foo1 && ! cmp file_101 file_101_foo1 +' test_expect_success \ - '[index v1] 4) confirm that the pack is actually corrupted' \ - 'test_must_fail git fsck --full $commit' + '[index v1] 4) confirm that the pack is actually corrupted' ' + test_must_fail git fsck --full $commit +' test_expect_success \ - '[index v1] 5) pack-objects happily reuses corrupted data' \ - 'pack4=$(git pack-objects test-4 <obj-list) && - test -f "test-4-${pack4}.pack"' + '[index v1] 5) pack-objects happily reuses corrupted data' ' + pack4=$(git pack-objects test-4 <obj-list) && + test -f "test-4-${pack4}.pack" +' -test_expect_success \ - '[index v1] 6) newly created pack is BAD !' \ - 'test_must_fail git verify-pack -v "test-4-${pack4}.pack"' +test_expect_success '[index v1] 6) newly created pack is BAD !' ' + test_must_fail git verify-pack -v "test-4-${pack4}.pack" +' -test_expect_success \ - '[index v2] 1) stream pack to repository' \ - 'rm -f .git/objects/pack/* && - git index-pack --index-version=2 --stdin < "test-1-${pack1}.pack" && - git prune-packed && - git count-objects | ( read nr rest && test "$nr" -eq 1 ) && - cmp "test-1-${pack1}.pack" ".git/objects/pack/pack-${pack1}.pack" && - cmp "test-2-${pack1}.idx" ".git/objects/pack/pack-${pack1}.idx"' +test_expect_success '[index v2] 1) stream pack to repository' ' + rm -f .git/objects/pack/* && + git index-pack --index-version=2 --stdin < "test-1-${pack1}.pack" && + git prune-packed && + git count-objects | ( read nr rest && test "$nr" -eq 1 ) && + cmp "test-1-${pack1}.pack" ".git/objects/pack/pack-${pack1}.pack" && + cmp "test-2-${pack1}.idx" ".git/objects/pack/pack-${pack1}.idx" +' test_expect_success \ - '[index v2] 2) create a stealth corruption in a delta base reference' \ - '# This test assumes file_101 is a delta smaller than 16 bytes. - # It should be against file_100 but we substitute its base for file_099 - sha1_101=$(git hash-object file_101) && - sha1_099=$(git hash-object file_099) && - offs_101=$(index_obj_offset 1.idx $sha1_101) && - nr_099=$(index_obj_nr 1.idx $sha1_099) && - chmod +w ".git/objects/pack/pack-${pack1}.pack" && - dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \ - if=".git/objects/pack/pack-${pack1}.idx" \ - skip=$((8 + 256 * 4 + $nr_099 * rawsz)) \ - bs=1 count=$rawsz conv=notrunc && - git cat-file blob $sha1_101 > file_101_foo2' + '[index v2] 2) create a stealth corruption in a delta base reference' ' + # This test assumes file_101 is a delta smaller than 16 bytes. + # It should be against file_100 but we substitute its base for file_099 + sha1_101=$(git hash-object file_101) && + sha1_099=$(git hash-object file_099) && + offs_101=$(index_obj_offset 1.idx $sha1_101) && + nr_099=$(index_obj_nr 1.idx $sha1_099) && + chmod +w ".git/objects/pack/pack-${pack1}.pack" && + dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \ + if=".git/objects/pack/pack-${pack1}.idx" \ + skip=$((8 + 256 * 4 + $nr_099 * rawsz)) \ + bs=1 count=$rawsz conv=notrunc && + git cat-file blob $sha1_101 > file_101_foo2 +' test_expect_success \ - '[index v2] 3) corrupted delta happily returned wrong data' \ - 'test -f file_101_foo2 && ! cmp file_101 file_101_foo2' + '[index v2] 3) corrupted delta happily returned wrong data' ' + test -f file_101_foo2 && ! cmp file_101 file_101_foo2 +' test_expect_success \ - '[index v2] 4) confirm that the pack is actually corrupted' \ - 'test_must_fail git fsck --full $commit' + '[index v2] 4) confirm that the pack is actually corrupted' ' + test_must_fail git fsck --full $commit +' test_expect_success \ - '[index v2] 5) pack-objects refuses to reuse corrupted data' \ - 'test_must_fail git pack-objects test-5 <obj-list && - test_must_fail git pack-objects --no-reuse-object test-6 <obj-list' + '[index v2] 5) pack-objects refuses to reuse corrupted data' ' + test_must_fail git pack-objects test-5 <obj-list && + test_must_fail git pack-objects --no-reuse-object test-6 <obj-list +' test_expect_success \ - '[index v2] 6) verify-pack detects CRC mismatch' \ - 'rm -f .git/objects/pack/* && - git index-pack --index-version=2 --stdin < "test-1-${pack1}.pack" && - git verify-pack ".git/objects/pack/pack-${pack1}.pack" && - obj=$(git hash-object file_001) && - nr=$(index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj) && - chmod +w ".git/objects/pack/pack-${pack1}.idx" && - printf xxxx | dd of=".git/objects/pack/pack-${pack1}.idx" conv=notrunc \ - bs=1 count=4 seek=$((8 + 256 * 4 + $(wc -l <obj-list) * rawsz + $nr * 4)) && - ( while read obj - do git cat-file -p $obj >/dev/null || exit 1 - done <obj-list ) && - test_must_fail git verify-pack ".git/objects/pack/pack-${pack1}.pack" + '[index v2] 6) verify-pack detects CRC mismatch' ' + rm -f .git/objects/pack/* && + git index-pack --index-version=2 --stdin < "test-1-${pack1}.pack" && + git verify-pack ".git/objects/pack/pack-${pack1}.pack" && + obj=$(git hash-object file_001) && + nr=$(index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj) && + chmod +w ".git/objects/pack/pack-${pack1}.idx" && + printf xxxx | dd of=".git/objects/pack/pack-${pack1}.idx" conv=notrunc \ + bs=1 count=4 seek=$((8 + 256 * 4 + $(wc -l <obj-list) * rawsz + $nr * 4)) && + ( while read obj + do git cat-file -p $obj >/dev/null || exit 1 + done <obj-list ) && + test_must_fail git verify-pack ".git/objects/pack/pack-${pack1}.pack" ' test_expect_success 'running index-pack in the object store' ' - rm -f .git/objects/pack/* && - cp test-1-${pack1}.pack .git/objects/pack/pack-${pack1}.pack && - ( - cd .git/objects/pack && - git index-pack pack-${pack1}.pack - ) && - test -f .git/objects/pack/pack-${pack1}.idx + rm -f .git/objects/pack/* && + cp test-1-${pack1}.pack .git/objects/pack/pack-${pack1}.pack && + ( + cd .git/objects/pack && + git index-pack pack-${pack1}.pack + ) && + test -f .git/objects/pack/pack-${pack1}.idx ' test_expect_success 'index-pack --strict warns upon missing tagger in tag' ' - sha=$(git rev-parse HEAD) && - cat >wrong-tag <<EOF && + sha=$(git rev-parse HEAD) && + cat >wrong-tag <<EOF && object $sha type commit tag guten tag @@ -256,18 +264,18 @@ tag guten tag This is an invalid tag. EOF - tag=$(git hash-object -t tag -w --stdin <wrong-tag) && - pack1=$(echo $tag $sha | git pack-objects tag-test) && - echo remove tag object && - thirtyeight=${tag#??} && - rm -f .git/objects/${tag%$thirtyeight}/$thirtyeight && - git index-pack --strict tag-test-${pack1}.pack 2>err && - grep "^warning:.* expected .tagger. line" err + tag=$(git hash-object -t tag -w --stdin <wrong-tag) && + pack1=$(echo $tag $sha | git pack-objects tag-test) && + echo remove tag object && + thirtyeight=${tag#??} && + rm -f .git/objects/${tag%$thirtyeight}/$thirtyeight && + git index-pack --strict tag-test-${pack1}.pack 2>err && + grep "^warning:.* expected .tagger. line" err ' test_expect_success 'index-pack --fsck-objects also warns upon missing tagger in tag' ' - git index-pack --fsck-objects tag-test-${pack1}.pack 2>err && - grep "^warning:.* expected .tagger. line" err + git index-pack --fsck-objects tag-test-${pack1}.pack 2>err && + grep "^warning:.* expected .tagger. line" err ' test_done diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh index 424599959c..26f332d6a3 100755 --- a/t/t5318-commit-graph.sh +++ b/t/t5318-commit-graph.sh @@ -46,15 +46,6 @@ test_expect_success 'create commits and repack' ' git repack ' -test_expect_success 'exit with correct error on bad input to --stdin-commits' ' - cd "$TRASH_DIRECTORY/full" && - echo HEAD | test_expect_code 1 git commit-graph write --stdin-commits 2>stderr && - test_i18ngrep "unexpected non-hex object ID: HEAD" stderr && - # valid tree OID, but not a commit OID - git rev-parse HEAD^{tree} | test_expect_code 1 git commit-graph write --stdin-commits 2>stderr && - test_i18ngrep "invalid commit object id" stderr -' - graph_git_two_modes() { git -c core.commitGraph=true $1 >output git -c core.commitGraph=false $1 >expect @@ -95,6 +86,22 @@ graph_read_expect() { test_cmp expect output } +test_expect_success 'exit with correct error on bad input to --stdin-commits' ' + cd "$TRASH_DIRECTORY/full" && + # invalid, non-hex OID + echo HEAD >in && + test_expect_code 1 git commit-graph write --stdin-commits <in 2>stderr && + test_i18ngrep "unexpected non-hex object ID: HEAD" stderr && + # non-existent OID + echo $ZERO_OID >in && + test_expect_code 1 git commit-graph write --stdin-commits <in 2>stderr && + test_i18ngrep "invalid object" stderr && + # valid commit and tree OID + git rev-parse HEAD HEAD^{tree} >in && + git commit-graph write --stdin-commits <in && + graph_read_expect 3 +' + test_expect_success 'write graph' ' cd "$TRASH_DIRECTORY/full" && git commit-graph write && @@ -140,7 +147,7 @@ test_expect_success 'Add more commits' ' test_expect_success 'commit-graph write progress off for redirected stderr' ' cd "$TRASH_DIRECTORY/full" && git commit-graph write 2>err && - test_line_count = 0 err + test_must_be_empty err ' test_expect_success 'commit-graph write force progress on for stderr' ' @@ -152,13 +159,34 @@ test_expect_success 'commit-graph write force progress on for stderr' ' test_expect_success 'commit-graph write with the --no-progress option' ' cd "$TRASH_DIRECTORY/full" && git commit-graph write --no-progress 2>err && - test_line_count = 0 err + test_must_be_empty err +' + +test_expect_success 'commit-graph write --stdin-commits progress off for redirected stderr' ' + cd "$TRASH_DIRECTORY/full" && + git rev-parse commits/5 >in && + git commit-graph write --stdin-commits <in 2>err && + test_must_be_empty err +' + +test_expect_success 'commit-graph write --stdin-commits force progress on for stderr' ' + cd "$TRASH_DIRECTORY/full" && + git rev-parse commits/5 >in && + GIT_PROGRESS_DELAY=0 git commit-graph write --stdin-commits --progress <in 2>err && + test_i18ngrep "Collecting commits from input" err +' + +test_expect_success 'commit-graph write --stdin-commits with the --no-progress option' ' + cd "$TRASH_DIRECTORY/full" && + git rev-parse commits/5 >in && + git commit-graph write --stdin-commits --no-progress <in 2>err && + test_must_be_empty err ' test_expect_success 'commit-graph verify progress off for redirected stderr' ' cd "$TRASH_DIRECTORY/full" && git commit-graph verify 2>err && - test_line_count = 0 err + test_must_be_empty err ' test_expect_success 'commit-graph verify force progress on for stderr' ' @@ -170,7 +198,7 @@ test_expect_success 'commit-graph verify force progress on for stderr' ' test_expect_success 'commit-graph verify with the --no-progress option' ' cd "$TRASH_DIRECTORY/full" && git commit-graph verify --no-progress 2>err && - test_line_count = 0 err + test_must_be_empty err ' # Current graph structure: diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh index 8c54e34ef1..3557374312 100755 --- a/t/t5500-fetch-pack.sh +++ b/t/t5500-fetch-pack.sh @@ -871,9 +871,10 @@ test_expect_success 'shallow since with commit graph and already-seen commit' ' GIT_PROTOCOL=version=2 git upload-pack . <<-EOF >/dev/null 0012command=fetch + $(echo "object-format=$(test_oid algo)" | packetize) 00010013deepen-since 1 - 0032want $(git rev-parse other) - 0032have $(git rev-parse master) + $(echo "want $(git rev-parse other)" | packetize) + $(echo "have $(git rev-parse master)" | packetize) 0000 EOF ) @@ -999,7 +1000,6 @@ fetch_filter_blob_limit_zero () { test_config -C "$SERVER" uploadpack.allowfilter 1 && git clone "$URL" client && - test_config -C client extensions.partialclone origin && test_commit -C "$SERVER" two && diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index dda81b7d07..8d62edd98b 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -988,7 +988,7 @@ test_expect_success 'remote set-branches' ' +refs/heads/maint:refs/remotes/scratch/maint +refs/heads/master:refs/remotes/scratch/master +refs/heads/next:refs/remotes/scratch/next - +refs/heads/pu:refs/remotes/scratch/pu + +refs/heads/seen:refs/remotes/scratch/seen +refs/heads/t/topic:refs/remotes/scratch/t/topic EOF sort <<-\EOF >expect.setup-ffonly && @@ -998,7 +998,7 @@ test_expect_success 'remote set-branches' ' sort <<-\EOF >expect.respect-ffonly && refs/heads/master:refs/remotes/scratch/master +refs/heads/next:refs/remotes/scratch/next - +refs/heads/pu:refs/remotes/scratch/pu + +refs/heads/seen:refs/remotes/scratch/seen EOF git clone .git/ setbranches && @@ -1016,7 +1016,7 @@ test_expect_success 'remote set-branches' ' git config --get-all remote.scratch.fetch >config-result && sort <config-result >../actual.replace && - git remote set-branches --add scratch pu t/topic && + git remote set-branches --add scratch seen t/topic && git config --get-all remote.scratch.fetch >config-result && sort <config-result >../actual.add-two && @@ -1028,7 +1028,7 @@ test_expect_success 'remote set-branches' ' git config --get-all remote.scratch.fetch >config-result && sort <config-result >../actual.setup-ffonly && - git remote set-branches --add scratch pu && + git remote set-branches --add scratch seen && git config --get-all remote.scratch.fetch >config-result && sort <config-result >../actual.respect-ffonly ) && diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh index 9c6218f568..36ad20a849 100755 --- a/t/t5516-fetch-push.sh +++ b/t/t5516-fetch-push.sh @@ -747,42 +747,42 @@ test_expect_success 'deletion of a non-existent ref alone does trigger post-rece ' test_expect_success 'mixed ref updates, deletes, invalid deletes trigger hooks with correct input' ' - mk_test_with_hooks testrepo heads/master heads/next heads/pu && + mk_test_with_hooks testrepo heads/master heads/next heads/seen && orgmaster=$(cd testrepo && git show-ref -s --verify refs/heads/master) && newmaster=$(git show-ref -s --verify refs/heads/master) && orgnext=$(cd testrepo && git show-ref -s --verify refs/heads/next) && newnext=$ZERO_OID && - orgpu=$(cd testrepo && git show-ref -s --verify refs/heads/pu) && - newpu=$(git show-ref -s --verify refs/heads/master) && + orgseen=$(cd testrepo && git show-ref -s --verify refs/heads/seen) && + newseen=$(git show-ref -s --verify refs/heads/master) && git push testrepo refs/heads/master:refs/heads/master \ - refs/heads/master:refs/heads/pu :refs/heads/next \ + refs/heads/master:refs/heads/seen :refs/heads/next \ :refs/heads/nonexistent && ( cd testrepo/.git && cat >pre-receive.expect <<-EOF && $orgmaster $newmaster refs/heads/master $orgnext $newnext refs/heads/next - $orgpu $newpu refs/heads/pu + $orgseen $newseen refs/heads/seen $ZERO_OID $ZERO_OID refs/heads/nonexistent EOF cat >update.expect <<-EOF && refs/heads/master $orgmaster $newmaster refs/heads/next $orgnext $newnext - refs/heads/pu $orgpu $newpu + refs/heads/seen $orgseen $newseen refs/heads/nonexistent $ZERO_OID $ZERO_OID EOF cat >post-receive.expect <<-EOF && $orgmaster $newmaster refs/heads/master $orgnext $newnext refs/heads/next - $orgpu $newpu refs/heads/pu + $orgseen $newseen refs/heads/seen EOF cat >post-update.expect <<-EOF && refs/heads/master refs/heads/next - refs/heads/pu + refs/heads/seen EOF test_cmp pre-receive.expect pre-receive.actual && diff --git a/t/t5528-push-default.sh b/t/t5528-push-default.sh index 4d1e0c363e..f0a287d97d 100755 --- a/t/t5528-push-default.sh +++ b/t/t5528-push-default.sh @@ -98,6 +98,12 @@ test_expect_success 'push from/to new branch with upstream, matching and simple' test_push_failure upstream ' +test_expect_success '"matching" fails if none match' ' + git init --bare empty && + test_must_fail git push empty : 2>actual && + test_i18ngrep "Perhaps you should specify a branch" actual +' + test_expect_success 'push ambiguously named branch with upstream, matching and simple' ' git checkout -b ambiguous && test_config branch.ambiguous.remote parent1 && diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh index d427a2d7f7..a55202d2d3 100755 --- a/t/t5537-fetch-shallow.sh +++ b/t/t5537-fetch-shallow.sh @@ -81,6 +81,20 @@ test_expect_success 'fetch --unshallow from shallow clone' ' ) ' +test_expect_success 'fetch --unshallow from a full clone' ' + git clone --no-local --depth=2 .git shallow3 && + ( + cd shallow3 && + git log --format=%s >actual && + test_write_lines 4 3 >expect && + test_cmp expect actual && + git -c fetch.writeCommitGraph fetch --unshallow && + git log origin/master --format=%s >actual && + test_write_lines 4 3 2 1 >expect && + test_cmp expect actual + ) +' + test_expect_success 'fetch something upstream has but hidden by clients shallow boundaries' ' # the blob "1" is available in .git but hidden by the # shallow2/.git/shallow and it should be resent diff --git a/t/t5540-http-push-webdav.sh b/t/t5540-http-push-webdav.sh index d476c33509..450321fddb 100755 --- a/t/t5540-http-push-webdav.sh +++ b/t/t5540-http-push-webdav.sh @@ -126,6 +126,22 @@ test_expect_success 'create and delete remote branch' ' test_must_fail git show-ref --verify refs/remotes/origin/dev ' +test_expect_success 'non-force push fails if not up to date' ' + git init --bare "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo_conflict.git && + git -C "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo_conflict.git update-server-info && + git clone $HTTPD_URL/dumb/test_repo_conflict.git "$ROOT_PATH"/c1 && + git clone $HTTPD_URL/dumb/test_repo_conflict.git "$ROOT_PATH"/c2 && + test_commit -C "$ROOT_PATH/c1" path1 && + git -C "$ROOT_PATH/c1" push origin HEAD && + git -C "$ROOT_PATH/c2" pull && + test_commit -C "$ROOT_PATH/c1" path2 && + git -C "$ROOT_PATH/c1" push origin HEAD && + test_commit -C "$ROOT_PATH/c2" path3 && + git -C "$ROOT_PATH/c1" log --graph --all && + git -C "$ROOT_PATH/c2" log --graph --all && + test_must_fail git -C "$ROOT_PATH/c2" push origin HEAD +' + test_expect_success 'MKCOL sends directory names with trailing slashes' ' ! grep "\"MKCOL.*[^/] HTTP/[^ ]*\"" < "$HTTPD_ROOT_PATH"/access.log diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh index afc680d5e3..463d0f12e5 100755 --- a/t/t5541-http-push-smart.sh +++ b/t/t5541-http-push-smart.sh @@ -464,6 +464,21 @@ test_expect_success 'push status output scrubs password' ' grep "^To $HTTPD_URL/smart/test_repo.git" status ' +test_expect_success 'clone/fetch scrubs password from reflogs' ' + cd "$ROOT_PATH" && + git clone "$HTTPD_URL_USER_PASS/smart/test_repo.git" \ + reflog-test && + cd reflog-test && + test_commit prepare-for-force-fetch && + git switch -c away && + git fetch "$HTTPD_URL_USER_PASS/smart/test_repo.git" \ + +master:master && + # should have been scrubbed down to vanilla URL + git log -g master >reflog && + grep "$HTTPD_URL" reflog && + ! grep "$HTTPD_URL_USER_PASS" reflog +' + test_expect_success 'colorize errors/hints' ' cd "$ROOT_PATH"/test_repo_clone && test_must_fail git -c color.transport=always -c color.advice=always \ diff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh index 50485300eb..483578b2d7 100755 --- a/t/t5550-http-fetch-dumb.sh +++ b/t/t5550-http-fetch-dumb.sh @@ -50,6 +50,24 @@ test_expect_success 'create password-protected repository' ' "$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/repo.git" ' +test_expect_success 'create empty remote repository' ' + git init --bare "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" && + (cd "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" && + mkdir -p hooks && + write_script "hooks/post-update" <<-\EOF && + exec git update-server-info + EOF + hooks/post-update + ) +' + +test_expect_success 'empty dumb HTTP repository has default hash algorithm' ' + test_when_finished "rm -fr clone-empty" && + git clone $HTTPD_URL/dumb/empty.git clone-empty && + git -C clone-empty rev-parse --show-object-format >empty-format && + test "$(cat empty-format)" = "$(test_oid algo)" +' + setup_askpass_helper test_expect_success 'cloning password-protected repository can fail' ' @@ -199,6 +217,28 @@ test_expect_success 'fetch packed objects' ' git clone $HTTPD_URL/dumb/repo_pack.git ' +test_expect_success 'http-fetch --packfile' ' + # Arbitrary hash. Use rev-parse so that we get one of the correct + # length. + ARBITRARY=$(git -C "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git rev-parse HEAD) && + + git init packfileclient && + p=$(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git && ls objects/pack/pack-*.pack) && + git -C packfileclient http-fetch --packfile=$ARBITRARY "$HTTPD_URL"/dumb/repo_pack.git/$p >out && + + grep "^keep.[0-9a-f]\{16,\}$" out && + cut -c6- out >packhash && + + # Ensure that the expected files are generated + test -e "packfileclient/.git/objects/pack/pack-$(cat packhash).pack" && + test -e "packfileclient/.git/objects/pack/pack-$(cat packhash).idx" && + test -e "packfileclient/.git/objects/pack/pack-$(cat packhash).keep" && + + # Ensure that it has the HEAD of repo_pack, at least + HASH=$(git -C "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git rev-parse HEAD) && + git -C packfileclient cat-file -e "$HASH" +' + test_expect_success 'fetch notices corrupt pack' ' cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git && (cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git && @@ -214,6 +254,14 @@ test_expect_success 'fetch notices corrupt pack' ' ) ' +test_expect_success 'http-fetch --packfile with corrupt pack' ' + rm -rf packfileclient && + git init packfileclient && + p=$(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git && ls objects/pack/pack-*.pack) && + test_must_fail git -C packfileclient http-fetch --packfile \ + "$HTTPD_URL"/dumb/repo_bad1.git/$p +' + test_expect_success 'fetch notices corrupt idx' ' cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git && (cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git && diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh index 6788aeface..e40e9ed52f 100755 --- a/t/t5551-http-fetch-smart.sh +++ b/t/t5551-http-fetch-smart.sh @@ -185,6 +185,40 @@ test_expect_success 'redirects send auth to new location' ' expect_askpass both user@host auth/smart/repo.git ' +test_expect_success 'GIT_TRACE_CURL redacts auth details' ' + rm -rf redact-auth trace && + set_askpass user@host pass@host && + GIT_TRACE_CURL="$(pwd)/trace" git clone --bare "$HTTPD_URL/auth/smart/repo.git" redact-auth && + expect_askpass both user@host && + + # Ensure that there is no "Basic" followed by a base64 string, but that + # the auth details are redacted + ! grep "Authorization: Basic [0-9a-zA-Z+/]" trace && + grep "Authorization: Basic <redacted>" trace +' + +test_expect_success 'GIT_CURL_VERBOSE redacts auth details' ' + rm -rf redact-auth trace && + set_askpass user@host pass@host && + GIT_CURL_VERBOSE=1 git clone --bare "$HTTPD_URL/auth/smart/repo.git" redact-auth 2>trace && + expect_askpass both user@host && + + # Ensure that there is no "Basic" followed by a base64 string, but that + # the auth details are redacted + ! grep "Authorization: Basic [0-9a-zA-Z+/]" trace && + grep "Authorization: Basic <redacted>" trace +' + +test_expect_success 'GIT_TRACE_CURL does not redact auth details if GIT_TRACE_REDACT=0' ' + rm -rf redact-auth trace && + set_askpass user@host pass@host && + GIT_TRACE_REDACT=0 GIT_TRACE_CURL="$(pwd)/trace" \ + git clone --bare "$HTTPD_URL/auth/smart/repo.git" redact-auth && + expect_askpass both user@host && + + grep "Authorization: Basic [0-9a-zA-Z+/]" trace +' + test_expect_success 'disable dumb http on server' ' git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \ config http.getanyfile false @@ -430,27 +464,39 @@ test_expect_success 'fetch by SHA-1 without tag following' ' --no-tags origin $(cat bar_hash) ' -test_expect_success 'GIT_REDACT_COOKIES redacts cookies' ' +test_expect_success 'cookies are redacted by default' ' rm -rf clone && echo "Set-Cookie: Foo=1" >cookies && echo "Set-Cookie: Bar=2" >>cookies && - GIT_TRACE_CURL=true GIT_REDACT_COOKIES=Bar,Baz \ + GIT_TRACE_CURL=true \ git -c "http.cookieFile=$(pwd)/cookies" clone \ $HTTPD_URL/smart/repo.git clone 2>err && - grep "Cookie:.*Foo=1" err && + grep "Cookie:.*Foo=<redacted>" err && grep "Cookie:.*Bar=<redacted>" err && + ! grep "Cookie:.*Foo=1" err && ! grep "Cookie:.*Bar=2" err ' -test_expect_success 'GIT_REDACT_COOKIES handles empty values' ' +test_expect_success 'empty values of cookies are also redacted' ' rm -rf clone && echo "Set-Cookie: Foo=" >cookies && - GIT_TRACE_CURL=true GIT_REDACT_COOKIES=Foo \ + GIT_TRACE_CURL=true \ git -c "http.cookieFile=$(pwd)/cookies" clone \ $HTTPD_URL/smart/repo.git clone 2>err && grep "Cookie:.*Foo=<redacted>" err ' +test_expect_success 'GIT_TRACE_REDACT=0 disables cookie redaction' ' + rm -rf clone && + echo "Set-Cookie: Foo=1" >cookies && + echo "Set-Cookie: Bar=2" >>cookies && + GIT_TRACE_REDACT=0 GIT_TRACE_CURL=true \ + git -c "http.cookieFile=$(pwd)/cookies" clone \ + $HTTPD_URL/smart/repo.git clone 2>err && + grep "Cookie:.*Foo=1" err && + grep "Cookie:.*Bar=2" err +' + test_expect_success 'GIT_TRACE_CURL_NO_DATA prevents data from being traced' ' rm -rf clone && GIT_TRACE_CURL=true \ diff --git a/t/t5562-http-backend-content-length.sh b/t/t5562-http-backend-content-length.sh index 3f4ac71f83..c6ec625497 100755 --- a/t/t5562-http-backend-content-length.sh +++ b/t/t5562-http-backend-content-length.sh @@ -46,6 +46,7 @@ ssize_b100dots() { } test_expect_success 'setup' ' + test_oid_init && HTTP_CONTENT_ENCODING="identity" && export HTTP_CONTENT_ENCODING && git config http.receivepack true && @@ -62,8 +63,8 @@ test_expect_success 'setup' ' test_copy_bytes 10 <fetch_body >fetch_body.trunc && hash_next=$(git commit-tree -p HEAD -m next HEAD^{tree}) && { - printf "%s %s refs/heads/newbranch\\0report-status\\n" \ - "$ZERO_OID" "$hash_next" | packetize && + printf "%s %s refs/heads/newbranch\\0report-status object-format=%s\\n" \ + "$ZERO_OID" "$hash_next" "$(test_oid algo)" | packetize && printf 0000 && echo "$hash_next" | git pack-objects --stdout } >push_body && diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh index f916729a12..1d75e3b12b 100755 --- a/t/t5572-pull-submodule.sh +++ b/t/t5572-pull-submodule.sh @@ -13,34 +13,38 @@ reset_branch_to_HEAD () { git_pull () { reset_branch_to_HEAD "$1" && - git pull + may_only_be_test_must_fail "$2" && + $2 git pull } # pulls without conflicts -test_submodule_switch "git_pull" +test_submodule_switch_func "git_pull" git_pull_ff () { reset_branch_to_HEAD "$1" && - git pull --ff + may_only_be_test_must_fail "$2" && + $2 git pull --ff } -test_submodule_switch "git_pull_ff" +test_submodule_switch_func "git_pull_ff" git_pull_ff_only () { reset_branch_to_HEAD "$1" && - git pull --ff-only + may_only_be_test_must_fail "$2" && + $2 git pull --ff-only } -test_submodule_switch "git_pull_ff_only" +test_submodule_switch_func "git_pull_ff_only" git_pull_noff () { reset_branch_to_HEAD "$1" && - git pull --no-ff + may_only_be_test_must_fail "$2" && + $2 git pull --no-ff } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git_pull_noff" +test_submodule_switch_func "git_pull_noff" test_expect_success 'pull --recurse-submodule setup' ' test_create_repo child && diff --git a/t/t5581-http-curl-verbose.sh b/t/t5581-http-curl-verbose.sh index 5129b0724f..927aad0820 100755 --- a/t/t5581-http-curl-verbose.sh +++ b/t/t5581-http-curl-verbose.sh @@ -20,7 +20,7 @@ test_expect_success 'failure in git-upload-pack is shown' ' test_might_fail env GIT_CURL_VERBOSE=1 \ git clone "$HTTPD_URL/error_git_upload_pack/smart/repo.git" \ 2>curl_log && - grep "< HTTP/1.1 500 Intentional Breakage" curl_log + grep "<= Recv header: HTTP/1.1 500 Intentional Breakage" curl_log ' test_done diff --git a/t/t5606-clone-options.sh b/t/t5606-clone-options.sh index 9e24ec88e6..e69427f881 100755 --- a/t/t5606-clone-options.sh +++ b/t/t5606-clone-options.sh @@ -35,4 +35,28 @@ test_expect_success 'redirected clone -v does show progress' ' ' +test_expect_success 'chooses correct default initial branch name' ' + git init --bare empty && + git -c init.defaultBranch=up clone empty whats-up && + test refs/heads/up = $(git -C whats-up symbolic-ref HEAD) && + test refs/heads/up = $(git -C whats-up config branch.up.merge) +' + +test_expect_success 'guesses initial branch name correctly' ' + git init --initial-branch=guess initial-branch && + test_commit -C initial-branch no-spoilers && + git -C initial-branch branch abc guess && + git clone initial-branch is-it && + test refs/heads/guess = $(git -C is-it symbolic-ref HEAD) && + + git -c init.defaultBranch=none init --bare no-head && + git -C initial-branch push ../no-head guess abc && + git clone no-head is-it2 && + test_must_fail git -C is-it2 symbolic-ref refs/remotes/origin/HEAD && + git -C no-head update-ref --no-deref HEAD refs/heads/guess && + git -c init.defaultBranch=guess clone no-head is-it3 && + test refs/remotes/origin/guess = \ + $(git -C is-it3 symbolic-ref refs/remotes/origin/HEAD) +' + test_done diff --git a/t/t5608-clone-2gb.sh b/t/t5608-clone-2gb.sh index eee0842888..4c476d2fa1 100755 --- a/t/t5608-clone-2gb.sh +++ b/t/t5608-clone-2gb.sh @@ -5,12 +5,11 @@ test_description='Test cloning a repository larger than 2 gigabyte' if ! test_bool_env GIT_TEST_CLONE_2GB false then - say 'Skipping expensive 2GB clone test; enable it with GIT_TEST_CLONE_2GB=t' -else - test_set_prereq CLONE_2GB + skip_all='expensive 2GB clone test; enable with GIT_TEST_CLONE_2GB=true' + test_done fi -test_expect_success CLONE_2GB 'setup' ' +test_expect_success 'setup' ' git config pack.compression 0 && git config pack.depth 0 && @@ -38,13 +37,13 @@ test_expect_success CLONE_2GB 'setup' ' ' -test_expect_success CLONE_2GB 'clone - bare' ' +test_expect_success 'clone - bare' ' git clone --bare --no-hardlinks . clone-bare ' -test_expect_success CLONE_2GB 'clone - with worktree, file:// protocol' ' +test_expect_success 'clone - with worktree, file:// protocol' ' git clone "file://$(pwd)" clone-wt diff --git a/t/t5701-git-serve.sh b/t/t5701-git-serve.sh index ffb9613885..a1f5fdc9fd 100755 --- a/t/t5701-git-serve.sh +++ b/t/t5701-git-serve.sh @@ -5,12 +5,17 @@ test_description='test protocol v2 server commands' . ./test-lib.sh test_expect_success 'test capability advertisement' ' + test_oid_cache <<-EOF && + wrong_algo sha1:sha256 + wrong_algo sha256:sha1 + EOF cat >expect <<-EOF && version 2 agent=git/$(git version | cut -d" " -f3) ls-refs fetch=shallow server-option + object-format=$(test_oid algo) 0000 EOF @@ -45,6 +50,7 @@ test_expect_success 'request invalid capability' ' test_expect_success 'request with no command' ' test-tool pkt-line pack >in <<-EOF && agent=git/test + object-format=$(test_oid algo) 0000 EOF test_must_fail test-tool serve-v2 --stateless-rpc 2>err <in && @@ -54,6 +60,7 @@ test_expect_success 'request with no command' ' test_expect_success 'request invalid command' ' test-tool pkt-line pack >in <<-EOF && command=foo + object-format=$(test_oid algo) agent=git/test 0000 EOF @@ -61,6 +68,17 @@ test_expect_success 'request invalid command' ' test_i18ngrep "invalid command" err ' +test_expect_success 'wrong object-format' ' + test-tool pkt-line pack >in <<-EOF && + command=fetch + agent=git/test + object-format=$(test_oid wrong_algo) + 0000 + EOF + test_must_fail test-tool serve-v2 --stateless-rpc 2>err <in && + test_i18ngrep "mismatched object format" err +' + # Test the basics of ls-refs # test_expect_success 'setup some refs and tags' ' @@ -74,6 +92,7 @@ test_expect_success 'setup some refs and tags' ' test_expect_success 'basics of ls-refs' ' test-tool pkt-line pack >in <<-EOF && command=ls-refs + object-format=$(test_oid algo) 0000 EOF @@ -96,6 +115,7 @@ test_expect_success 'basics of ls-refs' ' test_expect_success 'basic ref-prefixes' ' test-tool pkt-line pack >in <<-EOF && command=ls-refs + object-format=$(test_oid algo) 0001 ref-prefix refs/heads/master ref-prefix refs/tags/one @@ -116,6 +136,7 @@ test_expect_success 'basic ref-prefixes' ' test_expect_success 'refs/heads prefix' ' test-tool pkt-line pack >in <<-EOF && command=ls-refs + object-format=$(test_oid algo) 0001 ref-prefix refs/heads/ 0000 @@ -136,6 +157,7 @@ test_expect_success 'refs/heads prefix' ' test_expect_success 'peel parameter' ' test-tool pkt-line pack >in <<-EOF && command=ls-refs + object-format=$(test_oid algo) 0001 peel ref-prefix refs/tags/ @@ -157,6 +179,7 @@ test_expect_success 'peel parameter' ' test_expect_success 'symrefs parameter' ' test-tool pkt-line pack >in <<-EOF && command=ls-refs + object-format=$(test_oid algo) 0001 symrefs ref-prefix refs/heads/ @@ -178,6 +201,7 @@ test_expect_success 'symrefs parameter' ' test_expect_success 'sending server-options' ' test-tool pkt-line pack >in <<-EOF && command=ls-refs + object-format=$(test_oid algo) server-option=hello server-option=world 0001 @@ -200,6 +224,7 @@ test_expect_success 'unexpected lines are not allowed in fetch request' ' test-tool pkt-line pack >in <<-EOF && command=fetch + object-format=$(test_oid algo) 0001 this-is-not-a-command 0000 diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh index 5039e66dc4..1b54c35b01 100755 --- a/t/t5702-protocol-v2.sh +++ b/t/t5702-protocol-v2.sh @@ -13,6 +13,7 @@ start_git_daemon --export-all --enable=receive-pack daemon_parent=$GIT_DAEMON_DOCUMENT_ROOT_PATH/parent test_expect_success 'create repo to be served by git-daemon' ' + test_oid_init && git init "$daemon_parent" && test_commit -C "$daemon_parent" one ' @@ -348,7 +349,6 @@ test_expect_success 'partial fetch' ' rm -rf client "$(pwd)/trace" && git init client && SERVER="file://$(pwd)/server" && - test_config -C client extensions.partialClone "$SERVER" && GIT_TRACE_PACKET="$(pwd)/trace" git -C client -c protocol.version=2 \ fetch --filter=blob:none "$SERVER" master:refs/heads/other && @@ -394,6 +394,7 @@ test_expect_success 'even with handcrafted request, filter does not work if not # Custom request that tries to filter even though it is not advertised. test-tool pkt-line pack >in <<-EOF && command=fetch + object-format=$(test_oid algo) 0001 want $(git -C server rev-parse master) filter blob:none @@ -586,6 +587,53 @@ test_expect_success 'clone with http:// using protocol v2' ' ! grep "Send header: Transfer-Encoding: chunked" log ' +test_expect_success 'clone repository with http:// using protocol v2 with incomplete pktline length' ' + test_when_finished "rm -f log" && + + git init "$HTTPD_DOCUMENT_ROOT_PATH/incomplete_length" && + test_commit -C "$HTTPD_DOCUMENT_ROOT_PATH/incomplete_length" file && + + test_must_fail env GIT_TRACE_PACKET="$(pwd)/log" GIT_TRACE_CURL="$(pwd)/log" git -c protocol.version=2 \ + clone "$HTTPD_URL/smart/incomplete_length" incomplete_length_child 2>err && + + # Client requested to use protocol v2 + grep "Git-Protocol: version=2" log && + # Server responded using protocol v2 + grep "git< version 2" log && + # Client reported appropriate failure + test_i18ngrep "bytes of length header were received" err +' + +test_expect_success 'clone repository with http:// using protocol v2 with incomplete pktline body' ' + test_when_finished "rm -f log" && + + git init "$HTTPD_DOCUMENT_ROOT_PATH/incomplete_body" && + test_commit -C "$HTTPD_DOCUMENT_ROOT_PATH/incomplete_body" file && + + test_must_fail env GIT_TRACE_PACKET="$(pwd)/log" GIT_TRACE_CURL="$(pwd)/log" git -c protocol.version=2 \ + clone "$HTTPD_URL/smart/incomplete_body" incomplete_body_child 2>err && + + # Client requested to use protocol v2 + grep "Git-Protocol: version=2" log && + # Server responded using protocol v2 + grep "git< version 2" log && + # Client reported appropriate failure + test_i18ngrep "bytes of body are still expected" err +' + +test_expect_success 'clone with http:// using protocol v2 and invalid parameters' ' + test_when_finished "rm -f log" && + + test_must_fail env GIT_TRACE_PACKET="$(pwd)/log" GIT_TRACE_CURL="$(pwd)/log" \ + git -c protocol.version=2 \ + clone --shallow-since=20151012 "$HTTPD_URL/smart/http_parent" http_child_invalid && + + # Client requested to use protocol v2 + grep "Git-Protocol: version=2" log && + # Server responded using protocol v2 + grep "git< version 2" log +' + test_expect_success 'clone big repository with http:// using protocol v2' ' test_when_finished "rm -f log" && @@ -748,6 +796,94 @@ test_expect_success 'when server does not send "ready", expect FLUSH' ' test_i18ngrep "expected no other sections to be sent after no .ready." err ' +configure_exclusion () { + git -C "$1" hash-object "$2" >objh && + git -C "$1" pack-objects "$HTTPD_DOCUMENT_ROOT_PATH/mypack" <objh >packh && + git -C "$1" config --add \ + "uploadpack.blobpackfileuri" \ + "$(cat objh) $(cat packh) $HTTPD_URL/dumb/mypack-$(cat packh).pack" && + cat objh +} + +test_expect_success 'part of packfile response provided as URI' ' + P="$HTTPD_DOCUMENT_ROOT_PATH/http_parent" && + rm -rf "$P" http_child log && + + git init "$P" && + git -C "$P" config "uploadpack.allowsidebandall" "true" && + + echo my-blob >"$P/my-blob" && + git -C "$P" add my-blob && + echo other-blob >"$P/other-blob" && + git -C "$P" add other-blob && + git -C "$P" commit -m x && + + configure_exclusion "$P" my-blob >h && + configure_exclusion "$P" other-blob >h2 && + + GIT_TRACE=1 GIT_TRACE_PACKET="$(pwd)/log" GIT_TEST_SIDEBAND_ALL=1 \ + git -c protocol.version=2 \ + -c fetch.uriprotocols=http,https \ + clone "$HTTPD_URL/smart/http_parent" http_child && + + # Ensure that my-blob and other-blob are in separate packfiles. + for idx in http_child/.git/objects/pack/*.idx + do + git verify-pack --verbose $idx >out && + { + grep "^[0-9a-f]\{16,\} " out || : + } >out.objectlist && + if test_line_count = 1 out.objectlist + then + if grep $(cat h) out + then + >hfound + fi && + if grep $(cat h2) out + then + >h2found + fi + fi + done && + test -f hfound && + test -f h2found && + + # Ensure that there are exactly 6 files (3 .pack and 3 .idx). + ls http_child/.git/objects/pack/* >filelist && + test_line_count = 6 filelist +' + +test_expect_success 'fetching with valid packfile URI but invalid hash fails' ' + P="$HTTPD_DOCUMENT_ROOT_PATH/http_parent" && + rm -rf "$P" http_child log && + + git init "$P" && + git -C "$P" config "uploadpack.allowsidebandall" "true" && + + echo my-blob >"$P/my-blob" && + git -C "$P" add my-blob && + echo other-blob >"$P/other-blob" && + git -C "$P" add other-blob && + git -C "$P" commit -m x && + + configure_exclusion "$P" my-blob >h && + # Configure a URL for other-blob. Just reuse the hash of the object as + # the hash of the packfile, since the hash does not matter for this + # test as long as it is not the hash of the pack, and it is of the + # expected length. + git -C "$P" hash-object other-blob >objh && + git -C "$P" pack-objects "$HTTPD_DOCUMENT_ROOT_PATH/mypack" <objh >packh && + git -C "$P" config --add \ + "uploadpack.blobpackfileuri" \ + "$(cat objh) $(cat objh) $HTTPD_URL/dumb/mypack-$(cat packh).pack" && + + test_must_fail env GIT_TEST_SIDEBAND_ALL=1 \ + git -c protocol.version=2 \ + -c fetch.uriprotocols=http,https \ + clone "$HTTPD_URL/smart/http_parent" http_child 2>err && + test_i18ngrep "pack downloaded from.*does not match expected hash" err +' + # DO NOT add non-httpd-specific tests here, because the last part of this # test script is only executed when httpd is available and enabled. diff --git a/t/t5703-upload-pack-ref-in-want.sh b/t/t5703-upload-pack-ref-in-want.sh index 92ad5eeec0..748282f058 100755 --- a/t/t5703-upload-pack-ref-in-want.sh +++ b/t/t5703-upload-pack-ref-in-want.sh @@ -27,6 +27,15 @@ check_output () { test_cmp sorted_commits actual_commits } +write_command () { + echo "command=$1" + + if test "$(test_oid algo)" != sha1 + then + echo "object-format=$(test_oid algo)" + fi +} + # c(o/foo) d(o/bar) # \ / # b e(baz) f(master) @@ -65,7 +74,7 @@ test_expect_success 'config controls ref-in-want advertisement' ' test_expect_success 'invalid want-ref line' ' test-tool pkt-line pack >in <<-EOF && - command=fetch + $(write_command fetch) 0001 no-progress want-ref refs/heads/non-existent @@ -86,7 +95,7 @@ test_expect_success 'basic want-ref' ' oid=$(git rev-parse a) && test-tool pkt-line pack >in <<-EOF && - command=fetch + $(write_command fetch) 0001 no-progress want-ref refs/heads/master @@ -110,7 +119,7 @@ test_expect_success 'multiple want-ref lines' ' oid=$(git rev-parse b) && test-tool pkt-line pack >in <<-EOF && - command=fetch + $(write_command fetch) 0001 no-progress want-ref refs/heads/o/foo @@ -132,7 +141,7 @@ test_expect_success 'mix want and want-ref' ' git rev-parse e f >expected_commits && test-tool pkt-line pack >in <<-EOF && - command=fetch + $(write_command fetch) 0001 no-progress want-ref refs/heads/master @@ -155,7 +164,7 @@ test_expect_success 'want-ref with ref we already have commit for' ' oid=$(git rev-parse c) && test-tool pkt-line pack >in <<-EOF && - command=fetch + $(write_command fetch) 0001 no-progress want-ref refs/heads/o/foo diff --git a/t/t5704-protocol-violations.sh b/t/t5704-protocol-violations.sh index 950cfb21fe..5c941949b9 100755 --- a/t/t5704-protocol-violations.sh +++ b/t/t5704-protocol-violations.sh @@ -9,6 +9,7 @@ making sure that we do not segfault or otherwise behave badly.' test_expect_success 'extra delim packet in v2 ls-refs args' ' { packetize command=ls-refs && + packetize "object-format=$(test_oid algo)" && printf 0001 && # protocol expects 0000 flush here printf 0001 @@ -21,6 +22,7 @@ test_expect_success 'extra delim packet in v2 ls-refs args' ' test_expect_success 'extra delim packet in v2 fetch args' ' { packetize command=fetch && + packetize "object-format=$(test_oid algo)" && printf 0001 && # protocol expects 0000 flush here printf 0001 diff --git a/t/t5801/git-remote-testgit b/t/t5801/git-remote-testgit index 6b9f0b5dc7..1544d6dc6b 100755 --- a/t/t5801/git-remote-testgit +++ b/t/t5801/git-remote-testgit @@ -52,9 +52,11 @@ do test -n "$GIT_REMOTE_TESTGIT_SIGNED_TAGS" && echo "signed-tags" test -n "$GIT_REMOTE_TESTGIT_NO_PRIVATE_UPDATE" && echo "no-private-update" echo 'option' + echo 'object-format' echo ;; list) + echo ":object-format $(git rev-parse --show-object-format=storage)" git for-each-ref --format='? %(refname)' 'refs/heads/' 'refs/tags/' head=$(git symbolic-ref HEAD) echo "@$head HEAD" @@ -139,6 +141,10 @@ do test $val = "true" && force="true" || force= echo "ok" ;; + object-format) + test $val = "true" && object_format="true" || object_format= + echo "ok" + ;; *) echo "unsupported" ;; diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh index ac31faefa1..36d9b2b2e4 100755 --- a/t/t6030-bisect-porcelain.sh +++ b/t/t6030-bisect-porcelain.sh @@ -866,7 +866,9 @@ test_expect_success 'bisect cannot mix terms' ' test_expect_success 'bisect terms rejects invalid terms' ' git bisect reset && + test_must_fail git bisect start --term-good && test_must_fail git bisect start --term-good invalid..term && + test_must_fail git bisect start --term-bad && test_must_fail git bisect terms --term-bad invalid..term && test_must_fail git bisect terms --term-good bad && test_must_fail git bisect terms --term-good old && diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh index 62b8a2e7bb..df1eff0fb8 100755 --- a/t/t6041-bisect-submodule.sh +++ b/t/t6041-bisect-submodule.sh @@ -10,7 +10,12 @@ git_bisect () { ls -1pR * >>expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && GOOD=$(git rev-parse --verify HEAD) && - git checkout "$1" && + may_only_be_test_must_fail "$2" && + $2 git checkout "$1" && + if test -n "$2" + then + return + fi && echo "foo" >bar && git add bar && git commit -m "bisect bad" && @@ -27,6 +32,6 @@ git_bisect () { git bisect bad $BAD } -test_submodule_switch "git_bisect" +test_submodule_switch_func "git_bisect" test_done diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh index e7e64e085d..c80dc10b8f 100755 --- a/t/t6050-replace.sh +++ b/t/t6050-replace.sh @@ -135,7 +135,7 @@ test_expect_success 'tag replaced commit' ' test_expect_success '"git fsck" works' ' git fsck master >fsck_master.out && test_i18ngrep "dangling commit $R" fsck_master.out && - test_i18ngrep "dangling tag $(cat .git/refs/tags/mytag)" fsck_master.out && + test_i18ngrep "dangling tag $(git show-ref -s refs/tags/mytag)" fsck_master.out && test -z "$(git fsck)" ' diff --git a/t/t6132-pathspec-exclude.sh b/t/t6132-pathspec-exclude.sh index 2462b19ddd..30328b87f0 100755 --- a/t/t6132-pathspec-exclude.sh +++ b/t/t6132-pathspec-exclude.sh @@ -211,4 +211,37 @@ test_expect_success 't_e_i() exclude case #8' ' ) ' +test_expect_success 'grep --untracked PATTERN' ' + # This test is not an actual test of exclude patterns, rather it + # is here solely to ensure that if any tests are inserted, deleted, or + # changed above, that we still have untracked files with the expected + # contents for the NEXT two tests. + cat <<-\EOF >expect-grep && + actual + expect + sub/actual + sub/expect + EOF + git grep -l --untracked file -- >actual-grep && + test_cmp expect-grep actual-grep +' + +test_expect_success 'grep --untracked PATTERN :(exclude)DIR' ' + cat <<-\EOF >expect-grep && + actual + expect + EOF + git grep -l --untracked file -- ":(exclude)sub" >actual-grep && + test_cmp expect-grep actual-grep +' + +test_expect_success 'grep --untracked PATTERN :(exclude)*FILE' ' + cat <<-\EOF >expect-grep && + actual + sub/actual + EOF + git grep -l --untracked file -- ":(exclude)*expect" >actual-grep && + test_cmp expect-grep actual-grep +' + test_done diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh index b15582a7a2..2b3fd498d0 100755 --- a/t/t6200-fmt-merge-msg.sh +++ b/t/t6200-fmt-merge-msg.sh @@ -79,7 +79,7 @@ test_expect_success GPG 'set up a signed tag' ' ' test_expect_success 'message for merging local branch' ' - echo "Merge branch ${apos}left${apos}" >expected && + echo "Merge branch ${apos}left${apos} into master" >expected && git checkout master && git fetch . left && @@ -103,11 +103,11 @@ test_expect_success GPG 'message for merging local tag signed by unknown key' ' GNUPGHOME=. git fmt-merge-msg <.git/FETCH_HEAD >actual 2>&1 && grep "^Merge tag ${apos}signed-good-tag${apos}" actual && grep "^# gpg: Signature made" actual && - grep "^# gpg: Can${apos}t check signature: \(public key not found\|No public key\)" actual + grep -E "^# gpg: Can${apos}t check signature: (public key not found|No public key)" actual ' test_expect_success 'message for merging external branch' ' - echo "Merge branch ${apos}left${apos} of $(pwd)" >expected && + echo "Merge branch ${apos}left${apos} of $(pwd) into master" >expected && git checkout master && git fetch "$(pwd)" left && @@ -118,7 +118,7 @@ test_expect_success 'message for merging external branch' ' test_expect_success '[merge] summary/log configuration' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos} + Merge branch ${apos}left${apos} into master # By Another Author (3) and A U Thor (2) # Via Another Committer @@ -160,7 +160,7 @@ test_expect_success 'setup FETCH_HEAD' ' test_expect_success 'merge.log=3 limits shortlog length' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos} + Merge branch ${apos}left${apos} into master # By Another Author (3) and A U Thor (2) # Via Another Committer @@ -177,7 +177,7 @@ test_expect_success 'merge.log=3 limits shortlog length' ' test_expect_success 'merge.log=5 shows all 5 commits' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos} + Merge branch ${apos}left${apos} into master # By Another Author (3) and A U Thor (2) # Via Another Committer @@ -195,7 +195,7 @@ test_expect_success 'merge.log=5 shows all 5 commits' ' test_expect_success '--log=5 with custom comment character' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos} + Merge branch ${apos}left${apos} into master x By Another Author (3) and A U Thor (2) x Via Another Committer @@ -212,14 +212,14 @@ test_expect_success '--log=5 with custom comment character' ' ' test_expect_success 'merge.log=0 disables shortlog' ' - echo "Merge branch ${apos}left${apos}" >expected && + echo "Merge branch ${apos}left${apos} into master" >expected && git -c merge.log=0 fmt-merge-msg <.git/FETCH_HEAD >actual && test_cmp expected actual ' test_expect_success '--log=3 limits shortlog length' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos} + Merge branch ${apos}left${apos} into master # By Another Author (3) and A U Thor (2) # Via Another Committer @@ -236,7 +236,7 @@ test_expect_success '--log=3 limits shortlog length' ' test_expect_success '--log=5 shows all 5 commits' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos} + Merge branch ${apos}left${apos} into master # By Another Author (3) and A U Thor (2) # Via Another Committer @@ -253,13 +253,13 @@ test_expect_success '--log=5 shows all 5 commits' ' ' test_expect_success '--no-log disables shortlog' ' - echo "Merge branch ${apos}left${apos}" >expected && + echo "Merge branch ${apos}left${apos} into master" >expected && git fmt-merge-msg --no-log <.git/FETCH_HEAD >actual && test_cmp expected actual ' test_expect_success '--log=0 disables shortlog' ' - echo "Merge branch ${apos}left${apos}" >expected && + echo "Merge branch ${apos}left${apos} into master" >expected && git fmt-merge-msg --no-log <.git/FETCH_HEAD >actual && test_cmp expected actual ' @@ -300,7 +300,7 @@ test_expect_success 'fmt-merge-msg -m' ' test_expect_success 'setup: expected shortlog for two branches' ' cat >expected <<-EOF - Merge branches ${apos}left${apos} and ${apos}right${apos} + Merge branches ${apos}left${apos} and ${apos}right${apos} into master # By Another Author (3) and A U Thor (2) # Via Another Committer @@ -397,7 +397,7 @@ test_expect_success 'merge-msg with nothing to merge' ' test_expect_success 'merge-msg tag' ' cat >expected <<-EOF && - Merge tag ${apos}tag-r3${apos} + Merge tag ${apos}tag-r3${apos} into master * tag ${apos}tag-r3${apos}: Right #3 @@ -418,7 +418,7 @@ test_expect_success 'merge-msg tag' ' test_expect_success 'merge-msg two tags' ' cat >expected <<-EOF && - Merge tags ${apos}tag-r3${apos} and ${apos}tag-l5${apos} + Merge tags ${apos}tag-r3${apos} and ${apos}tag-l5${apos} into master * tag ${apos}tag-r3${apos}: Right #3 @@ -448,7 +448,7 @@ test_expect_success 'merge-msg two tags' ' test_expect_success 'merge-msg tag and branch' ' cat >expected <<-EOF && - Merge branch ${apos}left${apos}, tag ${apos}tag-r3${apos} + Merge branch ${apos}left${apos}, tag ${apos}tag-r3${apos} into master * tag ${apos}tag-r3${apos}: Right #3 @@ -479,7 +479,7 @@ test_expect_success 'merge-msg tag and branch' ' test_expect_success 'merge-msg lots of commits' ' { cat <<-EOF && - Merge branch ${apos}long${apos} + Merge branch ${apos}long${apos} into master * long: (35 commits) EOF @@ -516,7 +516,7 @@ test_expect_success 'merge-msg with "merging" an annotated tag' ' git fmt-merge-msg <.git/FETCH_HEAD >actual && { cat <<-\EOF - Merge tag '\''annote'\'' + Merge tag '\''annote'\'' into master An annotated one @@ -531,7 +531,7 @@ test_expect_success 'merge-msg with "merging" an annotated tag' ' git merge --no-commit --no-ff $annote && { cat <<-EOF - Merge tag '\''$annote'\'' + Merge tag '\''$annote'\'' into master An annotated one diff --git a/t/t7112-reset-submodule.sh b/t/t7112-reset-submodule.sh index 67346424a5..19830d9036 100755 --- a/t/t7112-reset-submodule.sh +++ b/t/t7112-reset-submodule.sh @@ -12,10 +12,10 @@ test_submodule_switch_recursing_with_args "reset --keep" test_submodule_forced_switch_recursing_with_args "reset --hard" -test_submodule_switch "git reset --keep" +test_submodule_switch "reset --keep" -test_submodule_switch "git reset --merge" +test_submodule_switch "reset --merge" -test_submodule_forced_switch "git reset --hard" +test_submodule_forced_switch "reset --hard" test_done diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh index 4fb447a143..aa19ff3a2e 100755 --- a/t/t7406-submodule-update.sh +++ b/t/t7406-submodule-update.sh @@ -70,6 +70,22 @@ test_expect_success 'setup a submodule tree' ' ) ' +test_expect_success 'update --remote falls back to using HEAD' ' + test_create_repo main-branch-submodule && + test_commit -C main-branch-submodule initial && + + test_create_repo main-branch && + git -C main-branch submodule add ../main-branch-submodule && + git -C main-branch commit -m add-submodule && + + git -C main-branch-submodule switch -c hello && + test_commit -C main-branch-submodule world && + + git clone --recursive main-branch main-branch-clone && + git -C main-branch-clone submodule update --remote main-branch-submodule && + test_path_exists main-branch-clone/main-branch-submodule/world.t +' + test_expect_success 'submodule update detaching the HEAD ' ' (cd super/submodule && git reset --hard HEAD~1 diff --git a/t/t7419-submodule-set-branch.sh b/t/t7419-submodule-set-branch.sh index fd25f786a3..3b925c302f 100755 --- a/t/t7419-submodule-set-branch.sh +++ b/t/t7419-submodule-set-branch.sh @@ -52,12 +52,13 @@ test_expect_success 'test submodule set-branch --branch' ' ' test_expect_success 'test submodule set-branch --default' ' + test_commit -C submodule c && (cd super && git submodule set-branch --default submodule && ! grep branch .gitmodules && git submodule update --remote && cat <<-\EOF >expect && - a + c EOF git -C submodule show -s --pretty=%s >actual && test_cmp expect actual @@ -65,6 +66,7 @@ test_expect_success 'test submodule set-branch --default' ' ' test_expect_success 'test submodule set-branch -b' ' + test_commit -C submodule b && (cd super && git submodule set-branch -b topic submodule && grep "branch = topic" .gitmodules && @@ -78,12 +80,13 @@ test_expect_success 'test submodule set-branch -b' ' ' test_expect_success 'test submodule set-branch -d' ' + test_commit -C submodule d && (cd super && git submodule set-branch -d submodule && ! grep branch .gitmodules && git submodule update --remote && cat <<-\EOF >expect && - a + d EOF git -C submodule show -s --pretty=%s >actual && test_cmp expect actual diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index 5883a6adc3..1d45f9a4ed 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -14,9 +14,9 @@ Testing basic merge operations/option parsing. ! [c4] c4 ! [c5] c5 ! [c6] c6 - * [master] Merge commit 'c1' + * [master] Merge commit 'c1' into master -------- - - [master] Merge commit 'c1' + - [master] Merge commit 'c1' into master + * [c1] commit 1 + [c6] c6 + [c5] c5 @@ -44,8 +44,8 @@ test_write_lines '1 X' 2 '3 X' 4 '5 X' 6 7 8 '9 X' >result.1-3-5-9 test_write_lines 1 2 3 4 5 6 7 8 '9 Z' >result.9z create_merge_msgs () { - echo "Merge tag 'c2'" >msg.1-5 && - echo "Merge tags 'c2' and 'c3'" >msg.1-5-9 && + echo "Merge tag 'c2' into master" >msg.1-5 && + echo "Merge tags 'c2' and 'c3' into master" >msg.1-5-9 && { echo "Squashed commit of the following:" && echo && @@ -258,7 +258,7 @@ test_expect_success 'merge c3 with c7 with commit.cleanup = scissors' ' git commit --no-edit -a && cat >expect <<-\EOF && - Merge tag '"'"'c7'"'"' + Merge tag '"'"'c7'"'"' into master # ------------------------ >8 ------------------------ # Do not modify or remove the line above. @@ -808,10 +808,10 @@ test_expect_success 'merge with conflicted --autostash changes' ' ' cat >expected.branch <<\EOF -Merge branch 'c5-branch' (early part) +Merge branch 'c5-branch' (early part) into master EOF cat >expected.tag <<\EOF -Merge commit 'c5~1' +Merge commit 'c5~1' into master EOF test_expect_success 'merge early part of c2' ' diff --git a/t/t7608-merge-messages.sh b/t/t7608-merge-messages.sh index 8e7e0a5865..2af33f195b 100755 --- a/t/t7608-merge-messages.sh +++ b/t/t7608-merge-messages.sh @@ -16,7 +16,7 @@ test_expect_success 'merge local branch' ' git checkout master && test_commit master-2 && git merge local-branch && - check_oneline "Merge branch Qlocal-branchQ" + check_oneline "Merge branch Qlocal-branchQ into master" ' test_expect_success 'merge octopus branches' ' @@ -26,7 +26,7 @@ test_expect_success 'merge octopus branches' ' test_commit octopus-2 && git checkout master && git merge octopus-a octopus-b && - check_oneline "Merge branches Qoctopus-aQ and Qoctopus-bQ" + check_oneline "Merge branches Qoctopus-aQ and Qoctopus-bQ into master" ' test_expect_success 'merge tag' ' @@ -35,7 +35,7 @@ test_expect_success 'merge tag' ' git checkout master && test_commit master-3 && git merge tag-1 && - check_oneline "Merge tag Qtag-1Q" + check_oneline "Merge tag Qtag-1Q into master" ' test_expect_success 'ambiguous tag' ' @@ -44,7 +44,7 @@ test_expect_success 'ambiguous tag' ' git checkout master && test_commit master-4 && git merge ambiguous && - check_oneline "Merge tag QambiguousQ" + check_oneline "Merge tag QambiguousQ into master" ' test_expect_success 'remote-tracking branch' ' @@ -54,7 +54,7 @@ test_expect_success 'remote-tracking branch' ' git checkout master && test_commit master-5 && git merge origin/master && - check_oneline "Merge remote-tracking branch Qorigin/masterQ" + check_oneline "Merge remote-tracking branch Qorigin/masterQ into master" ' test_done diff --git a/t/t7613-merge-submodule.sh b/t/t7613-merge-submodule.sh index d1e9fcc781..04bf4be7d7 100755 --- a/t/t7613-merge-submodule.sh +++ b/t/t7613-merge-submodule.sh @@ -6,14 +6,14 @@ test_description='merge can handle submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh # merges without conflicts -test_submodule_switch "git merge" +test_submodule_switch "merge" -test_submodule_switch "git merge --ff" +test_submodule_switch "merge --ff" -test_submodule_switch "git merge --ff-only" +test_submodule_switch "merge --ff-only" KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git merge --no-ff" +test_submodule_switch "merge --no-ff" test_done diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh index 29b92907e2..524f30f7dc 100755 --- a/t/t7800-difftool.sh +++ b/t/t7800-difftool.sh @@ -720,6 +720,14 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' ' test_cmp expect actual ' +test_expect_success 'add -N and difftool -d' ' + test_when_finished git reset --hard && + + test_write_lines A B C >intent-to-add && + git add -N intent-to-add && + git difftool --dir-diff --extcmd ls +' + test_expect_success 'outside worktree' ' echo 1 >1 && echo 2 >2 && diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 90f61c3400..ec261085ec 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -42,7 +42,8 @@ clean_fake_sendmail () { } test_expect_success $PREREQ 'Extract patches' ' - patches=$(git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1) + patches=$(git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1) && + threaded_patches=$(git format-patch -o threaded -s --in-reply-to="format" HEAD^1) ' # Test no confirm early to ensure remaining tests will not hang @@ -1219,6 +1220,17 @@ test_expect_success $PREREQ 'threading but no chain-reply-to' ' grep "In-Reply-To: " stdout ' +test_expect_success $PREREQ 'override in-reply-to if no threading' ' + git send-email \ + --dry-run \ + --from="Example <nobody@example.com>" \ + --to=nobody@example.com \ + --no-thread \ + --in-reply-to="override" \ + $threaded_patches >stdout && + grep "In-Reply-To: <override>" stdout +' + test_expect_success $PREREQ 'sendemail.to works' ' git config --replace-all sendemail.to "Somebody <somebody@ex.com>" && git send-email \ diff --git a/t/t9020-remote-svn.sh b/t/t9020-remote-svn.sh index 6fca08e5e3..754c4a3284 100755 --- a/t/t9020-remote-svn.sh +++ b/t/t9020-remote-svn.sh @@ -48,8 +48,8 @@ test_expect_success REMOTE_SVN 'simple fetch' ' ' test_debug ' - cat .git/refs/svn/svnsim/master - cat .git/refs/remotes/svnsim/master + git show-ref -s refs/svn/svnsim/master + git show-ref -s refs/remotes/svnsim/master ' test_expect_success REMOTE_SVN 'repeated fetch, nothing shall change' ' @@ -84,6 +84,12 @@ test_expect_success REMOTE_SVN 'incremental imports must lead to the same head' test_cmp master.good .git/refs/remotes/svnsim/master ' +test_expect_success REMOTE_SVN 'respects configured default initial branch' ' + git -c init.defaultBranch=trunk remote add -f trunk \ + "testsvn::file://$TEST_DIRECTORY/t9154/svn.dump" && + git rev-parse --verify refs/remotes/trunk/trunk +' + test_debug 'git branch -a' test_done diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh index 2c309a57d9..9f2d19ecc4 100755 --- a/t/t9100-git-svn-basic.sh +++ b/t/t9100-git-svn-basic.sh @@ -208,9 +208,10 @@ name='check imported tree checksums expected tree checksums' rm -f expected if test_have_prereq UTF8 then - echo tree dc68b14b733e4ec85b04ab6f712340edc5dc936e > expected + echo tree dc68b14b733e4ec85b04ab6f712340edc5dc936e > expected.sha1 + echo tree b95b55b29d771f5eb73aa9b9d52d02fe11a2538c2feb0829f754ce20a91d98eb > expected.sha256 fi -cat >> expected <<\EOF +cat >> expected.sha1 <<\EOF tree c3322890dcf74901f32d216f05c5044f670ce632 tree d3ccd5035feafd17b030c5732e7808cc49122853 tree d03e1630363d4881e68929d532746b20b0986b83 @@ -220,8 +221,20 @@ tree 149d63cd5878155c846e8c55d7d8487de283f89e tree d667270a1f7b109f5eb3aaea21ede14b56bfdd6e tree 8f51f74cf0163afc9ad68a4b1537288c4558b5a4 EOF +cat >> expected.sha256 <<\EOF +tree 8d12756699d0b5b110514240a0ff141f6cbf8891fd69ab05e5594196fb437c9f +tree 8187168d33f7d4ccb8c1cc6e99532810aaccb47658f35d19b3803072d1128d7a +tree 74e535d85da8ee25eb23d7b506790c5ab3ccdb1ba0826bd57625ed44ef361650 +tree 6fd7dd963e3cdca0cbd6368ed3cfcc8037cc154d2e7719d9d369a0952364fd95 +tree 1fd6cec6aa95102d69266e20419bb62ec2a06372d614b9850ef23ff204103bb4 +tree 6fd7dd963e3cdca0cbd6368ed3cfcc8037cc154d2e7719d9d369a0952364fd95 +tree deb2b7ac79cd8ce6f52af6a5a0a08691e94ba74a2ed55966bb27dbec551730eb +tree 59e2e936761188476a7752034e8aa0a822b34050c8504b0dfd946407f4bc9215 +EOF -test_expect_success POSIXPERM,SYMLINKS "$name" "test_cmp expected a" +test_expect_success POSIXPERM,SYMLINKS "$name" ' + test_cmp expected.$(test_oid algo) a +' test_expect_success 'exit if remote refs are ambigious' ' git config --add svn-remote.svn.fetch \ diff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh index c26c4b0927..8b5681dd68 100755 --- a/t/t9101-git-svn-props.sh +++ b/t/t9101-git-svn-props.sh @@ -160,11 +160,13 @@ cat >create-ignore.expect <<\EOF /no-such-file* EOF -cat >create-ignore-index.expect <<\EOF -100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0 .gitignore -100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0 deeply/.gitignore -100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0 deeply/nested/.gitignore -100644 8c52e5dfcd0a8b6b6bcfe6b41b89bcbf493718a5 0 deeply/nested/directory/.gitignore +expectoid=$(git hash-object create-ignore.expect) + +cat >create-ignore-index.expect <<EOF +100644 $expectoid 0 .gitignore +100644 $expectoid 0 deeply/.gitignore +100644 $expectoid 0 deeply/nested/.gitignore +100644 $expectoid 0 deeply/nested/directory/.gitignore EOF test_expect_success 'test create-ignore' " diff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh index 5e0ad19177..67eed2fefc 100755 --- a/t/t9104-git-svn-follow-parent.sh +++ b/t/t9104-git-svn-follow-parent.sh @@ -161,6 +161,7 @@ test_expect_success "track initial change if it was only made to parent" ' ' test_expect_success "follow-parent is atomic" ' + record_size=$(($(test_oid rawsz) + 4)) && ( cd wc && svn_cmd up && @@ -186,7 +187,7 @@ test_expect_success "follow-parent is atomic" ' mkdir -p "$GIT_DIR"/svn/refs/remotes/flunk@18 && rev_map=$(cd "$GIT_DIR"/svn/refs/remotes/stunk && ls .rev_map*) && dd if="$GIT_DIR"/svn/refs/remotes/stunk/$rev_map \ - of="$GIT_DIR"/svn/refs/remotes/flunk@18/$rev_map bs=24 count=1 && + of="$GIT_DIR"/svn/refs/remotes/flunk@18/$rev_map bs=$record_size count=1 && rm -rf "$GIT_DIR"/svn/refs/remotes/stunk && git svn init --minimize-url -i flunk "$svnrepo"/flunk && git svn fetch -i flunk && diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh index 6990f64364..d5939d4753 100755 --- a/t/t9108-git-svn-glob.sh +++ b/t/t9108-git-svn-glob.sh @@ -48,7 +48,7 @@ test_expect_success 'test refspec globbing' ' "tags/*/src/a:refs/remotes/tags/*" && git svn multi-fetch && git log --pretty=oneline refs/remotes/tags/end >actual && - sed -e "s/^.\{41\}//" actual >output.end && + cut -d" " -f2- actual >output.end && test_cmp expect.end output.end && test "$(git rev-parse refs/remotes/tags/end~1)" = \ "$(git rev-parse refs/remotes/branches/start)" && @@ -84,7 +84,7 @@ test_expect_success 'test left-hand-side only globbing' ' test $(git rev-parse refs/remotes/two/tags/end~3) = \ $(git rev-parse refs/remotes/two/branches/start) && git log --pretty=oneline refs/remotes/two/tags/end >actual && - sed -e "s/^.\{41\}//" actual >output.two && + cut -d" " -f2- actual >output.two && test_cmp expect.two output.two ' diff --git a/t/t9109-git-svn-multi-glob.sh b/t/t9109-git-svn-multi-glob.sh index c1e7542a37..648dcee1ea 100755 --- a/t/t9109-git-svn-multi-glob.sh +++ b/t/t9109-git-svn-multi-glob.sh @@ -48,7 +48,7 @@ test_expect_success 'test refspec globbing' ' "tags/*/src/a:refs/remotes/tags/*" && git svn multi-fetch && git log --pretty=oneline refs/remotes/tags/end >actual && - sed -e "s/^.\{41\}//" actual >output.end && + cut -d" " -f2- actual >output.end && test_cmp expect.end output.end && test "$(git rev-parse refs/remotes/tags/end~1)" = \ "$(git rev-parse refs/remotes/branches/v1/start)" && @@ -84,7 +84,7 @@ test_expect_success 'test left-hand-side only globbing' ' test $(git rev-parse refs/remotes/two/tags/end~3) = \ $(git rev-parse refs/remotes/two/branches/v1/start) && git log --pretty=oneline refs/remotes/two/tags/end >actual && - sed -e "s/^.\{41\}//" actual >output.two && + cut -d" " -f2- actual >output.two && test_cmp expect.two output.two ' cat > expect.four <<EOF @@ -135,7 +135,7 @@ test_expect_success 'test another branch' ' test $(git rev-parse refs/remotes/four/tags/next~2) = \ $(git rev-parse refs/remotes/four/branches/v2/start) && git log --pretty=oneline refs/remotes/four/tags/next >actual && - sed -e "s/^.\{41\}//" actual >output.four && + cut -d" " -f2- actual >output.four && test_cmp expect.four output.four ' diff --git a/t/t9168-git-svn-partially-globbed-names.sh b/t/t9168-git-svn-partially-globbed-names.sh index bdf6e84999..854b3419b2 100755 --- a/t/t9168-git-svn-partially-globbed-names.sh +++ b/t/t9168-git-svn-partially-globbed-names.sh @@ -49,7 +49,7 @@ test_expect_success 'test refspec prefixed globbing' ' "tags/t_*/src/a:refs/remotes/tags/t_*" && git svn multi-fetch && git log --pretty=oneline refs/remotes/tags/t_end >actual && - sed -e "s/^.\{41\}//" actual >output.end && + cut -d" " -f2- actual >output.end && test_cmp expect.end output.end && test "$(git rev-parse refs/remotes/tags/t_end~1)" = \ "$(git rev-parse refs/remotes/branches/b_start)" && @@ -87,7 +87,7 @@ test_expect_success 'test left-hand-side only prefixed globbing' ' test $(git rev-parse refs/remotes/two/tags/t_end~3) = \ $(git rev-parse refs/remotes/two/branches/b_start) && git log --pretty=oneline refs/remotes/two/tags/t_end >actual && - sed -e "s/^.\{41\}//" actual >output.two && + cut -d" " -f2- actual >output.two && test_cmp expect.two output.two ' @@ -129,7 +129,7 @@ test_expect_success 'test prefixed globs match just prefix' ' test $(git rev-parse refs/remotes/three/tags/t_~1) = \ $(git rev-parse refs/remotes/three/branches/b_) && git log --pretty=oneline refs/remotes/three/tags/t_ >actual && - sed -e "s/^.\{41\}//" actual >output.three && + cut -d" " -f2- actual >output.three && test_cmp expect.three output.three ' @@ -199,7 +199,7 @@ test_expect_success 'test globbing in the middle of the word' ' test $(git rev-parse refs/remotes/five/tags/fghij~1) = \ $(git rev-parse refs/remotes/five/branches/abcde) && git log --pretty=oneline refs/remotes/five/tags/fghij >actual && - sed -e "s/^.\{41\}//" actual >output.five && + cut -d" " -f2- actual >output.five && test_cmp expect.five output.five ' diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index 768257b29e..e151df81c0 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -410,6 +410,34 @@ test_expect_success 'B: accept empty committer' ' test -z "$out" ' +test_expect_success 'B: reject invalid timezone' ' + cat >input <<-INPUT_END && + commit refs/heads/invalid-timezone + committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1234567890 +051800 + data <<COMMIT + empty commit + COMMIT + INPUT_END + + test_when_finished "git update-ref -d refs/heads/invalid-timezone" && + test_must_fail git fast-import <input +' + +test_expect_success 'B: accept invalid timezone with raw-permissive' ' + cat >input <<-INPUT_END && + commit refs/heads/invalid-timezone + committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1234567890 +051800 + data <<COMMIT + empty commit + COMMIT + INPUT_END + + git init invalid-timezone && + git -C invalid-timezone fast-import --date-format=raw-permissive <input && + git -C invalid-timezone cat-file -p invalid-timezone >out && + grep "1234567890 [+]051800" out +' + test_expect_success 'B: accept and fixup committer with no name' ' cat >input <<-INPUT_END && commit refs/heads/empty-committer-2 diff --git a/t/t9351-fast-export-anonymize.sh b/t/t9351-fast-export-anonymize.sh index 897dc50907..5ac2c3b5ee 100755 --- a/t/t9351-fast-export-anonymize.sh +++ b/t/t9351-fast-export-anonymize.sh @@ -6,15 +6,24 @@ test_description='basic tests for fast-export --anonymize' test_expect_success 'setup simple repo' ' test_commit base && test_commit foo && + test_commit retain-me && git checkout -b other HEAD^ && mkdir subdir && test_commit subdir/bar && test_commit subdir/xyzzy && + fake_commit=$(echo $ZERO_OID | sed s/0/a/) && + git update-index --add --cacheinfo 160000,$fake_commit,link1 && + git update-index --add --cacheinfo 160000,$fake_commit,link2 && + git commit -m "add gitlink" && git tag -m "annotated tag" mytag ' test_expect_success 'export anonymized stream' ' - git fast-export --anonymize --all >stream + git fast-export --anonymize --all \ + --anonymize-map=retain-me \ + --anonymize-map=xyzzy:custom-name \ + --anonymize-map=other \ + >stream ' # this also covers commit messages @@ -26,12 +35,23 @@ test_expect_success 'stream omits path names' ' ! grep xyzzy stream ' -test_expect_success 'stream allows master as refname' ' - grep master stream +test_expect_success 'stream contains user-specified names' ' + grep retain-me stream && + grep custom-name stream +' + +test_expect_success 'stream omits gitlink oids' ' + # avoid relying on the whole oid to remain hash-agnostic; this is + # plenty to be unique within our test case + ! grep a000000000000000000 stream +' + +test_expect_success 'stream retains other as refname' ' + grep other stream ' test_expect_success 'stream omits other refnames' ' - ! grep other stream && + ! grep master stream && ! grep mytag stream ' @@ -57,7 +77,8 @@ test_expect_success 'import stream to new repository' ' test_expect_success 'result has two branches' ' git for-each-ref --format="%(refname)" refs/heads >branches && test_line_count = 2 branches && - other_branch=$(grep -v refs/heads/master branches) + other_branch=refs/heads/other && + main_branch=$(grep -v $other_branch branches) ' test_expect_success 'repo has original shape and timestamps' ' @@ -65,34 +86,35 @@ test_expect_success 'repo has original shape and timestamps' ' git log --format="%m %ct" --left-right --boundary "$@" } && (cd .. && shape master...other) >expect && - shape master...$other_branch >actual && + shape $main_branch...$other_branch >actual && test_cmp expect actual ' test_expect_success 'root tree has original shape' ' # the output entries are not necessarily in the same - # order, but we know at least that we will have one tree - # and one blob, so just check the sorted order - cat >expect <<-\EOF && - blob - tree - EOF + # order, but we should at least have the same set of + # object types. + git -C .. ls-tree HEAD >orig-root && + cut -d" " -f2 <orig-root | sort >expect && git ls-tree $other_branch >root && cut -d" " -f2 <root | sort >actual && test_cmp expect actual ' test_expect_success 'paths in subdir ended up in one tree' ' - cat >expect <<-\EOF && - blob - blob - EOF + git -C .. ls-tree other:subdir >orig-subdir && + cut -d" " -f2 <orig-subdir | sort >expect && tree=$(grep tree root | cut -f2) && git ls-tree $other_branch:$tree >tree && cut -d" " -f2 <tree >actual && test_cmp expect actual ' +test_expect_success 'identical gitlinks got identical oid' ' + awk "/commit/ { print \$3 }" <root | sort -u >commits && + test_line_count = 1 commits +' + test_expect_success 'tag points to branch tip' ' git rev-parse $other_branch >expect && git for-each-ref --format="%(*objectname)" | grep . >actual && diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 3c44af6940..8425b9a531 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -494,7 +494,7 @@ test_expect_success '__gitcomp - prefix' ' ' test_expect_success '__gitcomp - suffix' ' - test_gitcomp "branch.me" "master maint next pu" "branch." \ + test_gitcomp "branch.me" "master maint next seen" "branch." \ "ma" "." <<-\EOF branch.master.Z branch.maint.Z @@ -545,7 +545,7 @@ read -r -d "" refs <<-\EOF maint master next -pu +seen EOF test_expect_success '__gitcomp_nl - trailing space' ' @@ -1240,6 +1240,461 @@ test_expect_success '__git_complete_fetch_refspecs - fully qualified & prefix' ' test_cmp expected out ' +test_expect_success 'git switch - with no options, complete local branches and unique remote branch names for DWIM logic' ' + test_completion "git switch " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - completes refs and unique remote branches for DWIM' ' + test_completion "git checkout " <<-\EOF + HEAD Z + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with --no-guess, complete only local branches' ' + test_completion "git switch --no-guess " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - with GIT_COMPLETION_CHECKOUT_NO_GUESS=1, complete only local branches' ' + GIT_COMPLETION_CHECKOUT_NO_GUESS=1 test_completion "git switch " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - --guess overrides GIT_COMPLETION_CHECKOUT_NO_GUESS=1, complete local branches and unique remote names for DWIM logic' ' + GIT_COMPLETION_CHECKOUT_NO_GUESS=1 test_completion "git switch --guess " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - a later --guess overrides previous --no-guess, complete local and remote unique branches for DWIM' ' + test_completion "git switch --no-guess --guess " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - a later --no-guess overrides previous --guess, complete only local branches' ' + test_completion "git switch --guess --no-guess " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - with GIT_COMPLETION_NO_GUESS=1 only completes refs' ' + GIT_COMPLETION_CHECKOUT_NO_GUESS=1 test_completion "git checkout " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - --guess overrides GIT_COMPLETION_NO_GUESS=1, complete refs and unique remote branches for DWIM' ' + GIT_COMPLETION_CHECKOUT_NO_GUESS=1 test_completion "git checkout --guess " <<-\EOF + HEAD Z + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with --no-guess, only completes refs' ' + test_completion "git checkout --no-guess " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - a later --guess overrides previous --no-guess, complete refs and unique remote branches for DWIM' ' + test_completion "git checkout --no-guess --guess " <<-\EOF + HEAD Z + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - a later --no-guess overrides previous --guess, complete only refs' ' + test_completion "git checkout --guess --no-guess " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with --detach, complete all references' ' + test_completion "git switch --detach " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with --detach, complete only references' ' + test_completion "git checkout --detach " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -d, complete all references' ' + test_completion "git switch -d " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -d, complete only references' ' + test_completion "git checkout -d " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with --track, complete only remote branches' ' + test_completion "git switch --track " <<-\EOF + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with --track, complete only remote branches' ' + test_completion "git checkout --track " <<-\EOF + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with --no-track, complete only local branch names' ' + test_completion "git switch --no-track " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - with --no-track, complete only local references' ' + test_completion "git checkout --no-track " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -c, complete all references' ' + test_completion "git switch -c new-branch " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -C, complete all references' ' + test_completion "git switch -C new-branch " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -c and --track, complete all references' ' + test_completion "git switch -c new-branch --track " <<-EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -C and --track, complete all references' ' + test_completion "git switch -C new-branch --track " <<-EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -c and --no-track, complete all references' ' + test_completion "git switch -c new-branch --no-track " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - with -C and --no-track, complete all references' ' + test_completion "git switch -C new-branch --no-track " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -b, complete all references' ' + test_completion "git checkout -b new-branch " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -B, complete all references' ' + test_completion "git checkout -B new-branch " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -b and --track, complete all references' ' + test_completion "git checkout -b new-branch --track " <<-EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -B and --track, complete all references' ' + test_completion "git checkout -B new-branch --track " <<-EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -b and --no-track, complete all references' ' + test_completion "git checkout -b new-branch --no-track " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git checkout - with -B and --no-track, complete all references' ' + test_completion "git checkout -B new-branch --no-track " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + +test_expect_success 'git switch - for -c, complete local branches and unique remote branches' ' + test_completion "git switch -c " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - for -C, complete local branches and unique remote branches' ' + test_completion "git switch -C " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - for -c with --no-guess, complete local branches only' ' + test_completion "git switch --no-guess -c " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - for -C with --no-guess, complete local branches only' ' + test_completion "git switch --no-guess -C " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - for -c with --no-track, complete local branches only' ' + test_completion "git switch --no-track -c " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - for -C with --no-track, complete local branches only' ' + test_completion "git switch --no-track -C " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - for -b, complete local branches and unique remote branches' ' + test_completion "git checkout -b " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - for -B, complete local branches and unique remote branches' ' + test_completion "git checkout -B " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - for -b with --no-guess, complete local branches only' ' + test_completion "git checkout --no-guess -b " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - for -B with --no-guess, complete local branches only' ' + test_completion "git checkout --no-guess -B " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - for -b with --no-track, complete local branches only' ' + test_completion "git checkout --no-track -b " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - for -B with --no-track, complete local branches only' ' + test_completion "git checkout --no-track -B " <<-\EOF + master Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - with --orphan completes local branch names and unique remote branch names' ' + test_completion "git switch --orphan " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git switch - --orphan with branch already provided completes nothing else' ' + test_completion "git switch --orphan master " <<-\EOF + + EOF +' + +test_expect_success 'git checkout - with --orphan completes local branch names and unique remote branch names' ' + test_completion "git checkout --orphan " <<-\EOF + branch-in-other Z + master Z + master-in-other Z + matching-branch Z + EOF +' + +test_expect_success 'git checkout - --orphan with branch already provided completes local refs for a start-point' ' + test_completion "git checkout --orphan master " <<-\EOF + HEAD Z + master Z + matching-branch Z + matching-tag Z + other/branch-in-other Z + other/master-in-other Z + EOF +' + test_expect_success 'teardown after ref completion' ' git branch -d matching-branch && git tag -d matching-tag && diff --git a/t/test-lib.sh b/t/test-lib.sh index 88bb797141..618a7c8d5b 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -1414,6 +1414,7 @@ test_oid_init ZERO_OID=$(test_oid zero) OID_REGEX=$(echo $ZERO_OID | sed -e 's/0/[0-9a-f]/g') +OIDPATH_REGEX=$(test_oid_to_path $ZERO_OID | sed -e 's/0/[0-9a-f]/g') EMPTY_TREE=$(test_oid empty_tree) EMPTY_BLOB=$(test_oid empty_blob) _z40=$ZERO_OID @@ -1489,12 +1490,6 @@ case $uname_s in test_set_prereq SED_STRIPS_CR test_set_prereq GREP_STRIPS_CR ;; -FreeBSD) - test_set_prereq REGEX_ILLSEQ - test_set_prereq POSIXPERM - test_set_prereq BSLASHPSPEC - test_set_prereq EXECKEEPSPID - ;; *) test_set_prereq POSIXPERM test_set_prereq BSLASHPSPEC @@ -103,7 +103,7 @@ struct tag *lookup_tag(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_object(r, oid, alloc_tag_node(r)); - return object_as_type(r, obj, OBJ_TAG, 0); + return object_as_type(obj, OBJ_TAG, 0); } static timestamp_t parse_tag_date(const char *buf, const char *tail) @@ -29,7 +29,7 @@ struct trace_key trace_perf_key = TRACE_KEY_INIT(PERFORMANCE); struct trace_key trace_setup_key = TRACE_KEY_INIT(SETUP); /* Get a trace file descriptor from "key" env variable. */ -static int get_trace_fd(struct trace_key *key) +static int get_trace_fd(struct trace_key *key, const char *override_envvar) { const char *trace; @@ -37,7 +37,7 @@ static int get_trace_fd(struct trace_key *key) if (key->initialized) return key->fd; - trace = getenv(key->key); + trace = override_envvar ? override_envvar : getenv(key->key); if (!trace || !strcmp(trace, "") || !strcmp(trace, "0") || !strcasecmp(trace, "false")) @@ -68,6 +68,18 @@ static int get_trace_fd(struct trace_key *key) return key->fd; } +void trace_override_envvar(struct trace_key *key, const char *value) +{ + trace_disable(key); + key->initialized = 0; + + /* + * Invoke get_trace_fd() to initialize key using the given value + * instead of the value of the environment variable. + */ + get_trace_fd(key, value); +} + void trace_disable(struct trace_key *key) { if (key->need_close) @@ -112,7 +124,7 @@ static int prepare_trace_line(const char *file, int line, static void trace_write(struct trace_key *key, const void *buf, unsigned len) { - if (write_in_full(get_trace_fd(key), buf, len) < 0) { + if (write_in_full(get_trace_fd(key, NULL), buf, len) < 0) { warning("unable to write trace for %s: %s", key->key, strerror(errno)); trace_disable(key); @@ -383,7 +395,7 @@ void trace_repo_setup(const char *prefix) int trace_want(struct trace_key *key) { - return !!get_trace_fd(key); + return !!get_trace_fd(key, NULL); } #if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_CLOCK_MONOTONIC) @@ -102,6 +102,12 @@ void trace_repo_setup(const char *prefix); int trace_want(struct trace_key *key); /** + * Enables or disables tracing for the specified key, as if the environment + * variable was set to the given value. + */ +void trace_override_envvar(struct trace_key *key, const char *value); + +/** * Disables tracing for the specified key, even if the environment variable * was set. */ diff --git a/transport-helper.c b/transport-helper.c index a46afcb69d..c6b753bfae 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -32,7 +32,8 @@ struct helper_data { signed_tags : 1, check_connectivity : 1, no_disconnect_req : 1, - no_private_update : 1; + no_private_update : 1, + object_format : 1; /* * As an optimization, the transport code may invoke fetch before @@ -207,6 +208,8 @@ static struct child_process *get_helper(struct transport *transport) data->import_marks = xstrdup(arg); } else if (starts_with(capname, "no-private-update")) { data->no_private_update = 1; + } else if (starts_with(capname, "object-format")) { + data->object_format = 1; } else if (mandatory) { die(_("unknown mandatory capability %s; this remote " "helper probably needs newer version of Git"), @@ -410,10 +413,11 @@ static int fetch_with_fetch(struct transport *transport, exit(128); if (skip_prefix(buf.buf, "lock ", &name)) { - if (transport->pack_lockfile) + if (transport->pack_lockfiles.nr) warning(_("%s also locked %s"), data->name, name); else - transport->pack_lockfile = xstrdup(name); + string_list_append(&transport->pack_lockfiles, + name); } else if (data->check_connectivity && data->transport_options.check_self_contained_and_connected && @@ -1046,7 +1050,7 @@ static int push_refs(struct transport *transport, if (!remote_refs) { fprintf(stderr, _("No refs in common and none specified; doing nothing.\n" - "Perhaps you should specify a branch such as 'master'.\n")); + "Perhaps you should specify a branch.\n")); return 0; } @@ -1103,6 +1107,12 @@ static struct ref *get_refs_list_using_list(struct transport *transport, data->get_refs_list_called = 1; helper = get_helper(transport); + if (data->object_format) { + write_str_in_full(helper->in, "option object-format\n"); + if (recvline(data, &buf) || strcmp(buf.buf, "ok")) + exit(128); + } + if (data->push && for_push) write_str_in_full(helper->in, "list for-push\n"); else @@ -1115,6 +1125,17 @@ static struct ref *get_refs_list_using_list(struct transport *transport, if (!*buf.buf) break; + else if (buf.buf[0] == ':') { + const char *value; + if (skip_prefix(buf.buf, ":object-format ", &value)) { + int algo = hash_algo_by_name(value); + if (algo == GIT_HASH_UNKNOWN) + die(_("unsupported object format '%s'"), + value); + transport->hash_algo = &hash_algos[algo]; + } + continue; + } eov = strchr(buf.buf, ' '); if (!eov) @@ -1127,7 +1148,7 @@ static struct ref *get_refs_list_using_list(struct transport *transport, if (buf.buf[0] == '@') (*tail)->symref = xstrdup(buf.buf + 1); else if (buf.buf[0] != '?') - get_oid_hex(buf.buf, &(*tail)->old_oid); + get_oid_hex_algop(buf.buf, &(*tail)->old_oid, transport->hash_algo); if (eon) { if (has_attribute(eon + 1, "unchanged")) { (*tail)->status |= REF_STATUS_UPTODATE; diff --git a/transport.c b/transport.c index 15f5ba4e8f..b41386eccb 100644 --- a/transport.c +++ b/transport.c @@ -143,6 +143,9 @@ static struct ref *get_refs_from_bundle(struct transport *transport, data->fd = read_bundle_header(transport->url, &data->header); if (data->fd < 0) die(_("could not read bundle '%s'"), transport->url); + + transport->hash_algo = data->header.hash_algo; + for (i = 0; i < data->header.references.nr; i++) { struct ref_list_entry *e = data->header.references.list + i; struct ref *ref = alloc_ref(e->name); @@ -157,11 +160,14 @@ static int fetch_refs_from_bundle(struct transport *transport, int nr_heads, struct ref **to_fetch) { struct bundle_transport_data *data = transport->data; + int ret; if (!data->get_refs_from_bundle_called) get_refs_from_bundle(transport, 0, NULL); - return unbundle(the_repository, &data->header, data->fd, - transport->progress ? BUNDLE_VERBOSE : 0); + ret = unbundle(the_repository, &data->header, data->fd, + transport->progress ? BUNDLE_VERBOSE : 0); + transport->hash_algo = data->header.hash_algo; + return ret; } static int close_bundle(struct transport *transport) @@ -297,7 +303,8 @@ static struct ref *handshake(struct transport *transport, int for_push, if (must_list_refs) get_remote_refs(data->fd[1], &reader, &refs, for_push, ref_prefixes, - transport->server_options); + transport->server_options, + transport->stateless_rpc); break; case protocol_v1: case protocol_v0: @@ -311,6 +318,7 @@ static struct ref *handshake(struct transport *transport, int for_push, BUG("unknown protocol version"); } data->got_remote_heads = 1; + transport->hash_algo = reader.hash_algo; if (reader.line_peeked) BUG("buffer must be empty at the end of handshake()"); @@ -369,24 +377,15 @@ static int fetch_refs_via_pack(struct transport *transport, refs_tmp = handshake(transport, 0, NULL, must_list_refs); } - switch (data->version) { - case protocol_v2: - refs = fetch_pack(&args, data->fd, - refs_tmp ? refs_tmp : transport->remote_refs, - to_fetch, nr_heads, &data->shallow, - &transport->pack_lockfile, data->version); - break; - case protocol_v1: - case protocol_v0: - die_if_server_options(transport); - refs = fetch_pack(&args, data->fd, - refs_tmp ? refs_tmp : transport->remote_refs, - to_fetch, nr_heads, &data->shallow, - &transport->pack_lockfile, data->version); - break; - case protocol_unknown_version: + if (data->version == protocol_unknown_version) BUG("unknown protocol version"); - } + else if (data->version <= protocol_v1) + die_if_server_options(transport); + + refs = fetch_pack(&args, data->fd, + refs_tmp ? refs_tmp : transport->remote_refs, + to_fetch, nr_heads, &data->shallow, + &transport->pack_lockfiles, data->version); close(data->fd[0]); close(data->fd[1]); @@ -929,6 +928,7 @@ struct transport *transport_get(struct remote *remote, const char *url) struct transport *ret = xcalloc(1, sizeof(*ret)); ret->progress = isatty(2); + string_list_init(&ret->pack_lockfiles, 1); if (!remote) BUG("No remote provided to transport_get()"); @@ -996,9 +996,16 @@ struct transport *transport_get(struct remote *remote, const char *url) ret->smart_options->receivepack = remote->receivepack; } + ret->hash_algo = &hash_algos[GIT_HASH_SHA1]; + return ret; } +const struct git_hash_algo *transport_get_hash_algo(struct transport *transport) +{ + return transport->hash_algo; +} + int transport_set_option(struct transport *transport, const char *name, const char *value) { @@ -1324,10 +1331,11 @@ int transport_fetch_refs(struct transport *transport, struct ref *refs) void transport_unlock_pack(struct transport *transport) { - if (transport->pack_lockfile) { - unlink_or_warn(transport->pack_lockfile); - FREE_AND_NULL(transport->pack_lockfile); - } + int i; + + for (i = 0; i < transport->pack_lockfiles.nr; i++) + unlink_or_warn(transport->pack_lockfiles.items[i].string); + string_list_clear(&transport->pack_lockfiles, 0); } int transport_connect(struct transport *transport, const char *name, diff --git a/transport.h b/transport.h index 4298c855be..b3c30133ea 100644 --- a/transport.h +++ b/transport.h @@ -5,8 +5,7 @@ #include "run-command.h" #include "remote.h" #include "list-objects-filter-options.h" - -struct string_list; +#include "string-list.h" struct git_transport_options { unsigned thin : 1; @@ -98,7 +97,8 @@ struct transport { */ const struct string_list *server_options; - char *pack_lockfile; + struct string_list pack_lockfiles; + signed verbose : 3; /** * Transports should not set this directly, and should use this @@ -115,6 +115,8 @@ struct transport { struct git_transport_options *smart_options; enum transport_family family; + + const struct git_hash_algo *hash_algo; }; #define TRANSPORT_PUSH_ALL (1<<0) @@ -243,6 +245,12 @@ int transport_push(struct repository *repo, const struct ref *transport_get_remote_refs(struct transport *transport, const struct argv_array *ref_prefixes); +/* + * Fetch the hash algorithm used by a remote. + * + * This can only be called after fetching the remote refs. + */ +const struct git_hash_algo *transport_get_hash_algo(struct transport *transport); int transport_fetch_refs(struct transport *transport, struct ref *refs); void transport_unlock_pack(struct transport *transport); int transport_disconnect(struct transport *transport); @@ -200,7 +200,7 @@ struct tree *lookup_tree(struct repository *r, const struct object_id *oid) struct object *obj = lookup_object(r, oid); if (!obj) return create_object(r, oid, alloc_tree_node(r)); - return object_as_type(r, obj, OBJ_TREE, 0); + return object_as_type(obj, OBJ_TREE, 0); } int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size) diff --git a/upload-pack.c b/upload-pack.c index 0478bff3e7..951a2b23aa 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -42,42 +42,122 @@ #define ALL_FLAGS (THEY_HAVE | OUR_REF | WANTED | COMMON_KNOWN | SHALLOW | \ NOT_SHALLOW | CLIENT_SHALLOW | HIDDEN_REF) -static timestamp_t oldest_have; - -static int multi_ack; -static int no_done; -static int use_thin_pack, use_ofs_delta, use_include_tag; -static int no_progress, daemon_mode; -/* Allow specifying sha1 if it is a ref tip. */ -#define ALLOW_TIP_SHA1 01 -/* Allow request of a sha1 if it is reachable from a ref (possibly hidden ref). */ -#define ALLOW_REACHABLE_SHA1 02 -/* Allow request of any sha1. Implies ALLOW_TIP_SHA1 and ALLOW_REACHABLE_SHA1. */ -#define ALLOW_ANY_SHA1 07 -static unsigned int allow_unadvertised_object_request; -static int shallow_nr; -static struct object_array extra_edge_obj; -static unsigned int timeout; -static int keepalive = 5; -/* 0 for no sideband, - * otherwise maximum packet size (up to 65520 bytes). +/* Enum for allowed unadvertised object request (UOR) */ +enum allow_uor { + /* Allow specifying sha1 if it is a ref tip. */ + ALLOW_TIP_SHA1 = 0x01, + /* Allow request of a sha1 if it is reachable from a ref (possibly hidden ref). */ + ALLOW_REACHABLE_SHA1 = 0x02, + /* Allow request of any sha1. Implies ALLOW_TIP_SHA1 and ALLOW_REACHABLE_SHA1. */ + ALLOW_ANY_SHA1 = 0x07 +}; + +/* + * Please annotate, and if possible group together, fields used only + * for protocol v0 or only for protocol v2. */ -static int use_sideband; -static int stateless_rpc; -static const char *pack_objects_hook; +struct upload_pack_data { + struct string_list symref; /* v0 only */ + struct object_array want_obj; + struct object_array have_obj; + struct oid_array haves; /* v2 only */ + struct string_list wanted_refs; /* v2 only */ + + struct object_array shallows; + struct string_list deepen_not; + struct object_array extra_edge_obj; + int depth; + timestamp_t deepen_since; + int deepen_rev_list; + int deepen_relative; + int keepalive; + int shallow_nr; + timestamp_t oldest_have; + + unsigned int timeout; /* v0 only */ + enum { + NO_MULTI_ACK = 0, + MULTI_ACK = 1, + MULTI_ACK_DETAILED = 2 + } multi_ack; /* v0 only */ -static int filter_capability_requested; -static int allow_filter; -static int allow_ref_in_want; + /* 0 for no sideband, otherwise DEFAULT_PACKET_MAX or LARGE_PACKET_MAX */ + int use_sideband; -static int allow_sideband_all; + struct string_list uri_protocols; + enum allow_uor allow_uor; + + struct list_objects_filter_options filter_options; + + struct packet_writer writer; + + const char *pack_objects_hook; + + unsigned stateless_rpc : 1; /* v0 only */ + unsigned no_done : 1; /* v0 only */ + unsigned daemon_mode : 1; /* v0 only */ + unsigned filter_capability_requested : 1; /* v0 only */ + + unsigned use_thin_pack : 1; + unsigned use_ofs_delta : 1; + unsigned no_progress : 1; + unsigned use_include_tag : 1; + unsigned allow_filter : 1; -static void reset_timeout(void) + unsigned done : 1; /* v2 only */ + unsigned allow_ref_in_want : 1; /* v2 only */ + unsigned allow_sideband_all : 1; /* v2 only */ +}; + +static void upload_pack_data_init(struct upload_pack_data *data) +{ + struct string_list symref = STRING_LIST_INIT_DUP; + struct string_list wanted_refs = STRING_LIST_INIT_DUP; + struct object_array want_obj = OBJECT_ARRAY_INIT; + struct object_array have_obj = OBJECT_ARRAY_INIT; + struct oid_array haves = OID_ARRAY_INIT; + struct object_array shallows = OBJECT_ARRAY_INIT; + struct string_list deepen_not = STRING_LIST_INIT_DUP; + struct string_list uri_protocols = STRING_LIST_INIT_DUP; + struct object_array extra_edge_obj = OBJECT_ARRAY_INIT; + + memset(data, 0, sizeof(*data)); + data->symref = symref; + data->wanted_refs = wanted_refs; + data->want_obj = want_obj; + data->have_obj = have_obj; + data->haves = haves; + data->shallows = shallows; + data->deepen_not = deepen_not; + data->uri_protocols = uri_protocols; + data->extra_edge_obj = extra_edge_obj; + packet_writer_init(&data->writer, 1); + + data->keepalive = 5; +} + +static void upload_pack_data_clear(struct upload_pack_data *data) +{ + string_list_clear(&data->symref, 1); + string_list_clear(&data->wanted_refs, 1); + object_array_clear(&data->want_obj); + object_array_clear(&data->have_obj); + oid_array_clear(&data->haves); + object_array_clear(&data->shallows); + string_list_clear(&data->deepen_not, 0); + object_array_clear(&data->extra_edge_obj); + list_objects_filter_release(&data->filter_options); + + free((char *)data->pack_objects_hook); +} + +static void reset_timeout(unsigned int timeout) { alarm(timeout); } -static void send_client_data(int fd, const char *data, ssize_t sz) +static void send_client_data(int fd, const char *data, ssize_t sz, + int use_sideband) { if (use_sideband) { send_sideband(1, fd, data, sz, use_sideband); @@ -102,48 +182,119 @@ static int write_one_shallow(const struct commit_graft *graft, void *cb_data) return 0; } -static void create_pack_file(const struct object_array *have_obj, - const struct object_array *want_obj, - struct list_objects_filter_options *filter_options) +struct output_state { + char buffer[8193]; + int used; + unsigned packfile_uris_started : 1; + unsigned packfile_started : 1; +}; + +static int relay_pack_data(int pack_objects_out, struct output_state *os, + int use_sideband, int write_packfile_line) +{ + /* + * We keep the last byte to ourselves + * in case we detect broken rev-list, so that we + * can leave the stream corrupted. This is + * unfortunate -- unpack-objects would happily + * accept a valid packdata with trailing garbage, + * so appending garbage after we pass all the + * pack data is not good enough to signal + * breakage to downstream. + */ + ssize_t readsz; + + readsz = xread(pack_objects_out, os->buffer + os->used, + sizeof(os->buffer) - os->used); + if (readsz < 0) { + return readsz; + } + os->used += readsz; + + while (!os->packfile_started) { + char *p; + if (os->used >= 4 && !memcmp(os->buffer, "PACK", 4)) { + os->packfile_started = 1; + if (write_packfile_line) { + if (os->packfile_uris_started) + packet_delim(1); + packet_write_fmt(1, "\1packfile\n"); + } + break; + } + if ((p = memchr(os->buffer, '\n', os->used))) { + if (!os->packfile_uris_started) { + os->packfile_uris_started = 1; + if (!write_packfile_line) + BUG("packfile_uris requires sideband-all"); + packet_write_fmt(1, "\1packfile-uris\n"); + } + *p = '\0'; + packet_write_fmt(1, "\1%s\n", os->buffer); + + os->used -= p - os->buffer + 1; + memmove(os->buffer, p + 1, os->used); + } else { + /* + * Incomplete line. + */ + return readsz; + } + } + + if (os->used > 1) { + send_client_data(1, os->buffer, os->used - 1, use_sideband); + os->buffer[0] = os->buffer[os->used - 1]; + os->used = 1; + } else { + send_client_data(1, os->buffer, os->used, use_sideband); + os->used = 0; + } + + return readsz; +} + +static void create_pack_file(struct upload_pack_data *pack_data, + const struct string_list *uri_protocols) { struct child_process pack_objects = CHILD_PROCESS_INIT; - char data[8193], progress[128]; + struct output_state output_state = { { 0 } }; + char progress[128]; char abort_msg[] = "aborting due to possible repository " "corruption on the remote side."; - int buffered = -1; ssize_t sz; int i; FILE *pipe_fd; - if (!pack_objects_hook) + if (!pack_data->pack_objects_hook) pack_objects.git_cmd = 1; else { - argv_array_push(&pack_objects.args, pack_objects_hook); + argv_array_push(&pack_objects.args, pack_data->pack_objects_hook); argv_array_push(&pack_objects.args, "git"); pack_objects.use_shell = 1; } - if (shallow_nr) { + if (pack_data->shallow_nr) { argv_array_push(&pack_objects.args, "--shallow-file"); argv_array_push(&pack_objects.args, ""); } argv_array_push(&pack_objects.args, "pack-objects"); argv_array_push(&pack_objects.args, "--revs"); - if (use_thin_pack) + if (pack_data->use_thin_pack) argv_array_push(&pack_objects.args, "--thin"); argv_array_push(&pack_objects.args, "--stdout"); - if (shallow_nr) + if (pack_data->shallow_nr) argv_array_push(&pack_objects.args, "--shallow"); - if (!no_progress) + if (!pack_data->no_progress) argv_array_push(&pack_objects.args, "--progress"); - if (use_ofs_delta) + if (pack_data->use_ofs_delta) argv_array_push(&pack_objects.args, "--delta-base-offset"); - if (use_include_tag) + if (pack_data->use_include_tag) argv_array_push(&pack_objects.args, "--include-tag"); - if (filter_options->choice) { + if (pack_data->filter_options.choice) { const char *spec = - expand_list_objects_filter_spec(filter_options); + expand_list_objects_filter_spec(&pack_data->filter_options); if (pack_objects.use_shell) { struct strbuf buf = STRBUF_INIT; sq_quote_buf(&buf, spec); @@ -154,6 +305,11 @@ static void create_pack_file(const struct object_array *have_obj, spec); } } + if (uri_protocols) { + for (i = 0; i < uri_protocols->nr; i++) + argv_array_pushf(&pack_objects.args, "--uri-protocol=%s", + uri_protocols->items[i].string); + } pack_objects.in = -1; pack_objects.out = -1; @@ -164,19 +320,19 @@ static void create_pack_file(const struct object_array *have_obj, pipe_fd = xfdopen(pack_objects.in, "w"); - if (shallow_nr) + if (pack_data->shallow_nr) for_each_commit_graft(write_one_shallow, pipe_fd); - for (i = 0; i < want_obj->nr; i++) + for (i = 0; i < pack_data->want_obj.nr; i++) fprintf(pipe_fd, "%s\n", - oid_to_hex(&want_obj->objects[i].item->oid)); + oid_to_hex(&pack_data->want_obj.objects[i].item->oid)); fprintf(pipe_fd, "--not\n"); - for (i = 0; i < have_obj->nr; i++) + for (i = 0; i < pack_data->have_obj.nr; i++) fprintf(pipe_fd, "%s\n", - oid_to_hex(&have_obj->objects[i].item->oid)); - for (i = 0; i < extra_edge_obj.nr; i++) + oid_to_hex(&pack_data->have_obj.objects[i].item->oid)); + for (i = 0; i < pack_data->extra_edge_obj.nr; i++) fprintf(pipe_fd, "%s\n", - oid_to_hex(&extra_edge_obj.objects[i].item->oid)); + oid_to_hex(&pack_data->extra_edge_obj.objects[i].item->oid)); fprintf(pipe_fd, "\n"); fflush(pipe_fd); fclose(pipe_fd); @@ -187,10 +343,10 @@ static void create_pack_file(const struct object_array *have_obj, while (1) { struct pollfd pfd[2]; - int pe, pu, pollsize; + int pe, pu, pollsize, polltimeout; int ret; - reset_timeout(); + reset_timeout(pack_data->timeout); pollsize = 0; pe = pu = -1; @@ -211,8 +367,11 @@ static void create_pack_file(const struct object_array *have_obj, if (!pollsize) break; - ret = poll(pfd, pollsize, - keepalive < 0 ? -1 : 1000 * keepalive); + polltimeout = pack_data->keepalive < 0 + ? -1 + : 1000 * pack_data->keepalive; + + ret = poll(pfd, pollsize, polltimeout); if (ret < 0) { if (errno != EINTR) { @@ -228,7 +387,8 @@ static void create_pack_file(const struct object_array *have_obj, sz = xread(pack_objects.err, progress, sizeof(progress)); if (0 < sz) - send_client_data(2, progress, sz); + send_client_data(2, progress, sz, + pack_data->use_sideband); else if (sz == 0) { close(pack_objects.err); pack_objects.err = -1; @@ -239,39 +399,17 @@ static void create_pack_file(const struct object_array *have_obj, continue; } if (0 <= pu && (pfd[pu].revents & (POLLIN|POLLHUP))) { - /* Data ready; we keep the last byte to ourselves - * in case we detect broken rev-list, so that we - * can leave the stream corrupted. This is - * unfortunate -- unpack-objects would happily - * accept a valid packdata with trailing garbage, - * so appending garbage after we pass all the - * pack data is not good enough to signal - * breakage to downstream. - */ - char *cp = data; - ssize_t outsz = 0; - if (0 <= buffered) { - *cp++ = buffered; - outsz++; - } - sz = xread(pack_objects.out, cp, - sizeof(data) - outsz); - if (0 < sz) - ; - else if (sz == 0) { + int result = relay_pack_data(pack_objects.out, + &output_state, + pack_data->use_sideband, + !!uri_protocols); + + if (result == 0) { close(pack_objects.out); pack_objects.out = -1; - } - else + } else if (result < 0) { goto fail; - sz += outsz; - if (1 < sz) { - buffered = data[sz-1] & 0xFF; - sz--; } - else - buffered = -1; - send_client_data(1, data, sz); } /* @@ -284,7 +422,7 @@ static void create_pack_file(const struct object_array *have_obj, * protocol to say anything, so those clients are just out of * luck. */ - if (!ret && use_sideband) { + if (!ret && pack_data->use_sideband) { static const char buf[] = "0005\1"; write_or_die(1, buf, 5); } @@ -296,32 +434,26 @@ static void create_pack_file(const struct object_array *have_obj, } /* flush the data */ - if (0 <= buffered) { - data[0] = buffered; - send_client_data(1, data, 1); + if (output_state.used > 0) { + send_client_data(1, output_state.buffer, output_state.used, + pack_data->use_sideband); fprintf(stderr, "flushed.\n"); } - if (use_sideband) + if (pack_data->use_sideband) packet_flush(1); return; fail: - send_client_data(3, abort_msg, sizeof(abort_msg)); + send_client_data(3, abort_msg, sizeof(abort_msg), + pack_data->use_sideband); die("git upload-pack: %s", abort_msg); } -static int got_oid(const char *hex, struct object_id *oid, - struct object_array *have_obj) +static int do_got_oid(struct upload_pack_data *data, const struct object_id *oid) { - struct object *o; int we_knew_they_have = 0; + struct object *o = parse_object(the_repository, oid); - if (get_oid_hex(hex, oid)) - die("git upload-pack: expected SHA1 object, got '%s'", hex); - if (!has_object_file(oid)) - return -1; - - o = parse_object(the_repository, oid); if (!o) die("oops (%s)", oid_to_hex(oid)); if (o->type == OBJ_COMMIT) { @@ -331,36 +463,44 @@ static int got_oid(const char *hex, struct object_id *oid, we_knew_they_have = 1; else o->flags |= THEY_HAVE; - if (!oldest_have || (commit->date < oldest_have)) - oldest_have = commit->date; + if (!data->oldest_have || (commit->date < data->oldest_have)) + data->oldest_have = commit->date; for (parents = commit->parents; parents; parents = parents->next) parents->item->object.flags |= THEY_HAVE; } if (!we_knew_they_have) { - add_object_array(o, NULL, have_obj); + add_object_array(o, NULL, &data->have_obj); return 1; } return 0; } -static int ok_to_give_up(const struct object_array *have_obj, - struct object_array *want_obj) +static int got_oid(struct upload_pack_data *data, + const char *hex, struct object_id *oid) +{ + if (get_oid_hex(hex, oid)) + die("git upload-pack: expected SHA1 object, got '%s'", hex); + if (!has_object_file(oid)) + return -1; + return do_got_oid(data, oid); +} + +static int ok_to_give_up(struct upload_pack_data *data) { uint32_t min_generation = GENERATION_NUMBER_ZERO; - if (!have_obj->nr) + if (!data->have_obj.nr) return 0; - return can_all_from_reach_with_flag(want_obj, THEY_HAVE, - COMMON_KNOWN, oldest_have, + return can_all_from_reach_with_flag(&data->want_obj, THEY_HAVE, + COMMON_KNOWN, data->oldest_have, min_generation); } -static int get_common_commits(struct packet_reader *reader, - struct object_array *have_obj, - struct object_array *want_obj) +static int get_common_commits(struct upload_pack_data *data, + struct packet_reader *reader) { struct object_id oid; char last_hex[GIT_MAX_HEXSZ + 1]; @@ -373,34 +513,37 @@ static int get_common_commits(struct packet_reader *reader, for (;;) { const char *arg; - reset_timeout(); + reset_timeout(data->timeout); if (packet_reader_read(reader) != PACKET_READ_NORMAL) { - if (multi_ack == 2 && got_common - && !got_other && ok_to_give_up(have_obj, want_obj)) { + if (data->multi_ack == MULTI_ACK_DETAILED + && got_common + && !got_other + && ok_to_give_up(data)) { sent_ready = 1; packet_write_fmt(1, "ACK %s ready\n", last_hex); } - if (have_obj->nr == 0 || multi_ack) + if (data->have_obj.nr == 0 || data->multi_ack) packet_write_fmt(1, "NAK\n"); - if (no_done && sent_ready) { + if (data->no_done && sent_ready) { packet_write_fmt(1, "ACK %s\n", last_hex); return 0; } - if (stateless_rpc) + if (data->stateless_rpc) exit(0); got_common = 0; got_other = 0; continue; } if (skip_prefix(reader->line, "have ", &arg)) { - switch (got_oid(arg, &oid, have_obj)) { + switch (got_oid(data, arg, &oid)) { case -1: /* they have what we do not */ got_other = 1; - if (multi_ack && ok_to_give_up(have_obj, want_obj)) { + if (data->multi_ack + && ok_to_give_up(data)) { const char *hex = oid_to_hex(&oid); - if (multi_ack == 2) { + if (data->multi_ack == MULTI_ACK_DETAILED) { sent_ready = 1; packet_write_fmt(1, "ACK %s ready\n", hex); } else @@ -410,19 +553,19 @@ static int get_common_commits(struct packet_reader *reader, default: got_common = 1; oid_to_hex_r(last_hex, &oid); - if (multi_ack == 2) + if (data->multi_ack == MULTI_ACK_DETAILED) packet_write_fmt(1, "ACK %s common\n", last_hex); - else if (multi_ack) + else if (data->multi_ack) packet_write_fmt(1, "ACK %s continue\n", last_hex); - else if (have_obj->nr == 1) + else if (data->have_obj.nr == 1) packet_write_fmt(1, "ACK %s\n", last_hex); break; } continue; } if (!strcmp(reader->line, "done")) { - if (have_obj->nr > 0) { - if (multi_ack) + if (data->have_obj.nr > 0) { + if (data->multi_ack) packet_write_fmt(1, "ACK %s\n", last_hex); return 0; } @@ -433,10 +576,10 @@ static int get_common_commits(struct packet_reader *reader, } } -static int is_our_ref(struct object *o) +static int is_our_ref(struct object *o, enum allow_uor allow_uor) { - int allow_hidden_ref = (allow_unadvertised_object_request & - (ALLOW_TIP_SHA1 | ALLOW_REACHABLE_SHA1)); + int allow_hidden_ref = (allow_uor & + (ALLOW_TIP_SHA1 | ALLOW_REACHABLE_SHA1)); return o->flags & ((allow_hidden_ref ? HIDDEN_REF : 0) | OUR_REF); } @@ -445,7 +588,8 @@ static int is_our_ref(struct object *o) */ static int do_reachable_revlist(struct child_process *cmd, struct object_array *src, - struct object_array *reachable) + struct object_array *reachable, + enum allow_uor allow_uor) { static const char *argv[] = { "rev-list", "--stdin", NULL, @@ -479,7 +623,7 @@ static int do_reachable_revlist(struct child_process *cmd, continue; if (reachable && o->type == OBJ_COMMIT) o->flags &= ~TMP_MARK; - if (!is_our_ref(o)) + if (!is_our_ref(o, allow_uor)) continue; memcpy(namebuf + 1, oid_to_hex(&o->oid), hexsz); if (write_in_full(cmd->in, namebuf, hexsz + 2) < 0) @@ -488,7 +632,7 @@ static int do_reachable_revlist(struct child_process *cmd, namebuf[hexsz] = '\n'; for (i = 0; i < src->nr; i++) { o = src->objects[i].item; - if (is_our_ref(o)) { + if (is_our_ref(o, allow_uor)) { if (reachable) add_object_array(o, NULL, reachable); continue; @@ -515,7 +659,7 @@ error: return -1; } -static int get_reachable_list(struct object_array *src, +static int get_reachable_list(struct upload_pack_data *data, struct object_array *reachable) { struct child_process cmd = CHILD_PROCESS_INIT; @@ -524,7 +668,8 @@ static int get_reachable_list(struct object_array *src, char namebuf[GIT_MAX_HEXSZ + 2]; /* ^ + hash + LF */ const unsigned hexsz = the_hash_algo->hexsz; - if (do_reachable_revlist(&cmd, src, reachable) < 0) + if (do_reachable_revlist(&cmd, &data->shallows, reachable, + data->allow_uor) < 0) return -1; while ((i = read_in_full(cmd.out, namebuf, hexsz + 1)) == hexsz + 1) { @@ -555,13 +700,13 @@ static int get_reachable_list(struct object_array *src, return 0; } -static int has_unreachable(struct object_array *src) +static int has_unreachable(struct object_array *src, enum allow_uor allow_uor) { struct child_process cmd = CHILD_PROCESS_INIT; char buf[1]; int i; - if (do_reachable_revlist(&cmd, src, NULL) < 0) + if (do_reachable_revlist(&cmd, src, NULL, allow_uor) < 0) return 1; /* @@ -592,8 +737,7 @@ error: return 1; } -static void check_non_tip(struct object_array *want_obj, - struct packet_writer *writer) +static void check_non_tip(struct upload_pack_data *data) { int i; @@ -602,18 +746,18 @@ static void check_non_tip(struct object_array *want_obj, * uploadpack.allowReachableSHA1InWant, * non-tip requests can never happen. */ - if (!stateless_rpc && !(allow_unadvertised_object_request & ALLOW_REACHABLE_SHA1)) + if (!data->stateless_rpc && !(data->allow_uor & ALLOW_REACHABLE_SHA1)) goto error; - if (!has_unreachable(want_obj)) + if (!has_unreachable(&data->want_obj, data->allow_uor)) /* All the non-tip ones are ancestors of what we advertised */ return; error: /* Pick one of them (we know there at least is one) */ - for (i = 0; i < want_obj->nr; i++) { - struct object *o = want_obj->objects[i].item; - if (!is_our_ref(o)) { - packet_writer_error(writer, + for (i = 0; i < data->want_obj.nr; i++) { + struct object *o = data->want_obj.objects[i].item; + if (!is_our_ref(o, data->allow_uor)) { + packet_writer_error(&data->writer, "upload-pack: not our ref %s", oid_to_hex(&o->oid)); die("git upload-pack: not our ref %s", @@ -622,32 +766,30 @@ error: } } -static void send_shallow(struct packet_writer *writer, +static void send_shallow(struct upload_pack_data *data, struct commit_list *result) { while (result) { struct object *object = &result->item->object; if (!(object->flags & (CLIENT_SHALLOW|NOT_SHALLOW))) { - packet_writer_write(writer, "shallow %s", + packet_writer_write(&data->writer, "shallow %s", oid_to_hex(&object->oid)); register_shallow(the_repository, &object->oid); - shallow_nr++; + data->shallow_nr++; } result = result->next; } } -static void send_unshallow(struct packet_writer *writer, - const struct object_array *shallows, - struct object_array *want_obj) +static void send_unshallow(struct upload_pack_data *data) { int i; - for (i = 0; i < shallows->nr; i++) { - struct object *object = shallows->objects[i].item; + for (i = 0; i < data->shallows.nr; i++) { + struct object *object = data->shallows.objects[i].item; if (object->flags & NOT_SHALLOW) { struct commit_list *parents; - packet_writer_write(writer, "unshallow %s", + packet_writer_write(&data->writer, "unshallow %s", oid_to_hex(&object->oid)); object->flags &= ~CLIENT_SHALLOW; /* @@ -663,10 +805,10 @@ static void send_unshallow(struct packet_writer *writer, parents = ((struct commit *)object)->parents; while (parents) { add_object_array(&parents->item->object, - NULL, want_obj); + NULL, &data->want_obj); parents = parents->next; } - add_object_array(object, NULL, &extra_edge_obj); + add_object_array(object, NULL, &data->extra_edge_obj); } /* make sure commit traversal conforms to client */ register_shallow(the_repository, &object->oid); @@ -675,17 +817,16 @@ static void send_unshallow(struct packet_writer *writer, static int check_ref(const char *refname_full, const struct object_id *oid, int flag, void *cb_data); -static void deepen(struct packet_writer *writer, int depth, int deepen_relative, - struct object_array *shallows, struct object_array *want_obj) +static void deepen(struct upload_pack_data *data, int depth) { if (depth == INFINITE_DEPTH && !is_repository_shallow(the_repository)) { int i; - for (i = 0; i < shallows->nr; i++) { - struct object *object = shallows->objects[i].item; + for (i = 0; i < data->shallows.nr; i++) { + struct object *object = data->shallows.objects[i].item; object->flags |= NOT_SHALLOW; } - } else if (deepen_relative) { + } else if (data->deepen_relative) { struct object_array reachable_shallows = OBJECT_ARRAY_INIT; struct commit_list *result; @@ -696,87 +837,80 @@ static void deepen(struct packet_writer *writer, int depth, int deepen_relative, head_ref_namespaced(check_ref, NULL); for_each_namespaced_ref(check_ref, NULL); - get_reachable_list(shallows, &reachable_shallows); + get_reachable_list(data, &reachable_shallows); result = get_shallow_commits(&reachable_shallows, depth + 1, SHALLOW, NOT_SHALLOW); - send_shallow(writer, result); + send_shallow(data, result); free_commit_list(result); object_array_clear(&reachable_shallows); } else { struct commit_list *result; - result = get_shallow_commits(want_obj, depth, + result = get_shallow_commits(&data->want_obj, depth, SHALLOW, NOT_SHALLOW); - send_shallow(writer, result); + send_shallow(data, result); free_commit_list(result); } - send_unshallow(writer, shallows, want_obj); + send_unshallow(data); } -static void deepen_by_rev_list(struct packet_writer *writer, int ac, - const char **av, - struct object_array *shallows, - struct object_array *want_obj) +static void deepen_by_rev_list(struct upload_pack_data *data, + int ac, + const char **av) { struct commit_list *result; disable_commit_graph(the_repository); result = get_shallow_commits_by_rev_list(ac, av, SHALLOW, NOT_SHALLOW); - send_shallow(writer, result); + send_shallow(data, result); free_commit_list(result); - send_unshallow(writer, shallows, want_obj); + send_unshallow(data); } /* Returns 1 if a shallow list is sent or 0 otherwise */ -static int send_shallow_list(struct packet_writer *writer, - int depth, int deepen_rev_list, - timestamp_t deepen_since, - struct string_list *deepen_not, - int deepen_relative, - struct object_array *shallows, - struct object_array *want_obj) +static int send_shallow_list(struct upload_pack_data *data) { int ret = 0; - if (depth > 0 && deepen_rev_list) + if (data->depth > 0 && data->deepen_rev_list) die("git upload-pack: deepen and deepen-since (or deepen-not) cannot be used together"); - if (depth > 0) { - deepen(writer, depth, deepen_relative, shallows, want_obj); + if (data->depth > 0) { + deepen(data, data->depth); ret = 1; - } else if (deepen_rev_list) { + } else if (data->deepen_rev_list) { struct argv_array av = ARGV_ARRAY_INIT; int i; argv_array_push(&av, "rev-list"); - if (deepen_since) - argv_array_pushf(&av, "--max-age=%"PRItime, deepen_since); - if (deepen_not->nr) { + if (data->deepen_since) + argv_array_pushf(&av, "--max-age=%"PRItime, data->deepen_since); + if (data->deepen_not.nr) { argv_array_push(&av, "--not"); - for (i = 0; i < deepen_not->nr; i++) { - struct string_list_item *s = deepen_not->items + i; + for (i = 0; i < data->deepen_not.nr; i++) { + struct string_list_item *s = data->deepen_not.items + i; argv_array_push(&av, s->string); } argv_array_push(&av, "--not"); } - for (i = 0; i < want_obj->nr; i++) { - struct object *o = want_obj->objects[i].item; + for (i = 0; i < data->want_obj.nr; i++) { + struct object *o = data->want_obj.objects[i].item; argv_array_push(&av, oid_to_hex(&o->oid)); } - deepen_by_rev_list(writer, av.argc, av.argv, shallows, want_obj); + deepen_by_rev_list(data, av.argc, av.argv); argv_array_clear(&av); ret = 1; } else { - if (shallows->nr > 0) { + if (data->shallows.nr > 0) { int i; - for (i = 0; i < shallows->nr; i++) + for (i = 0; i < data->shallows.nr; i++) register_shallow(the_repository, - &shallows->objects[i].item->oid); + &data->shallows.objects[i].item->oid); } } - shallow_nr += shallows->nr; + data->shallow_nr += data->shallows.nr; return ret; } @@ -849,45 +983,36 @@ static int process_deepen_not(const char *line, struct string_list *deepen_not, return 0; } -static void receive_needs(struct packet_reader *reader, - struct object_array *want_obj, - struct list_objects_filter_options *filter_options) +static void receive_needs(struct upload_pack_data *data, + struct packet_reader *reader) { - struct object_array shallows = OBJECT_ARRAY_INIT; - struct string_list deepen_not = STRING_LIST_INIT_DUP; - int depth = 0; int has_non_tip = 0; - timestamp_t deepen_since = 0; - int deepen_rev_list = 0; - int deepen_relative = 0; - struct packet_writer writer; - shallow_nr = 0; - packet_writer_init(&writer, 1); + data->shallow_nr = 0; for (;;) { struct object *o; const char *features; struct object_id oid_buf; const char *arg; - reset_timeout(); + reset_timeout(data->timeout); if (packet_reader_read(reader) != PACKET_READ_NORMAL) break; - if (process_shallow(reader->line, &shallows)) + if (process_shallow(reader->line, &data->shallows)) continue; - if (process_deepen(reader->line, &depth)) + if (process_deepen(reader->line, &data->depth)) continue; - if (process_deepen_since(reader->line, &deepen_since, &deepen_rev_list)) + if (process_deepen_since(reader->line, &data->deepen_since, &data->deepen_rev_list)) continue; - if (process_deepen_not(reader->line, &deepen_not, &deepen_rev_list)) + if (process_deepen_not(reader->line, &data->deepen_not, &data->deepen_rev_list)) continue; if (skip_prefix(reader->line, "filter ", &arg)) { - if (!filter_capability_requested) + if (!data->filter_capability_requested) die("git upload-pack: filtering capability not negotiated"); - list_objects_filter_die_if_populated(filter_options); - parse_list_objects_filter(filter_options, arg); + list_objects_filter_die_if_populated(&data->filter_options); + parse_list_objects_filter(&data->filter_options, arg); continue; } @@ -897,31 +1022,32 @@ static void receive_needs(struct packet_reader *reader, "expected to get object ID, not '%s'", reader->line); if (parse_feature_request(features, "deepen-relative")) - deepen_relative = 1; + data->deepen_relative = 1; if (parse_feature_request(features, "multi_ack_detailed")) - multi_ack = 2; + data->multi_ack = MULTI_ACK_DETAILED; else if (parse_feature_request(features, "multi_ack")) - multi_ack = 1; + data->multi_ack = MULTI_ACK; if (parse_feature_request(features, "no-done")) - no_done = 1; + data->no_done = 1; if (parse_feature_request(features, "thin-pack")) - use_thin_pack = 1; + data->use_thin_pack = 1; if (parse_feature_request(features, "ofs-delta")) - use_ofs_delta = 1; + data->use_ofs_delta = 1; if (parse_feature_request(features, "side-band-64k")) - use_sideband = LARGE_PACKET_MAX; + data->use_sideband = LARGE_PACKET_MAX; else if (parse_feature_request(features, "side-band")) - use_sideband = DEFAULT_PACKET_MAX; + data->use_sideband = DEFAULT_PACKET_MAX; if (parse_feature_request(features, "no-progress")) - no_progress = 1; + data->no_progress = 1; if (parse_feature_request(features, "include-tag")) - use_include_tag = 1; - if (allow_filter && parse_feature_request(features, "filter")) - filter_capability_requested = 1; + data->use_include_tag = 1; + if (data->allow_filter && + parse_feature_request(features, "filter")) + data->filter_capability_requested = 1; o = parse_object(the_repository, &oid_buf); if (!o) { - packet_writer_error(&writer, + packet_writer_error(&data->writer, "upload-pack: not our ref %s", oid_to_hex(&oid_buf)); die("git upload-pack: not our ref %s", @@ -929,10 +1055,10 @@ static void receive_needs(struct packet_reader *reader, } if (!(o->flags & WANTED)) { o->flags |= WANTED; - if (!((allow_unadvertised_object_request & ALLOW_ANY_SHA1) == ALLOW_ANY_SHA1 - || is_our_ref(o))) + if (!((data->allow_uor & ALLOW_ANY_SHA1) == ALLOW_ANY_SHA1 + || is_our_ref(o, data->allow_uor))) has_non_tip = 1; - add_object_array(o, NULL, want_obj); + add_object_array(o, NULL, &data->want_obj); } } @@ -944,19 +1070,16 @@ static void receive_needs(struct packet_reader *reader, * by another process that handled the initial request. */ if (has_non_tip) - check_non_tip(want_obj, &writer); + check_non_tip(data); - if (!use_sideband && daemon_mode) - no_progress = 1; + if (!data->use_sideband && data->daemon_mode) + data->no_progress = 1; - if (depth == 0 && !deepen_rev_list && shallows.nr == 0) + if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0) return; - if (send_shallow_list(&writer, depth, deepen_rev_list, deepen_since, - &deepen_not, deepen_relative, &shallows, - want_obj)) + if (send_shallow_list(data)) packet_flush(1); - object_array_clear(&shallows); } /* return non-zero if the ref is hidden, otherwise 0 */ @@ -1000,6 +1123,7 @@ static int send_ref(const char *refname, const struct object_id *oid, " deepen-relative no-progress include-tag multi_ack_detailed"; const char *refname_nons = strip_namespace(refname); struct object_id peeled; + struct upload_pack_data *data = cb_data; if (mark_our_ref(refname_nons, refname, oid)) return 0; @@ -1007,17 +1131,18 @@ static int send_ref(const char *refname, const struct object_id *oid, if (capabilities) { struct strbuf symref_info = STRBUF_INIT; - format_symref_info(&symref_info, cb_data); - packet_write_fmt(1, "%s %s%c%s%s%s%s%s%s agent=%s\n", + format_symref_info(&symref_info, &data->symref); + packet_write_fmt(1, "%s %s%c%s%s%s%s%s%s object-format=%s agent=%s\n", oid_to_hex(oid), refname_nons, 0, capabilities, - (allow_unadvertised_object_request & ALLOW_TIP_SHA1) ? + (data->allow_uor & ALLOW_TIP_SHA1) ? " allow-tip-sha1-in-want" : "", - (allow_unadvertised_object_request & ALLOW_REACHABLE_SHA1) ? + (data->allow_uor & ALLOW_REACHABLE_SHA1) ? " allow-reachable-sha1-in-want" : "", - stateless_rpc ? " no-done" : "", + data->stateless_rpc ? " no-done" : "", symref_info.buf, - allow_filter ? " filter" : "", + data->allow_filter ? " filter" : "", + the_hash_algo->name, git_user_agent_sanitized()); strbuf_release(&symref_info); } else { @@ -1045,33 +1170,35 @@ static int find_symref(const char *refname, const struct object_id *oid, return 0; } -static int upload_pack_config(const char *var, const char *value, void *unused) +static int upload_pack_config(const char *var, const char *value, void *cb_data) { + struct upload_pack_data *data = cb_data; + if (!strcmp("uploadpack.allowtipsha1inwant", var)) { if (git_config_bool(var, value)) - allow_unadvertised_object_request |= ALLOW_TIP_SHA1; + data->allow_uor |= ALLOW_TIP_SHA1; else - allow_unadvertised_object_request &= ~ALLOW_TIP_SHA1; + data->allow_uor &= ~ALLOW_TIP_SHA1; } else if (!strcmp("uploadpack.allowreachablesha1inwant", var)) { if (git_config_bool(var, value)) - allow_unadvertised_object_request |= ALLOW_REACHABLE_SHA1; + data->allow_uor |= ALLOW_REACHABLE_SHA1; else - allow_unadvertised_object_request &= ~ALLOW_REACHABLE_SHA1; + data->allow_uor &= ~ALLOW_REACHABLE_SHA1; } else if (!strcmp("uploadpack.allowanysha1inwant", var)) { if (git_config_bool(var, value)) - allow_unadvertised_object_request |= ALLOW_ANY_SHA1; + data->allow_uor |= ALLOW_ANY_SHA1; else - allow_unadvertised_object_request &= ~ALLOW_ANY_SHA1; + data->allow_uor &= ~ALLOW_ANY_SHA1; } else if (!strcmp("uploadpack.keepalive", var)) { - keepalive = git_config_int(var, value); - if (!keepalive) - keepalive = -1; + data->keepalive = git_config_int(var, value); + if (!data->keepalive) + data->keepalive = -1; } else if (!strcmp("uploadpack.allowfilter", var)) { - allow_filter = git_config_bool(var, value); + data->allow_filter = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowrefinwant", var)) { - allow_ref_in_want = git_config_bool(var, value); + data->allow_ref_in_want = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowsidebandall", var)) { - allow_sideband_all = git_config_bool(var, value); + data->allow_sideband_all = git_config_bool(var, value); } else if (!strcmp("core.precomposeunicode", var)) { precomposed_unicode = git_config_bool(var, value); } @@ -1079,7 +1206,7 @@ static int upload_pack_config(const char *var, const char *value, void *unused) if (current_config_scope() != CONFIG_SCOPE_LOCAL && current_config_scope() != CONFIG_SCOPE_WORKTREE) { if (!strcmp("uploadpack.packobjectshook", var)) - return git_config_string(&pack_objects_hook, var, value); + return git_config_string(&data->pack_objects_hook, var, value); } return parse_hide_refs_config(var, value, "uploadpack"); @@ -1087,99 +1214,43 @@ static int upload_pack_config(const char *var, const char *value, void *unused) void upload_pack(struct upload_pack_options *options) { - struct string_list symref = STRING_LIST_INIT_DUP; - struct object_array want_obj = OBJECT_ARRAY_INIT; struct packet_reader reader; - struct list_objects_filter_options filter_options; + struct upload_pack_data data; - stateless_rpc = options->stateless_rpc; - timeout = options->timeout; - daemon_mode = options->daemon_mode; + upload_pack_data_init(&data); - memset(&filter_options, 0, sizeof(filter_options)); + git_config(upload_pack_config, &data); - git_config(upload_pack_config, NULL); + data.stateless_rpc = options->stateless_rpc; + data.daemon_mode = options->daemon_mode; + data.timeout = options->timeout; - head_ref_namespaced(find_symref, &symref); + head_ref_namespaced(find_symref, &data.symref); - if (options->advertise_refs || !stateless_rpc) { - reset_timeout(); - head_ref_namespaced(send_ref, &symref); - for_each_namespaced_ref(send_ref, &symref); + if (options->advertise_refs || !data.stateless_rpc) { + reset_timeout(data.timeout); + head_ref_namespaced(send_ref, &data); + for_each_namespaced_ref(send_ref, &data); advertise_shallow_grafts(1); packet_flush(1); } else { head_ref_namespaced(check_ref, NULL); for_each_namespaced_ref(check_ref, NULL); } - string_list_clear(&symref, 1); - if (options->advertise_refs) - return; - packet_reader_init(&reader, 0, NULL, 0, - PACKET_READ_CHOMP_NEWLINE | - PACKET_READ_DIE_ON_ERR_PACKET); + if (!options->advertise_refs) { + packet_reader_init(&reader, 0, NULL, 0, + PACKET_READ_CHOMP_NEWLINE | + PACKET_READ_DIE_ON_ERR_PACKET); - receive_needs(&reader, &want_obj, &filter_options); - if (want_obj.nr) { - struct object_array have_obj = OBJECT_ARRAY_INIT; - get_common_commits(&reader, &have_obj, &want_obj); - create_pack_file(&have_obj, &want_obj, &filter_options); + receive_needs(&data, &reader); + if (data.want_obj.nr) { + get_common_commits(&data, &reader); + create_pack_file(&data, NULL); + } } - list_objects_filter_release(&filter_options); -} - -struct upload_pack_data { - struct object_array wants; - struct string_list wanted_refs; - struct oid_array haves; - - struct object_array shallows; - struct string_list deepen_not; - int depth; - timestamp_t deepen_since; - int deepen_rev_list; - int deepen_relative; - - struct list_objects_filter_options filter_options; - - struct packet_writer writer; - - unsigned stateless_rpc : 1; - - unsigned use_thin_pack : 1; - unsigned use_ofs_delta : 1; - unsigned no_progress : 1; - unsigned use_include_tag : 1; - unsigned done : 1; -}; - -static void upload_pack_data_init(struct upload_pack_data *data) -{ - struct object_array wants = OBJECT_ARRAY_INIT; - struct string_list wanted_refs = STRING_LIST_INIT_DUP; - struct oid_array haves = OID_ARRAY_INIT; - struct object_array shallows = OBJECT_ARRAY_INIT; - struct string_list deepen_not = STRING_LIST_INIT_DUP; - - memset(data, 0, sizeof(*data)); - data->wants = wants; - data->wanted_refs = wanted_refs; - data->haves = haves; - data->shallows = shallows; - data->deepen_not = deepen_not; - packet_writer_init(&data->writer, 1); -} - -static void upload_pack_data_clear(struct upload_pack_data *data) -{ - object_array_clear(&data->wants); - string_list_clear(&data->wanted_refs, 1); - oid_array_clear(&data->haves); - object_array_clear(&data->shallows); - string_list_clear(&data->deepen_not, 0); - list_objects_filter_release(&data->filter_options); + upload_pack_data_clear(&data); } static int parse_want(struct packet_writer *writer, const char *line, @@ -1260,19 +1331,18 @@ static int parse_have(const char *line, struct oid_array *haves) } static void process_args(struct packet_reader *request, - struct upload_pack_data *data, - struct object_array *want_obj) + struct upload_pack_data *data) { while (packet_reader_read(request) == PACKET_READ_NORMAL) { const char *arg = request->line; const char *p; /* process want */ - if (parse_want(&data->writer, arg, want_obj)) + if (parse_want(&data->writer, arg, &data->want_obj)) continue; - if (allow_ref_in_want && + if (data->allow_ref_in_want && parse_want_ref(&data->writer, arg, &data->wanted_refs, - want_obj)) + &data->want_obj)) continue; /* process have line */ if (parse_have(arg, &data->haves)) @@ -1280,19 +1350,19 @@ static void process_args(struct packet_reader *request, /* process args like thin-pack */ if (!strcmp(arg, "thin-pack")) { - use_thin_pack = 1; + data->use_thin_pack = 1; continue; } if (!strcmp(arg, "ofs-delta")) { - use_ofs_delta = 1; + data->use_ofs_delta = 1; continue; } if (!strcmp(arg, "no-progress")) { - no_progress = 1; + data->no_progress = 1; continue; } if (!strcmp(arg, "include-tag")) { - use_include_tag = 1; + data->use_include_tag = 1; continue; } if (!strcmp(arg, "done")) { @@ -1316,104 +1386,87 @@ static void process_args(struct packet_reader *request, continue; } - if (allow_filter && skip_prefix(arg, "filter ", &p)) { + if (data->allow_filter && skip_prefix(arg, "filter ", &p)) { list_objects_filter_die_if_populated(&data->filter_options); parse_list_objects_filter(&data->filter_options, p); continue; } if ((git_env_bool("GIT_TEST_SIDEBAND_ALL", 0) || - allow_sideband_all) && + data->allow_sideband_all) && !strcmp(arg, "sideband-all")) { data->writer.use_sideband = 1; continue; } + if (skip_prefix(arg, "packfile-uris ", &p)) { + string_list_split(&data->uri_protocols, p, ',', -1); + continue; + } + /* ignore unknown lines maybe? */ die("unexpected line: '%s'", arg); } + if (data->uri_protocols.nr && !data->writer.use_sideband) + string_list_clear(&data->uri_protocols, 0); + if (request->status != PACKET_READ_FLUSH) die(_("expected flush after fetch arguments")); } -static int process_haves(struct oid_array *haves, struct oid_array *common, - struct object_array *have_obj) +static int process_haves(struct upload_pack_data *data, struct oid_array *common) { int i; /* Process haves */ - for (i = 0; i < haves->nr; i++) { - const struct object_id *oid = &haves->oid[i]; - struct object *o; - int we_knew_they_have = 0; + for (i = 0; i < data->haves.nr; i++) { + const struct object_id *oid = &data->haves.oid[i]; if (!has_object_file(oid)) continue; oid_array_append(common, oid); - o = parse_object(the_repository, oid); - if (!o) - die("oops (%s)", oid_to_hex(oid)); - if (o->type == OBJ_COMMIT) { - struct commit_list *parents; - struct commit *commit = (struct commit *)o; - if (o->flags & THEY_HAVE) - we_knew_they_have = 1; - else - o->flags |= THEY_HAVE; - if (!oldest_have || (commit->date < oldest_have)) - oldest_have = commit->date; - for (parents = commit->parents; - parents; - parents = parents->next) - parents->item->object.flags |= THEY_HAVE; - } - if (!we_knew_they_have) - add_object_array(o, NULL, have_obj); + do_got_oid(data, oid); } return 0; } -static int send_acks(struct packet_writer *writer, struct oid_array *acks, - const struct object_array *have_obj, - struct object_array *want_obj) +static int send_acks(struct upload_pack_data *data, struct oid_array *acks) { int i; - packet_writer_write(writer, "acknowledgments\n"); + packet_writer_write(&data->writer, "acknowledgments\n"); /* Send Acks */ if (!acks->nr) - packet_writer_write(writer, "NAK\n"); + packet_writer_write(&data->writer, "NAK\n"); for (i = 0; i < acks->nr; i++) { - packet_writer_write(writer, "ACK %s\n", + packet_writer_write(&data->writer, "ACK %s\n", oid_to_hex(&acks->oid[i])); } - if (ok_to_give_up(have_obj, want_obj)) { + if (ok_to_give_up(data)) { /* Send Ready */ - packet_writer_write(writer, "ready\n"); + packet_writer_write(&data->writer, "ready\n"); return 1; } return 0; } -static int process_haves_and_send_acks(struct upload_pack_data *data, - struct object_array *have_obj, - struct object_array *want_obj) +static int process_haves_and_send_acks(struct upload_pack_data *data) { struct oid_array common = OID_ARRAY_INIT; int ret = 0; - process_haves(&data->haves, &common, have_obj); + process_haves(data, &common); if (data->done) { ret = 1; - } else if (send_acks(&data->writer, &common, have_obj, want_obj)) { + } else if (send_acks(data, &common)) { packet_writer_delim(&data->writer); ret = 1; } else { @@ -1445,8 +1498,7 @@ static void send_wanted_ref_info(struct upload_pack_data *data) packet_writer_delim(&data->writer); } -static void send_shallow_info(struct upload_pack_data *data, - struct object_array *want_obj) +static void send_shallow_info(struct upload_pack_data *data) { /* No shallow info needs to be sent */ if (!data->depth && !data->deepen_rev_list && !data->shallows.nr && @@ -1455,14 +1507,9 @@ static void send_shallow_info(struct upload_pack_data *data, packet_writer_write(&data->writer, "shallow-info\n"); - if (!send_shallow_list(&data->writer, data->depth, - data->deepen_rev_list, - data->deepen_since, &data->deepen_not, - data->deepen_relative, - &data->shallows, want_obj) && + if (!send_shallow_list(data) && is_repository_shallow(the_repository)) - deepen(&data->writer, INFINITE_DEPTH, data->deepen_relative, - &data->shallows, want_obj); + deepen(data, INFINITE_DEPTH); packet_delim(1); } @@ -1479,22 +1526,20 @@ int upload_pack_v2(struct repository *r, struct argv_array *keys, { enum fetch_state state = FETCH_PROCESS_ARGS; struct upload_pack_data data; - struct object_array have_obj = OBJECT_ARRAY_INIT; - struct object_array want_obj = OBJECT_ARRAY_INIT; clear_object_flags(ALL_FLAGS); - git_config(upload_pack_config, NULL); - upload_pack_data_init(&data); - use_sideband = LARGE_PACKET_MAX; + data.use_sideband = LARGE_PACKET_MAX; + + git_config(upload_pack_config, &data); while (state != FETCH_DONE) { switch (state) { case FETCH_PROCESS_ARGS: - process_args(request, &data, &want_obj); + process_args(request, &data); - if (!want_obj.nr) { + if (!data.want_obj.nr) { /* * Request didn't contain any 'want' lines, * guess they didn't want anything. @@ -1514,18 +1559,21 @@ int upload_pack_v2(struct repository *r, struct argv_array *keys, } break; case FETCH_SEND_ACKS: - if (process_haves_and_send_acks(&data, &have_obj, - &want_obj)) + if (process_haves_and_send_acks(&data)) state = FETCH_SEND_PACK; else state = FETCH_DONE; break; case FETCH_SEND_PACK: send_wanted_ref_info(&data); - send_shallow_info(&data, &want_obj); + send_shallow_info(&data); - packet_writer_write(&data.writer, "packfile\n"); - create_pack_file(&have_obj, &want_obj, &data.filter_options); + if (data.uri_protocols.nr) { + create_pack_file(&data, &data.uri_protocols); + } else { + packet_writer_write(&data.writer, "packfile\n"); + create_pack_file(&data, NULL); + } state = FETCH_DONE; break; case FETCH_DONE: @@ -1534,8 +1582,6 @@ int upload_pack_v2(struct repository *r, struct argv_array *keys, } upload_pack_data_clear(&data); - object_array_clear(&have_obj); - object_array_clear(&want_obj); return 0; } @@ -1546,6 +1592,7 @@ int upload_pack_advertise(struct repository *r, int allow_filter_value; int allow_ref_in_want; int allow_sideband_all_value; + char *str = NULL; strbuf_addstr(value, "shallow"); @@ -1567,6 +1614,14 @@ int upload_pack_advertise(struct repository *r, &allow_sideband_all_value) && allow_sideband_all_value)) strbuf_addstr(value, " sideband-all"); + + if (!repo_config_get_string(the_repository, + "uploadpack.blobpackfileuri", + &str) && + str) { + strbuf_addstr(value, " packfile-uris"); + free(str); + } } return 1; diff --git a/worktree.c b/worktree.c index ee82235f26..cba2e54598 100644 --- a/worktree.c +++ b/worktree.c @@ -50,9 +50,9 @@ static struct worktree *get_main_worktree(void) struct strbuf worktree_path = STRBUF_INIT; strbuf_add_absolute_path(&worktree_path, get_git_common_dir()); - strbuf_strip_suffix(&worktree_path, "/."); - if (!strbuf_strip_suffix(&worktree_path, "/.git")) - strbuf_strip_suffix(&worktree_path, "/."); + if (!strbuf_strip_suffix(&worktree_path, "/.git/.") && /* in .git */ + !strbuf_strip_suffix(&worktree_path, "/.git")) /* in worktree */ + strbuf_strip_suffix(&worktree_path, "/."); /* in bare repo */ worktree = xcalloc(1, sizeof(*worktree)); worktree->path = strbuf_detach(&worktree_path, NULL); @@ -123,14 +123,7 @@ static void mark_current_worktree(struct worktree **worktrees) free(git_dir); } -static int compare_worktree(const void *a_, const void *b_) -{ - const struct worktree *const *a = a_; - const struct worktree *const *b = b_; - return fspathcmp((*a)->path, (*b)->path); -} - -struct worktree **get_worktrees(unsigned flags) +struct worktree **get_worktrees(void) { struct worktree **list = NULL; struct strbuf path = STRBUF_INIT; @@ -161,13 +154,6 @@ struct worktree **get_worktrees(unsigned flags) ALLOC_GROW(list, counter + 1, alloc); list[counter] = NULL; - if (flags & GWT_SORT_LINKED) - /* - * don't sort the first item (main worktree), which will - * always be the first - */ - QSORT(list + 1, counter - 1, compare_worktree); - mark_current_worktree(list); return list; } @@ -418,7 +404,7 @@ const struct worktree *find_shared_symref(const char *symref, if (worktrees) free_worktrees(worktrees); - worktrees = get_worktrees(0); + worktrees = get_worktrees(); for (i = 0; worktrees[i]; i++) { struct worktree *wt = worktrees[i]; @@ -577,7 +563,7 @@ int other_head_refs(each_ref_fn fn, void *cb_data) struct worktree **worktrees, **p; int ret = 0; - worktrees = get_worktrees(0); + worktrees = get_worktrees(); for (p = worktrees; *p; p++) { struct worktree *wt = *p; struct object_id oid; diff --git a/worktree.h b/worktree.h index d242a6e71c..516744c433 100644 --- a/worktree.h +++ b/worktree.h @@ -18,19 +18,14 @@ struct worktree { int lock_reason_valid; /* private */ }; -/* Functions for acting on the information about worktrees. */ - -#define GWT_SORT_LINKED (1 << 0) /* keeps linked worktrees sorted */ - /* * Get the worktrees. The primary worktree will always be the first returned, - * and linked worktrees will be pointed to by 'next' in each subsequent - * worktree. No specific ordering is done on the linked worktrees. + * and linked worktrees will follow in no particular order. * * The caller is responsible for freeing the memory from the returned - * worktree(s). + * worktrees by calling free_worktrees(). */ -struct worktree **get_worktrees(unsigned flags); +struct worktree **get_worktrees(void); /* * Returns 1 if linked worktrees exist, 0 otherwise. @@ -105,6 +105,14 @@ char *xstrndup(const char *str, size_t len) return xmemdupz(str, p ? p - str : len); } +int xstrncmpz(const char *s, const char *t, size_t len) +{ + int res = strncmp(s, t, len); + if (res) + return res; + return s[len] == '\0' ? 0 : 1; +} + void *xrealloc(void *ptr, size_t size) { void *ret; diff --git a/wt-status.c b/wt-status.c index 98dfa6f73f..c560cbe860 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1484,6 +1484,18 @@ static void show_bisect_in_progress(struct wt_status *s, wt_longstatus_print_trailer(s); } +static void show_sparse_checkout_in_use(struct wt_status *s, + const char *color) +{ + if (s->state.sparse_checkout_percentage == SPARSE_CHECKOUT_DISABLED) + return; + + status_printf_ln(s, color, + _("You are in a sparse checkout with %d%% of tracked files present."), + s->state.sparse_checkout_percentage); + wt_longstatus_print_trailer(s); +} + /* * Extract branch information from rebase/bisect */ @@ -1623,6 +1635,31 @@ int wt_status_check_bisect(const struct worktree *wt, return 0; } +static void wt_status_check_sparse_checkout(struct repository *r, + struct wt_status_state *state) +{ + int skip_worktree = 0; + int i; + + if (!core_apply_sparse_checkout || r->index->cache_nr == 0) { + /* + * Don't compute percentage of checked out files if we + * aren't in a sparse checkout or would get division by 0. + */ + state->sparse_checkout_percentage = SPARSE_CHECKOUT_DISABLED; + return; + } + + for (i = 0; i < r->index->cache_nr; i++) { + struct cache_entry *ce = r->index->cache[i]; + if (ce_skip_worktree(ce)) + skip_worktree++; + } + + state->sparse_checkout_percentage = + 100 - (100 * skip_worktree)/r->index->cache_nr; +} + void wt_status_get_state(struct repository *r, struct wt_status_state *state, int get_detached_from) @@ -1658,6 +1695,7 @@ void wt_status_get_state(struct repository *r, } if (get_detached_from) wt_status_get_detached_from(r, state); + wt_status_check_sparse_checkout(r, state); } static void wt_longstatus_print_state(struct wt_status *s) @@ -1681,6 +1719,9 @@ static void wt_longstatus_print_state(struct wt_status *s) show_revert_in_progress(s, state_color); if (state->bisect_in_progress) show_bisect_in_progress(s, state_color); + + if (state->sparse_checkout_percentage != SPARSE_CHECKOUT_DISABLED) + show_sparse_checkout_in_use(s, state_color); } static void wt_longstatus_print(struct wt_status *s) diff --git a/wt-status.h b/wt-status.h index 73ab5d4da1..f1fa0ec1a7 100644 --- a/wt-status.h +++ b/wt-status.h @@ -79,6 +79,7 @@ enum wt_status_format { #define HEAD_DETACHED_AT _("HEAD detached at ") #define HEAD_DETACHED_FROM _("HEAD detached from ") +#define SPARSE_CHECKOUT_DISABLED -1 struct wt_status_state { int merge_in_progress; @@ -90,6 +91,7 @@ struct wt_status_state { int bisect_in_progress; int revert_in_progress; int detached_at; + int sparse_checkout_percentage; /* SPARSE_CHECKOUT_DISABLED if not sparse */ char *branch; char *onto; char *detached_from; |