Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/CONTRIBUTING.md3
-rw-r--r--Documentation/CodingGuidelines7
-rw-r--r--Documentation/Makefile1
-rw-r--r--Documentation/MyFirstContribution.txt4
-rw-r--r--Documentation/RelNotes/2.28.0.txt227
-rw-r--r--Documentation/SubmittingPatches15
-rw-r--r--Documentation/config/diff.txt4
-rw-r--r--Documentation/config/feature.txt10
-rw-r--r--Documentation/config/fetch.txt3
-rw-r--r--Documentation/config/init.txt4
-rw-r--r--Documentation/config/protocol.txt3
-rw-r--r--Documentation/diff-options.txt5
-rw-r--r--Documentation/git-branch.txt2
-rw-r--r--Documentation/git-bugreport.txt1
-rw-r--r--Documentation/git-cat-file.txt2
-rw-r--r--Documentation/git-clone.txt2
-rw-r--r--Documentation/git-commit-graph.txt6
-rw-r--r--Documentation/git-diff.txt20
-rw-r--r--Documentation/git-fast-export.txt29
-rw-r--r--Documentation/git-fast-import.txt9
-rw-r--r--Documentation/git-fetch.txt8
-rw-r--r--Documentation/git-http-fetch.txt9
-rw-r--r--Documentation/git-index-pack.txt8
-rw-r--r--Documentation/git-init.txt9
-rw-r--r--Documentation/git-ls-remote.txt4
-rw-r--r--Documentation/git-rebase.txt2
-rw-r--r--Documentation/git-show-index.txt11
-rw-r--r--Documentation/git-sparse-checkout.txt30
-rw-r--r--Documentation/git-submodule.txt12
-rw-r--r--Documentation/git-worktree.txt4
-rw-r--r--Documentation/git.txt13
-rw-r--r--Documentation/giteveryday.txt10
-rw-r--r--Documentation/githooks.txt29
-rw-r--r--Documentation/gitmodules.txt6
-rw-r--r--Documentation/gitremote-helpers.txt37
-rw-r--r--Documentation/gitworkflows.txt16
-rw-r--r--Documentation/howto/maintain-git.txt52
-rw-r--r--Documentation/howto/rebase-from-internal-branch.txt32
-rw-r--r--Documentation/howto/revert-branch-rebase.txt32
-rw-r--r--Documentation/howto/update-hook-example.txt6
-rw-r--r--Documentation/pretty-formats.txt4
-rw-r--r--Documentation/rev-list-options.txt35
-rw-r--r--Documentation/technical/http-protocol.txt2
-rw-r--r--Documentation/technical/pack-protocol.txt6
-rw-r--r--Documentation/technical/packfile-uri.txt78
-rw-r--r--Documentation/technical/protocol-capabilities.txt15
-rw-r--r--Documentation/technical/protocol-v2.txt59
-rw-r--r--Documentation/technical/reftable.txt1083
-rw-r--r--Documentation/user-manual.txt2
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile2
l---------RelNotes2
-rw-r--r--add-patch.c30
-rw-r--r--alloc.c18
-rw-r--r--alloc.h2
-rw-r--r--blame.c2
-rw-r--r--blob.c2
-rw-r--r--bloom.c12
-rw-r--r--bloom.h1
-rw-r--r--branch.c2
-rw-r--r--bugreport.c10
-rw-r--r--builtin/bisect--helper.c13
-rw-r--r--builtin/branch.c4
-rw-r--r--builtin/cat-file.c2
-rw-r--r--builtin/checkout.c6
-rw-r--r--builtin/clean.c49
-rw-r--r--builtin/clone.c35
-rw-r--r--builtin/commit-graph.c75
-rw-r--r--builtin/config.c2
-rw-r--r--builtin/diff-files.c7
-rw-r--r--builtin/diff.c147
-rw-r--r--builtin/fast-export.c162
-rw-r--r--builtin/fetch-pack.c19
-rw-r--r--builtin/fetch.c12
-rw-r--r--builtin/fsck.c4
-rw-r--r--builtin/index-pack.c14
-rw-r--r--builtin/init-db.c33
-rw-r--r--builtin/ls-remote.c4
-rw-r--r--builtin/merge.c2
-rw-r--r--builtin/pack-objects.c76
-rw-r--r--builtin/pull.c4
-rw-r--r--builtin/receive-pack.c10
-rw-r--r--builtin/reflog.c2
-rw-r--r--builtin/show-index.c29
-rw-r--r--builtin/sparse-checkout.c6
-rw-r--r--builtin/submodule--helper.c46
-rw-r--r--builtin/worktree.c158
-rw-r--r--bundle.c22
-rw-r--r--bundle.h1
-rw-r--r--cache.h3
-rwxr-xr-xci/config/allow-ref.sample (renamed from ci/config/allow-refs.sample)5
-rw-r--r--command-list.txt2
-rw-r--r--commit-graph.c195
-rw-r--r--commit-graph.h14
-rw-r--r--commit-reach.c93
-rw-r--r--commit-reach.h4
-rw-r--r--commit.c14
-rw-r--r--commit.h2
-rwxr-xr-xcompat/vcbuild/scripts/clink.pl4
-rw-r--r--connect.c156
-rw-r--r--connect.h7
-rw-r--r--connected.c8
-rw-r--r--contrib/coccinelle/commit.cocci18
-rw-r--r--contrib/completion/git-completion.bash270
-rw-r--r--contrib/completion/git-prompt.sh26
-rwxr-xr-xcontrib/subtree/t/t7900-subtree.sh6
-rw-r--r--diff-lib.c3
-rw-r--r--diff.c16
-rw-r--r--dir.c65
-rw-r--r--entry.c3
-rw-r--r--fast-import.c25
-rw-r--r--fetch-pack.c164
-rw-r--r--fetch-pack.h2
-rw-r--r--fmt-merge-msg.c5
-rw-r--r--fsck.c4
-rw-r--r--fuzz-commit-graph.c2
-rwxr-xr-xgit-add--interactive.perl21
-rw-r--r--git-compat-util.h6
-rwxr-xr-xgit-cvsexportcommit.perl14
-rwxr-xr-xgit-cvsimport.perl8
-rwxr-xr-xgit-cvsserver.perl37
-rwxr-xr-xgit-p4.py9
-rwxr-xr-xgit-send-email.perl8
-rwxr-xr-xgit-submodule.sh32
-rwxr-xr-xgit-svn.perl25
-rw-r--r--git.c2
-rw-r--r--help.c1
-rw-r--r--http-fetch.c126
-rw-r--r--http-push.c16
-rw-r--r--http-walker.c5
-rw-r--r--http.c125
-rw-r--r--http.h31
-rw-r--r--imap-send.c2
-rw-r--r--line-log.c43
-rw-r--r--line-log.h5
-rw-r--r--list-objects-filter-options.c3
-rw-r--r--object-store.h1
-rw-r--r--object.c4
-rw-r--r--object.h10
-rw-r--r--packfile.c1
-rw-r--r--perl/Git/IndexInfo.pm6
-rw-r--r--perl/Git/SVN.pm83
-rw-r--r--perl/Git/SVN/Editor.pm8
-rw-r--r--perl/Git/SVN/Fetcher.pm6
-rw-r--r--perl/Git/SVN/Log.pm2
-rw-r--r--perl/Git/SVN/Ra.pm4
-rw-r--r--pkt-line.c18
-rw-r--r--pkt-line.h14
-rw-r--r--po/de.po2586
-rw-r--r--po/es.po2728
-rw-r--r--po/fr.po2552
-rw-r--r--po/git.pot2452
-rw-r--r--po/it.po2536
-rw-r--r--po/sv.po2526
-rw-r--r--po/tr.po2505
-rw-r--r--po/vi.po2548
-rw-r--r--po/zh_CN.po2490
-rw-r--r--po/zh_TW.po2540
-rw-r--r--protocol.c4
-rw-r--r--ref-filter.c2
-rw-r--r--refs.c108
-rw-r--r--refs.h27
-rw-r--r--refs/refs-internal.h18
-rw-r--r--remote-curl.c116
-rw-r--r--remote-testsvn.c10
-rw-r--r--remote.c14
-rw-r--r--remote.h3
-rw-r--r--repo-settings.c8
-rw-r--r--repository.h6
-rw-r--r--revision.c70
-rw-r--r--revision.h7
-rw-r--r--send-pack.c8
-rw-r--r--serve.c29
-rw-r--r--setup.c42
-rw-r--r--strbuf.c5
-rw-r--r--strbuf.h1
-rw-r--r--t/README14
-rw-r--r--t/helper/test-oid-array.c3
-rw-r--r--t/helper/test-pkt-line.c4
-rw-r--r--t/helper/test-reach.c4
-rw-r--r--t/helper/test-ref-store.c2
-rw-r--r--t/helper/test-regex.c94
-rw-r--r--t/lib-git-svn.sh17
-rw-r--r--t/lib-httpd.sh2
-rw-r--r--t/lib-httpd/apache.conf8
-rw-r--r--t/lib-httpd/incomplete-body-upload-pack-v2-http.sh3
-rw-r--r--t/lib-httpd/incomplete-length-upload-pack-v2-http.sh3
-rw-r--r--t/lib-submodule-update.sh75
-rwxr-xr-xt/perf/p1400-update-ref.sh32
-rwxr-xr-xt/t0001-init.sh26
-rwxr-xr-xt/t0002-gitfile.sh2
-rwxr-xr-xt/t0410-partial-clone.sh23
-rwxr-xr-xt/t1013-read-tree-submodule.sh4
-rwxr-xr-xt/t1050-large.sh6
-rwxr-xr-xt/t1090-sparse-checkout-scope.sh1
-rwxr-xr-xt/t1091-sparse-checkout-builtin.sh22
-rwxr-xr-xt/t1302-repo-version.sh6
-rwxr-xr-xt/t1400-update-ref.sh32
-rwxr-xr-xt/t1416-ref-transaction-hooks.sh109
-rwxr-xr-xt/t1450-fsck.sh43
-rwxr-xr-xt/t1506-rev-parse-diagnosis.sh2
-rwxr-xr-xt/t1507-rev-parse-upstream.sh2
-rwxr-xr-xt/t2013-checkout-submodule.sh4
-rwxr-xr-xt/t2018-checkout-branch.sh10
-rwxr-xr-xt/t2027-checkout-track.sh24
-rwxr-xr-xt/t2060-switch.sh8
-rwxr-xr-xt/t2203-add-intent.sh52
-rwxr-xr-xt/t2401-worktree-prune.sh24
-rwxr-xr-xt/t2403-worktree-move.sh21
-rwxr-xr-xt/t2404-worktree-config.sh4
-rwxr-xr-xt/t3200-branch.sh69
-rwxr-xr-xt/t3426-rebase-submodule.sh10
-rwxr-xr-xt/t3430-rebase-merges.sh2
-rwxr-xr-xt/t3512-cherry-pick-submodule.sh2
-rwxr-xr-xt/t3513-revert-submodule.sh9
-rwxr-xr-xt/t3701-add-interactive.sh19
-rwxr-xr-xt/t3906-stash-submodule.sh9
-rwxr-xr-xt/t4013-diff-various.sh4
-rw-r--r--t/t4013/diff.log_--decorate=full_--all2
-rw-r--r--t/t4013/diff.log_--decorate_--all2
-rw-r--r--t/t4013/diff.log_--patch-with-stat_--summary_master_--_dir_2
-rw-r--r--t/t4013/diff.log_--patch-with-stat_master2
-rw-r--r--t/t4013/diff.log_--patch-with-stat_master_--_dir_2
-rw-r--r--t/t4013/diff.log_--root_--cc_--patch-with-stat_--summary_master2
-rw-r--r--t/t4013/diff.log_--root_--patch-with-stat_--summary_master2
-rw-r--r--t/t4013/diff.log_--root_--patch-with-stat_master2
-rw-r--r--t/t4013/diff.log_--root_-c_--patch-with-stat_--summary_master2
-rw-r--r--t/t4013/diff.log_--root_-p_master2
-rw-r--r--t/t4013/diff.log_--root_master2
-rw-r--r--t/t4013/diff.log_-m_-p_--first-parent_master2
-rw-r--r--t/t4013/diff.log_-m_-p_master4
-rw-r--r--t/t4013/diff.log_-p_--first-parent_master2
-rw-r--r--t/t4013/diff.log_-p_master2
-rw-r--r--t/t4013/diff.log_master2
-rw-r--r--t/t4013/diff.show_--first-parent_master2
-rw-r--r--t/t4013/diff.show_-c_master2
-rw-r--r--t/t4013/diff.show_-m_master4
-rw-r--r--t/t4013/diff.show_master2
-rw-r--r--t/t4013/diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master2
-rw-r--r--t/t4013/diff.whatchanged_--root_-c_--patch-with-stat_--summary_master2
-rwxr-xr-xt/t4014-format-patch.sh21
-rwxr-xr-xt/t4045-diff-relative.sh82
-rwxr-xr-xt/t4068-diff-symmetric.sh91
-rwxr-xr-xt/t4137-apply-submodule.sh12
-rwxr-xr-xt/t4202-log.sh74
-rwxr-xr-xt/t4210-log-i18n.sh77
-rwxr-xr-xt/t4211-line-log.sh76
-rwxr-xr-xt/t4255-am-submodule.sh12
-rwxr-xr-xt/t5300-pack-object.sh9
-rwxr-xr-xt/t5302-pack-index.sh356
-rwxr-xr-xt/t5318-commit-graph.sh54
-rwxr-xr-xt/t5500-fetch-pack.sh6
-rwxr-xr-xt/t5505-remote.sh8
-rwxr-xr-xt/t5516-fetch-push.sh16
-rwxr-xr-xt/t5528-push-default.sh6
-rwxr-xr-xt/t5537-fetch-shallow.sh14
-rwxr-xr-xt/t5540-http-push-webdav.sh16
-rwxr-xr-xt/t5541-http-push-smart.sh15
-rwxr-xr-xt/t5550-http-fetch-dumb.sh48
-rwxr-xr-xt/t5551-http-fetch-smart.sh56
-rwxr-xr-xt/t5562-http-backend-content-length.sh5
-rwxr-xr-xt/t5572-pull-submodule.sh20
-rwxr-xr-xt/t5581-http-curl-verbose.sh2
-rwxr-xr-xt/t5606-clone-options.sh24
-rwxr-xr-xt/t5608-clone-2gb.sh11
-rwxr-xr-xt/t5701-git-serve.sh25
-rwxr-xr-xt/t5702-protocol-v2.sh138
-rwxr-xr-xt/t5703-upload-pack-ref-in-want.sh19
-rwxr-xr-xt/t5704-protocol-violations.sh2
-rwxr-xr-xt/t5801/git-remote-testgit6
-rwxr-xr-xt/t6030-bisect-porcelain.sh2
-rwxr-xr-xt/t6041-bisect-submodule.sh9
-rwxr-xr-xt/t6050-replace.sh2
-rwxr-xr-xt/t6132-pathspec-exclude.sh33
-rwxr-xr-xt/t6200-fmt-merge-msg.sh38
-rwxr-xr-xt/t7112-reset-submodule.sh6
-rwxr-xr-xt/t7406-submodule-update.sh16
-rwxr-xr-xt/t7419-submodule-set-branch.sh7
-rwxr-xr-xt/t7600-merge.sh14
-rwxr-xr-xt/t7608-merge-messages.sh10
-rwxr-xr-xt/t7613-merge-submodule.sh8
-rwxr-xr-xt/t7800-difftool.sh8
-rwxr-xr-xt/t9001-send-email.sh14
-rwxr-xr-xt/t9020-remote-svn.sh10
-rwxr-xr-xt/t9100-git-svn-basic.sh19
-rwxr-xr-xt/t9101-git-svn-props.sh12
-rwxr-xr-xt/t9104-git-svn-follow-parent.sh3
-rwxr-xr-xt/t9108-git-svn-glob.sh4
-rwxr-xr-xt/t9109-git-svn-multi-glob.sh6
-rwxr-xr-xt/t9168-git-svn-partially-globbed-names.sh8
-rwxr-xr-xt/t9300-fast-import.sh28
-rwxr-xr-xt/t9351-fast-export-anonymize.sh54
-rwxr-xr-xt/t9902-completion.sh459
-rw-r--r--t/test-lib.sh7
-rw-r--r--tag.c2
-rw-r--r--trace.c20
-rw-r--r--trace.h6
-rw-r--r--transport-helper.c31
-rw-r--r--transport.c56
-rw-r--r--transport.h14
-rw-r--r--tree.c2
-rw-r--r--upload-pack.c865
-rw-r--r--worktree.c26
-rw-r--r--worktree.h11
-rw-r--r--wrapper.c8
-rw-r--r--wt-status.c41
-rw-r--r--wt-status.h2
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='
'
diff --git a/Makefile b/Makefile
index 90aa329eb7..372139f1f2 100644
--- a/Makefile
+++ b/Makefile
@@ -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.
diff --git a/RelNotes b/RelNotes
index f3d8527c2c..a7b4f6dc41 120000
--- a/RelNotes
+++ b/RelNotes
@@ -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
diff --git a/alloc.c b/alloc.c
index 1c64c4dd16..957a0af362 100644
--- a/alloc.c
+++ b/alloc.c
@@ -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;
}
diff --git a/alloc.h b/alloc.h
index ed1071c11e..371d388b55 100644
--- a/alloc.h
+++ b/alloc.h
@@ -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);
diff --git a/blame.c b/blame.c
index da7e28800e..82fa16d658 100644
--- a/blame.c
+++ b/blame.c
@@ -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);
diff --git a/blob.c b/blob.c
index 36f9abda19..182718aba9 100644
--- a/blob.c
+++ b/blob.c
@@ -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)
diff --git a/bloom.c b/bloom.c
index 9b86aa3f59..6a7f2f2bdc 100644
--- a/bloom.c
+++ b/bloom.c
@@ -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;
diff --git a/bloom.h b/bloom.h
index b2a8379a71..d8fbb0fbf1 100644
--- a/bloom.h
+++ b/bloom.h
@@ -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,
diff --git a/branch.c b/branch.c
index 2d9e7675a6..7095f78058 100644
--- a/branch.c
+++ b/branch.c
@@ -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]);
diff --git a/bundle.c b/bundle.c
index 99439e07a1..2a0d744d3f 100644
--- a/bundle.c
+++ b/bundle.c
@@ -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)
diff --git a/bundle.h b/bundle.h
index ceab0c7475..2dc9442024 100644
--- a/bundle.h
+++ b/bundle.h
@@ -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);
diff --git a/cache.h b/cache.h
index 0f0485ecfe..126ec56c7f 100644
--- a/cache.h
+++ b/cache.h
@@ -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);
diff --git a/commit.c b/commit.c
index 87686a7055..7128895c3a 100644
--- a/commit.c
+++ b/commit.c
@@ -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 */
diff --git a/commit.h b/commit.h
index 1b2dea5d85..e901538909 100644
--- a/commit.h
+++ b/commit.h
@@ -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;
diff --git a/connect.c b/connect.c
index 23013c6344..e0d5b9fee0 100644
--- a/connect.c
+++ b/connect.c
@@ -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)
diff --git a/connect.h b/connect.h
index 5f2382e018..c53586e929 100644
--- a/connect.h
+++ b/connect.h
@@ -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;
}
diff --git a/diff.c b/diff.c
index d1ad6a3c4a..d24aaa3047 100644
--- a/diff.c
+++ b/diff.c
@@ -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;
}
diff --git a/dir.c b/dir.c
index d97e955848..1045cc9c6f 100644
--- a/dir.c
+++ b/dir.c
@@ -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;
}
diff --git a/entry.c b/entry.c
index 00b4903366..449bd32dee 100644
--- a/entry.c
+++ b/entry.c
@@ -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,
diff --git a/fsck.c b/fsck.c
index 8bb3ecf282..f82e2fe9e3 100644
--- a/fsck.c
+++ b/fsck.c
@@ -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);
diff --git a/git-p4.py b/git-p4.py
index d551efb0dd..ca79dc0900 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -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;
diff --git a/git.c b/git.c
index a2d337eed7..2f021b97f3 100644
--- a/git.c
+++ b/git.c
@@ -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 },
diff --git a/help.c b/help.c
index 1de9c0d589..44cee69c11 100644
--- a/help.c
+++ b/help.c
@@ -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;
diff --git a/http.c b/http.c
index 62aa995245..3b12843a5b 100644
--- a/http.c
+++ b/http.c
@@ -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);
}
diff --git a/http.h b/http.h
index 5e0ad724f9..5de792ef3f 100644
--- a/http.h
+++ b/http.h
@@ -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;
diff --git a/object.c b/object.c
index 794c86650e..3257518656 100644
--- a/object.c
+++ b/object.c
@@ -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;
diff --git a/object.h b/object.h
index b22328b838..96a2105859 100644
--- a/object.h
+++ b/object.h
@@ -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;
};
/*
diff --git a/po/de.po b/po/de.po
index 6356276d0a..656de24218 100644
--- a/po/de.po
+++ b/po/de.po
@@ -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]: "
diff --git a/po/es.po b/po/es.po
index 97bd3e27f5..41a72ca6fb 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Git\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 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"
diff --git a/po/fr.po b/po/fr.po
index b1b4144d2e..d20fc440ab 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -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 ""
diff --git a/po/it.po b/po/it.po
index 769d9e0ccc..53523e76df 100644
--- a/po/it.po
+++ b/po/it.po
@@ -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"
diff --git a/po/sv.po b/po/sv.po
index 73696a13f3..93f3c6f3f7 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -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"
diff --git a/po/tr.po b/po/tr.po
index a74b885338..9a17c19b25 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -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]: "
diff --git a/po/vi.po b/po/vi.po
index 9fcf8aa543..d730cf1141 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -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);
}
diff --git a/refs.c b/refs.c
index 224ff66c7b..639cba93b4 100644
--- a/refs.c
+++ b/refs.c
@@ -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,
diff --git a/refs.h b/refs.h
index a92d2c74c8..f212f8945e 100644
--- a/refs.h
+++ b/refs.h
@@ -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(&notes_ref_sb, "refs/notes/%s/revs", remote->name);
diff --git a/remote.c b/remote.c
index 534c6426f1..bc46413e6a 100644
--- a/remote.c
+++ b/remote.c
@@ -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);
diff --git a/remote.h b/remote.h
index 11d8719b58..5cc26c1b3b 100644
--- a/remote.h
+++ b/remote.h
@@ -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());
diff --git a/serve.c b/serve.c
index 317256c1a4..fbd2fcdfb5 100644
--- a/serve.c
+++ b/serve.c
@@ -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);
diff --git a/setup.c b/setup.c
index 65fe5ecefb..dbac2eabe8 100644
--- a/setup.c
+++ b/setup.c
@@ -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);
}
diff --git a/strbuf.c b/strbuf.c
index 2f1a7d3209..e3397cc4c7 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -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)
diff --git a/strbuf.h b/strbuf.h
index 7062eb6410..223ee2094a 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -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
diff --git a/t/README b/t/README
index cf863837ab..70ec61cf88 100644
--- a/t/README
+++ b/t/README
@@ -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
diff --git a/tag.c b/tag.c
index 71b544467e..1ed2684e45 100644
--- a/tag.c
+++ b/tag.c
@@ -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)
diff --git a/trace.c b/trace.c
index b3ef0e627f..f726686fd9 100644
--- a/trace.c
+++ b/trace.c
@@ -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)
diff --git a/trace.h b/trace.h
index 9826618b33..0dbbad0e41 100644
--- a/trace.h
+++ b/trace.h
@@ -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);
diff --git a/tree.c b/tree.c
index 1466bcc6a8..e76517f6b1 100644
--- a/tree.c
+++ b/tree.c
@@ -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.
diff --git a/wrapper.c b/wrapper.c
index 3a1c0e0526..4ff4a9c3db 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -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;